Abstract
Many modern applications are built by combining independently developed packages and services that are distributed over many machines with complex inter-dependencies. The assembly, installation, and management of such applications is hard, and usually performed either manually or by writing customized scripts. We present Engage, a system for configuring, installing, and managing complex application stacks. Engage consists of three components: a domain-specific model to describe component metadata and inter-component dependencies; a constraint-based algorithm that takes a partial installation specification and computes a full installation plan; and a runtime system that co-ordinates the deployment of the application across multiple machines and manages the deployed system. By explicitly modeling configuration metadata and inter-component dependencies, Engage enables static checking of application configurations and automated, constraint-driven, generation of installation plans across multiple machines. This reduces the tedious manual process of application configuration, installation, and management.
We have implemented Engage and we have used it to successfully host a number of applications. We describe our experiences in using Engage to manage a generic platform that hosts Django applications in the cloud or on premises.
- Puppet at Puppet Labs: http://www.puppetlabs.com/.Google Scholar
- Chef at Opscode: http://www.opscode.com/chef/.Google Scholar
- Apache Libcloud: http://libcloud.apache.org/.Google Scholar
- Monit: http://mmonit.com/monit/.Google Scholar
- JasperReports Server: http://www.jaspersoft.com/reporting-server/.Google Scholar
- Django: https://www.djangoproject.com/.Google Scholar
- J. Aldrich, C. Chambers, and D. Notkin. Architectural reasoning in ArchJava. In ECOOP '02, pages 334--367. Springer, 2002. Google Scholar
Digital Library
- P. Anderson and A. Scobie. LCFG: the next generation. In UKUUG Winter Conference. UKUUG, 2002.Google Scholar
- M. Burgess. A site configuration engine. Computing Systems, 8(2):309--337, 1995.Google Scholar
- A. Cicchetti, D. Di Ruscio, P. Pelliccione, A. Pierantonio, and S. Zacchirol. A model driven approach to upgrade package based software systems. In Evaluation of Novel Approaches to Software Engineering, pages 262--276. Springer, 2010.Google Scholar
Cross Ref
- R. Di Cosmo, D. Di Ruscio, P. Pelliccione, A. Pierantonio, and S. Zacchiroli. Supporting software evolution in component-based FOSS systems. Science of Computer Programming, 2010. Google Scholar
Digital Library
- R. Di Cosmo and J. Vouillon. On software component co-installability. In SIGSOFT FSE '11, pages 256--266. ACM, 2011. Google Scholar
Digital Library
- R. Di Cosmo, P. Trezentos, and S. Zacchiroli. Package upgrades in FOSS distributions: Details and challenges. In HotSWup '08, 2008. Google Scholar
Digital Library
- M. Flatt and M. Felleisen. Units: Cool modules for HOT languages. In PLDI '98, pages 236--248. ACM, 1998. Google Scholar
Digital Library
- D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesC language: A holistic approach to networked embedded systems. In PLDI '03, pages 1--11. ACM, 2003. Google Scholar
Digital Library
- P. Goldsack, J. Guijarro, S. Loughran, A. Coles, A. Farrell, A. Lain, P. Murray, and P. Toft. The SmartFrog configuration management framework. Operating Systems Review, 43(1):16--25, 2009. Google Scholar
Digital Library
- F. Mancinelli, J. Boender, R. di Cosmo, J. Vouillon, B. Durak, X. Leroy, and R. Treinen. Managing the complexity of large free and open source package-based software distributions. In ASE '06, pages 199--208. IEEE Computer Society, 2006. Google Scholar
Digital Library
- P. Trezentos, I. Lynce, and A. L. Oliveira. Apt-pbo: solving the software dependency problem using pseudo-Boolean optimization. In ASE '10, pages 427--436. ACM, 2010. Google Scholar
Digital Library
- C. Tucker, D. Shuffelton, R. Jhala, and S. Lerner. OPIUM: Optimal package install/uninstall manager. In ICSE '07, pages 178--188. IEEE Computer Society, 2007. Google Scholar
Digital Library
- B.A. Wolfe, B.W. Mamlin, P.G. Biondich, H. Fraser, D. Jazayeri, C. Allen, J. Miranda, and W.M. Tierney. Cooking Up an Open Source EMR for Developing Countries: OpenMRS -- A Recipe for Successful Collaboration. In American Medical Informatics Association Annual Symposium, pages 529--533. AMIA, 2006.Google Scholar
Index Terms
Engage: a deployment management system
Recommendations
Engage: a deployment management system
PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and ImplementationMany modern applications are built by combining independently developed packages and services that are distributed over many machines with complex inter-dependencies. The assembly, installation, and management of such applications is hard, and usually ...
Automating Application Deployment in Infrastructure Clouds
CLOUDCOM '11: Proceedings of the 2011 IEEE Third International Conference on Cloud Computing Technology and ScienceCloud computing systems are becoming an important platform for distributed applications in science and engineering. Infrastructure as a Service (IaaS) clouds provide the capability to provision virtual machines (VMs) on demand with a specific ...
AutoBot: a versatile platform for management of legacy applications in the cloud
SoICT '16: Proceedings of the 7th Symposium on Information and Communication TechnologyLegacy distributed applications are moving to the cloud in order to reduce operational costs and provide more scalable services to users. These applications are built by interconnecting independently developed packages and services distributed over ...







Comments