Deploying applications having many processes in a multi-cloud environment is challenging. The cloud manager has goals such as minimizing power consumption, while the application manager must reserve processing and memory resources sufficient to satisfy user constraints on throughput and response time. These challenges must be addressed together. We describe an algorithm for this purpose, intended for use by cloud managers who must simultaneously manage hosts and application deployments, and plan capacity in order to offer services such as Serverless Computing. The algorithm combines queueing theory, clustering, graph partitioning and bin-packing strategies to solve the low-power many-process multi-cloud application deployment problem. It produces a solution within 20 seconds in 90% of the test scenarios, which is quick enough for use in practice. The algorithm is extremely effective: in 77% of the test scenarios the solution power consumption is within 10% of an unachievable theoretical lower bound.
Published December 2019 , 24 pages