Advanced Deployment Pipeline Techniques
In this masterclass, Dave Farley (author of 'Continuous Delivery') will give you an advanced course on CD and Deployment Pipeline Techniques.
Why should you attend?
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. This masterclass will cover: Effective models for deployment pipelines How the scope of your pipeline(s) impact on team structure, and vice versa? How do you optimise your deployment pipeline(s) to give fast feedback? How do you protect this strategic “channel to production”? Typical Agenda This course is modular and will be tailored to the attendees, with different aspects of the course getting more or less focus.
- 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
- Principle & Practices
- Cloud Native Strategies
- Addressing Configuration 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
- Managing Data
- CD & Data Fundamentals
- What to Version Control?
- What Data Matters?
- Data in Production
- Deployment-Time Data Migration
- Other Data Migration Strategies & Patterns
- Testing Data Migration
- Optimising Deployment Pipelines
- What is a Minimal Deployment Pipeline?
- Pipeline as a Strategic Resource
- Strategies for Speeding-up Commit Stages
- Strategies for Speeding-up Acceptance & Other Test Stages
- Dealing with Test Failures
- Dealing with Intermittent Tests
- Managing Changes to the Pipeline
Are there any prerequisites? 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.