Serena Deployment Automation
The Deployment Automation Platform for Continuous Delivery
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. It's important to ensure that application componets that are tested together are deployed together. Deployment Automation solves this problem by supporting application processes and snapshots.
Orchestrate Application Deployments
Application processes, like component processes, are created with the process editor. Deployment Automation provides several common process steps. Otherwise, application processes are configured from processes defined for their associated components.
Application processes 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 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. At least one environment must be associated with the application before the process can be executed. Application processes are environment agnostic, which means that processes can be designed independent of any particular environment. This enables a single application to interact with separate environments, such as QA or production. To use the same application process with multiple environments, you associate each environment with the application and execute the process separately for each one.
In addition to deployments, several other common processes are available, such as rolling back deployments. Deployment Automation tracks the history of each component version, which enables application processes to 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 you deploy together. They are models you create before deploying the application.
A snapshot specifies the exact version for each component in the application. When a snapshot is created, Deployment Automation gathers together information about the application, including the component versions, for a given environment.
For most users, the snapshot is pushed through the pipeline. A snapshot is created based on the application's state within the environment, thus capturing the different versions of the components at that time.
As the application moves through various testing environments, for example, 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 help manage complex deployments, such as deployments with multiple tiers and 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