CDAF Self-hosted Pipeline Container Solution
Continuous Delivery Automation Framework (CDAF) release 2.4.0 is now available. This completes the Self-hosted Pipeline Container epic and provides an opinionated feature, complimenting the existing containerBuild and targetlessCD features.
The principles of this solution is to provide the containerised advantages of SaaS offerings like CodeShip, Travis, Circle CI, BitBucket Pipelines, etc. to organisations that host their own CI/CD workloads.
Each feature can be utilised independently. The containerBuild uses a volume mount to supply the resulting artefacts to the pipeline for upload, while containerDeploy is immutable, being supplied the artefacts as part of the disk image.
Principles
Self-hosted Pipeline Container Solution extends the following key principles of CDAF:
loose coupling
Ensure the solution is portable between toolsets, with the ability for automation developers to test their changes locally. This reduces the temptation to in-line with the pipeline tool itself.
Idempotency
A deployment should be re-runnable, performing no changes when none are required.
Source of Truth
Application code and properties are driven from source control, with the only elements never to be in source control are secrets. It is encouraged to use canonical images and code your build/runtime dependencies so you are the master of your own destiny.
12 Factors
Build once, deploy many. Deploy all environments (excluding Feature Branches) from the same artefact, applying environment variations at deploy time, not build time. A release deploys artefacts, not code, and as such should have no knowledge of source control. This principle should be applied to compiled and interpretive languages alike.