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