Publication | Closed Access
Engage
21
Citations
10
References
2012
Year
Software MaintenanceDeployment StrategyProvisioning (Technology)EngineeringInfrastructure A CodeProgram AnalysisDjango ApplicationsCloud ComputingInter-component DependenciesComplex Inter-dependenciesSoftware EngineeringSystems EngineeringSoftware EnvironmentComputer ScienceDeployment TechnologySoftware AnalysisSystem SoftwareSoftware Design
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1