Application Deployment and Management in the Cloud

Cloud computing is a revolutionary paradigm that allows to acquire infinite resources on demand and pay only for the actual use. Together with novel software development methodologies, such as Agile and DevOps, the cloud can really help companies in responding to market demand for continuous delivering innovative services, enabling the shift from a silo based release process, where customers, developers and system administrators are almost conflicting among each other, to a unified process, where the shared final objective is that of making the product available to the user. There are two main challenges that have to be faced when approaching the cloud. First of all, the heterogeneity of the offer. More and more cloud services are growing from different providers with no standard yet defined, driving companies towards the lock-in problem. Second, having the possibility to scale from 10s to 1000s of machines implies huge effort in IT management without smart automation systems. This paper is an attempt to review some of the tools among the currently available ones that may help companies simplifying their application release process.