Manifest Package Delivery

Manifest Driven, Repeatable Delivery from a Packaged Artefact

There is no “compiled” output for the source files in this article, so the self-contained release package capability of Continuous Delivery Automation Framework (CDAF) is used to produce a portable, re-usable deployment artefact.

graph LR subgraph ado["Azure DevOps"] git[(Git)] build-artefact[(Build)] end release.ps1 subgraph az["Azure"] qa pp pr end git --CI--> build-artefact build-artefact --CD--> release.ps1 release.ps1 --> qa release.ps1 --> pp release.ps1 --> pr classDef blue fill:#007FFF class release.ps1 blue

Manifest

The key component of the package is the release manifest, this declares the component versions of the solution. The desired state engine (Terraform) will ensure all components for the release align with the declaration in the manifest.

# Squad 1 Machine Learning
ner_image=zcust360dv.azurecr.io/ner:39
cache_image=zcust360dv.azurecr.io/cache:94
sts_image=zcust360dv.azurecr.io/sts:72

# Squad 4 Pets
pet_claim_image=zcust360dv.azurecr.io/microservices-pets-claim:20210726.2

Deployment

The deployment uses an Environment argument is a symbolic link to the settings that need to be detokenised at deploy time, e.g.

./release.ps1 QA