Continuous Delivery
Continuous Integration (CI) is a critical prerequisite of production-like stand-up/tear-down, i.e. if it can’t be build on the engineers machine, it can’t be deployed from the engineers machine.
Automated Deployment and Promotion of a Release
Core CDAF components are included in the release package along with the user defined artefacts.
Execution Engine
As with the CI process, the CDAF execution engine allows the DevOps Engineer to focus on the primary objective. Unlike the build process, the scope of concerns are quite different for deployments, with key features being
- VARCHK : validation of incoming variables
- DETOKN : Detoken file, applying target specific settings
Note: The following is details the subset of CDAF capabilities, i.e. only tasks executed in a local context are described. The actual task executed varies depending on user configuration, the default is tasksRunLocal.tsk. There is also a remote and container context available, with a default task of tasksRunRemote.tsk. Details of the supported contexts are available in the reference documentation for local deploy, remote deploy and container deploy.
sequenceDiagram
autonumber
participant release
participant delivery
participant localTasks
participant localTasksTarget
participant execute
release ->> release: extract and launch
release ->>+ delivery: ENVIRONMENT
delivery ->>+ localTasks: ENVIRONMENT
loop for each environment target
Note right of localTasks: "Targets" are all properties
matching ENVIRONMENT*
localTasks ->>+ localTasksTarget: TARGET
Note left of execute: an override task can be
defined for each TARGET
localTasksTarget ->>+ execute: tasksRunLocal.tsk
Note right of execute: Load the properties
transformed in CI process
execute ->>+ Transform: Load Properties
Transform ->>- execute: propertyList
loop for each Line in tasksRunLocal.tsk
Note right of execute: Deploy commands, such as
MSDeploy, AZ/AWS CLI, Helm, etc.
execute ->> execute: log, execute and manage errors
end
execute ->>- localTasksTarget: deploy complete
localTasksTarget ->>- localTasks: target complete
end
localTasks ->>- delivery: complete
delivery ->>- release: complete