Continuous Delivery
Rainer Stropek | software architects | @rstropek
Introduction
https://rainerstropek.me
Why?
Automation means less toil
Invest development resources in adding value for customers
Automation means repeatability
Aim for consistently high quality, not an occasional exceptional one
Deploy irrespectively of certain people being involved
Automation means documentation
Deployment automation scripts are our documentation
Never out of date
Add conceptual docs for the big picture and you are done
Automation means traceability
Why is what deployed where?
Why Not?
Why Not?
Technical limitations make automation super hard
Try to combine automated steps with manual ones
Limiting policies
Manual steps are required e.g. by law
Consider automated processes/steps with manual gates
One-time effort
E.g. demo, prototype, feasibility study, etc.
BUT:
No project is too small for CD
If you have to deploy multiple times, automate it
⛅ Rulez!
No, not this cloud 😅!
Benefit From ⛅ Services
No-Ops CI/CD servers are commodity
Available for free, or at least for very little money
Standardized, well documented, well understood
Examples: GitHub Actions, Azure DevOps Pipelines
Enhance Security
CI/CD servers are very much security-relevant
Protect them, make them immutable
Use hybrid solutions if ⛅ is not an option
E.g. Azure DevOps on-premise build agents
Demos
Azure DevOps Multi-Stage Pipelines
Time Cockpit "classic"
🔗
Pipeline YAML definition
🔗
Azure DevOps Release Management
Time Cockpit "web"
🔗
GitHub Actions
Battleship Coding Contest
🔗
Pipeline YAML definition
🔗
Important Considerations
CI/CD Tool vs. Docker-based solution
Example:
Azure Container Registry
(ACR)
Trigger builds based on the availability of security patches
Integration of
Infrastructure-as-Code
(IaC)
Our goal: Treat IaC just like any other code artifact, therefore CD
CD without human intervention needs prerequisites
Serious test automation
Separate deployment from releasing to end-users
Canary releases with solid test-in-production strategy (monitoring!)
Well thought-through concept for integrating CD with Git branching
Q&A
Rainer Stropek | software architects | @rstropek