Today's applications contain components that may be drawn from several different sources and deployed to different application tiers, platforms, and resources. Coordination and orchestration are essential in the successful deployment of these applications, and it's important to ensure that application components tested together are deployed together. Deployment Automation solves this problem by supporting application processes and snapshots.
Orchestrate application deployments
Application processes are created with the Deployment Automation process editor. They can run manually, automatically on some trigger condition, or on a user-defined schedule. When a component has several processes defined for it, the application process determines which ones are executed and in what order. For example, an n-tiered application might have a web tier and a database tier. Once approved, both the web tier and database tier are deployed concurrently. The application process calls the associated component processes that contain all of the deployment steps for deploying the components to specific resources.
When an application process executes, it interacts with a specific environment. An environment is a collection of one or more resources. A single application can interact with different environments, such as QA or production. Simply associate each environment with the application and execute the process separately for each one.
In addition to deployments, several other common processes are available, including rolling back deployments. Deployment Automation tracks the history of each component version, so application processes can restore environments to any desired point.
A snapshot represents the current state of an application in the environment. Snapshots specify what combination of component versions to deploy together, and specifies the exact version for each component in the application. When a snapshot is created, Deployment Automation gathers information about the application, including the component versions, for a given environment.
As the application moves through the delivery pipeline, Deployment Automation ensures that the exact versions, bit for bit, are used in every environment. Once all appropriate stages and approvals for a snapshot are complete, the snapshot is pushed to production.
Snapshots also help manage complex deployments such as those with multiple tiers or development teams. For example, after testing and confirming that team A's component works with team B's, a snapshot can be taken. Then, as development progresses, additional snapshots can be taken and used to model the effort and drive the entire deployment, coordinating versions, configurations, and processes.