This document discusses overcoming impediments to continuous delivery. It identifies key impediments as people, infrastructure, software products, and complexity. The document emphasizes establishing configuration management, treating infrastructure as code, and automating delivery pipelines to enable continuous delivery. Integrated pipelines that bring together CI and integration testing are recommended to help overcome impediments.
2. @markosrendell 2
Agenda
• What is Continuous Delivery?
• Why would you want it?
• What do we have to get right?
• Impedance: People
• Impedance: Infrastructure
• Impedance: Software Products
• Impedance: Complexity
8. @markosrendell 8
Continuous Delivery Essentials
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Part 3: Automated Delivery Pipeline
9. @markosrendell 9
Continuous Delivery Essentials
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Platform
Part 3: Automated Delivery Pipeline
10. @markosrendell 10
All too familiar?
Version ???
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
COTSInfrastructureESB
Package
Static Code
Analysis
Unit Tests PT env deploy
Production
deploy
CT env
deploy
Check
in
Package Unit Tests
CT env
deploy
Production
deploy
PT env deployCheck
in
17. @markosrendell 17
Impedance: Infrastructure Code quality
Infra-as-code == Infra-is-code {
Give it the Jenkins treatment!
}
e.g. MySQL
Chef cookbook
e.g. RabbitMQ
Bosh release
Treat you Platform as an Application and engineer it accordingly
18. @markosrendell 18
Impedance: Software Products
Tame the COTS products – it IS possible!
Build
Static Code
Analysis
Deploy
Code
Load Test
Data
Run Test
Harness
Deploy
Code
SCM Repo
19. @markosrendell 19
Impedance: Software Products
Tame the COTS products – it IS possible!
Build
Static Code
Analysis
Deploy
Code
Load Test
Data
Run Test
Harness
Deploy
Code
SCM Repo
Plain text
(easy)
Anything
you like!
Native
concept
SonarQube
PMD
Checkstyle
Findbugs
Lint
FxCop
etc.
Options,
options,
options
...
etc.
20. @markosrendell 20
Impedance: Software Products
Tame the COTS products – it IS possible!
Build
Static Code
Analysis
Deploy
Code
Load Test
Data
Run Test
Harness
Deploy
Code
SCM Repo
Binary or
proprietary
XML
Can you
even
flatten
CLI?
Headlless
IDE
Write your
own
CLI? etc.