Automated, efficient software deployment is essential for today's modern cloud hosting providers. With advances in cloud technology, on demand cloud services offered by public providers are becoming increasingly powerful, anchoring the ecosystem of cloud services. Cloud infrastructure services are appealing in part because they enable customers to acquire and release infrastructure resources on demand for applications in response to load surges. This paper addresses the challenge of building an effective multi-cloud application deployment controller as a customer add-on outside of the cloud utility service itself. Such external controllers must function within the constraints of the cloud providers' APIs. In this paper, we describe the different steps necessary to deploy applications using such external controller. Then with a set of candidates for such external controllers, we use the proposed taxonomy to survey several management tools such as Chef, SaltStack, and Ansible for application automation on cloud computing services based on the defined model. We use the taxonomy and survey results not only to identify similarities and differences of the architectural approaches of cloud computing, but also to identify areas requiring further research.
['James O. Benson', 'John J. Prevost', 'Paul Rad']
Survey of automated software deployment for computational and engineering research