Photo

Rainforest Project


Problem Statement
Configuration management of distributed applications and services in large, heterogeneous and constrained environments is a complex and expensive process. In such environments, there are multiple ways to deploy and configure an application as a service. IT experts must make decisions pertaining to the application deployment topology and the associated logical and physical resources. Concerns such as application requirements, deployment objectives, resource availability, as well as policy and best practices, must be taken into account. A solution deployment topology design is a multi-level topology that describes the complete set of resources (physical, and virtual) and the way they must be configured to work together. Such a design implies a certain cost and a certain level of quality of service measured in terms of performance, availability, and security, where there is often a tradeoff between quality and cost.

Today, the design and realization of deployment solutions is a manual, costly, and error-prone process; IT experts must follow lengthy installation guides, select application, middleware and networked elements, define their topology, and later on configure resources in accordance with these decisions. There is no good measure of the multi-faceted quality of the deployment solutions relative to their cost.

Goal
Our project’s goal is to facilitate the deployment and configuration of complex J2EE applications in heterogeneous and constrained environments. We employ model transformations, search, and planning techniques. We envision a three stage automated deployment process: In the first stage, termed deployment topology design,  we employ an automated search to generate a deployment topology that offers a good tradeoff between cost and quality relative to an input set of deployment objectives. In the second stage, termed deployment planning, we employ planning techniques to generate a deployment plan that when executed deploys the service in accordance with the deployment topology design. In the third stage deployment execution, the plan is executed to actually deploy and configure the service.

Challenges
  • Design model transformation rules to express mapping from service deployment objectives to requirements on resources and resources structure. We explore both declarative (graphs) and imperative (Java) transformation rules expressions.  
  • Study efficient  techniques to search over the space of possible transformations, where the input is a logical topology, the output is a physical topology, and the search is subject to policy and resource constraints.
  • Design search heuristics guided by knowledge of resource availability.
  • Develop methods to identify and eliminate equivalent topologies reached through different search paths.
  • Develop methods to check that a search based on a given set of transformations is guaranteed to converge.
  • Analytic study of the complexity of generic as well as domain specific search heuristics.