Advanced Deployment Pipeline Techniques
The Deployment Pipeline is a central concept in Continuous Delivery. It represents an effective, controlled channel through which all changes destined for production pass.
A defining objective in CD is to work so that our software is always in a "releasable state." By applying high levels of automation to our development process, in the form of a Deployment Pipeline, we pass all changes to our production systems through this channel and evaluate them prior to release. This means that the pipeline quickly becomes a strategic resource.
As our use of this important tool grows, the performance of the pipeline, in terms of the rapidity with which it can give valuable feedback on the quality of your work, becomes a central concern.
Outline/Structure of the Workshop
- Foundations of Continuous Delivery
- Recap of Principles of CD
- Importance of Cycle Time
- Controlling the Variables
- The goals & structure of a Deployment Pipeline
- Infrastructure As Code
- What is it Infra as Code?
- Pros & Cons of Three Strategies for Managing Infrastructure
- Cloud Native Strategies
- Addressing Config Management Debt
- Security Concerns in Infrastructure as Code
- Team Structure & Software Architecture
- The Link Between Software Architecture & Org/Team Structure
- Managing Organisational Coupling
- The Scope of a Deployment Pipeline - Strategies for Scaling Up
- What is the correct scope of a Deployment Pipeline?
- Why is this important?
- Three Strategies for “Scaling-Up” Pros & Cons
- Configuration Management in Complex Systems
- The Anatomy of a Deployment Pipeline
- Development Environments for CD
- Successful Branching Strategies for CD
- Anatomy of a Commit Stage
- Anatomy of an Acceptance Test Stage
- The Role of Manual Testing in CD
- Performance Testing Stages
- Data Migration
- Strategies for Release into Production
- Working in Regulated Environments
- Automating Deployment
- Effective models for deployment pipelines.
- How the scope of your pipeline(s) impacts on team structure, and vice versa.
- How do you optimize your deployment pipeline(s) to give fast feedback?
- How do you protect this strategic "channel to production"?
Anyone interested in developing or improving their development pipeline.
Prerequisites for Attendees
We expect that attendees will already be broadly familiar with the concepts of Continuous Delivery. Practical experience with agile methods will help.
Attendees should be practicing, test and deployment automation, automated configuration management, and in particular Continuous Integration.
This course builds on these foundations and takes these ideas further.