Towards Reliable Application Deployment in the Cloud
Applications are moving from self-maintained infrastructure to the cloud. A common practice to increase the reliability of a cloud application is to deploy redundant instances. Unfortunately, such redundancy efforts can be undermined if the application's instances share common dependencies. This paper presents reCloud, a novel system which can efficiently find a reliable deployment plan for a cloud application that fulfills the developer's requirements, before the application gets deployed. In addition, reCloud utilizes any pieces of available dependency information about the cloud infrastructure to quantitatively assess the reliability of the application's deployment plan with rigorous error bounds. This assessment further enables reCloud to find a deployment plan that balances between reliability and other criteria such as application performance and resource utilization. We implemented a fully functional system. The experimental results show that, even in a large-scale cloud environment with more than 27K hosts, reCloud needs only 30 seconds to find a deployment plan that is one order of magnitude more reliable than the current common practice.