- CD is set of capabilities to enable changes of all kinds (features, configuration changes, bug fixes, experiments) go into production “safely”, “quickly” and “suistanably”
- Principles
- Build quality in
- Eliminate the need for mass inspection by building quality into the product in the first place
- invest a culture supported by tools and people where issues can be detected quickly
- issues should be fixed straight away when they’re cheap to detect and resolve
- Work in small batches
- split work in smaller chunks that deliver measurable business outcomes on a small part of the market
- through feedback the course can be corrected
- also a key goal is to change the economics of the software delivery process in order to minimize the cost of cost of changes
- Computers perform repetitive tasks, people solve problems
- take long repetitive work (testing, deployments) and invest in simplyfing and automating this work
- this way “people” have more time for problem-solving work
- Relentlessly pursue continuous improvement
- high-performers are never satisfied
- they make improvement part of their daily work and culture
- Everyone is responsible
- everyone involved in the software delivery process has to work together
- Build quality in
- In order to implement CD following foundations should be created
- Comprehensive configuration management
- build, test and deploy software fully in an automated manner from information stored in a version control system
- any changes should be applied in the version control
- Comprehensive configuration management
- Drivers
- Version Control
- Deployment Automation
- Trunk-Based Development
- Test Data Management
- Shift Left on Security
- Loosely Coupled
- Empowered Teams
- Monitoring
- Proactive Notification
- Patterns
Continuous Delivery (CD)