Deployment Overview and the Unified Deployment Model
A deployment consists of all actions needed to install, configure, and start an application on a target environment.
Unified Deployment Model (UDM)
In Deploy, deployments are modeled using the Unified Deployment Model (UDM), which consists of:
- Deployment package: An environment-independent package that contains deployable configuration items (CIs) that form a complete application.
- Environment: A group of infrastructure and middleware containers, which are deployment targets. For example, hosts, servers, clusters, and so on.
- Deployment: The process of configuring and installing a deployment package in a specific environment. Deployment results in deployeds, which describe the combination of a deployable and a container.
Deployment packages represent versions of an application. For example, the application MyWebsite could have deployment packages for version 1.0.0, 2.0.0, and so on. You can define dependencies among application versions. This ensures that when you try to deploy a specific deployment package when its dependencies are not already present in the target environment, the dependent packages will automatically be deployed, or the deployment will fail. For more information on dependencies, see Application dependencies in Deploy.
Additionally, deployment packages and all other configuration items (CIs) stored in the Deploy Repository are version-controlled. For more information, see The Deploy Repository.
UDM in the Deploy GUI
The Deploy GUI presents the main UDM concepts in the Deployment Workspace:
Deployments are defined by:
- A package containing what is to be deployed as shown in the node tree on the left.
- An environment defining where the package is to be deployed as shown in the node tree on the right.
- Configuration of the deployment that specifies customizations to the package to be deployed as shown in the node trees in the middle. The customizations can be environment-specific.
Packages and environments are made up of smaller parts:
- Packages consist of deployables, which are items that can be deployed.
- Environments consist of containers, which are items that can be deployed to.
Containers are the middleware products to which deployables are deployed. Examples of containers are an application server such as Tomcat or WebSphere, a database server, and a WebSphere node or cell.
There are two types of deployables:
- Artifacts, which are physical files such as an EAR file, a WAR file, or a folder of HTML files.
- Resource specifications, which are middleware resources that an application requires to run, such as a queue, a topic, or a datasource.
The deployment process
The deployment process consists of the following phases:
- Specification
- Delta analysis
- Orchestration
- Planning
- Execution
The process is followed when you are deploying an application, upgrading an application to a new version, downgrading an application to an older version, or undeploying an application.
Phase 1: Specification
Deploying an application starts with specification. During specification, you select the application that you want to deploy and the environment to which you want to deploy it. The deployables are then mapped to the containers in the environment. Deploy manually or automatically helps you create correct mappings.
Phase 2: Delta analysis
Given the application, environment, and mappings, Deploy can perform delta analysis. A delta is the difference between the specification and the actual state. During delta analysis, Deploy calculates what needs to be done to deploy the application by comparing the specification against the current state of the application. This comparison results in a delta specification.