Continuous Delivery
Mathias Olausson
CTO, Solidify AB
Mathias.Olausson@Solidify.se
Tom Goodwin
“Continuous Delivery is a software development discipline where
you build software in such a way that the software can be released
to production at any time”
How does CD help?
How does CD help?
1. Helps you build the right thing
Release small chunks
of functionality
frequently.
Get regular customer
validation of the
product’s value
Incorporate feedback
rapidly. Fail fast and
learn fast.
Release
Get
Feedback
Improve
How does CD help?
1. Helps you build the right thing
2. Reduces risk of releases
1 1
2
1
2
3
1
2
3
4
1
2
3
4
5
2
3
4
5
1
6
2
3
4
5
1
6
7
Time
Unreleased
1
1
2
1
3
2
1
4
3
2
1 2
3
4
5
1
3
4
5
6
2
1
3 4 5 6 72 Unreleased
Released
VS
How does CD help?
1. Helps you build the right thing
2. Reduces risk of releases
3. Delivers real progress
RELEASE CHECKLIST:
 Regression Testing
 Integration Testing
 User Acceptance Testing
 Infrastructure Setup
 Performance Testing
 Security Audit…
“Done” is no longer “dev-
complete”, but is thoroughly
validated as only a release can.
Source Control Continuous
Deployment
Code Editing Unit Testing Code AnalysisDebugging Continuous
Integration
<//>
public async Task<int>
{int x = await task;
Continuous Delivery
Stage 1: Building Software
Team Collaboration
Branching Strategies
Semantic Versioning
1.2.3-beta1
version risk
build increment (patch)
http://semver.org/
Feature Toggles
Feature Toggles
Build Automation
Stage 2: Optimizing
Release Pipeline
Infrastructure as Code
Quality Assurance
Exploratory testing
Unit tests
Functional tests
UI tests
Performance tests
Security tests
…
Stage 3: Rethinking
Deployment Pattern #1
Linear deployment
DEV
QA
PRODUCTION
Deployment Pattern #2
Fan-out, ad-hoc deployment
DEV
UAT PRODUCTIONCapacity
Automated
Tests
Deployment Pattern #3
Fan-out, fan-in deployment
DEV
QA
PRODUCTION
Capacity Automated Tests
Deployment Pattern #4
Canary/Staged deployment
Ring2
Ring 1
Ring 0
Deployment Pattern #5
Blue-Green deployment
Measure and Learn
Application Insights
Exceptions and performance diagnostics
Availability monitoring
Data analysis
Proactive detection
Release Annotations
Create annotation from release on
the AI metrics timeline
Available as an extension from the
Visual Studio Marketplace
Rethink the way we deploy
Continuous Delivery
Build
App
Deploy to
Test
Test
Deploy to
QA
Test
Deploy to
Prod
Continuous Delivery with Containers
Build
Container
Deploy
Container
to Test
Test
Deploy to
QA
Test
Deploy
Container
to Prod
Build
App
Deliver, Learn, Improve
Don’t miss this:
meetup.com/swedish-ms-alm-devops/
Thank you!
Mathias Olausson
mathias.olausson@solidify.se
@molausson

Continuous Delivery på riktigt