CONTINOUS
DELIVERYfrom the trenches
MICHAEL MEDIN
LOVE TO BUILD
*LOVE TO BUILD*
TWO GIRLS
NOOoOoOoOoOo!
PINK LEGOs!
CONTINOUS
DELIVERYfrom the trenches
THEORY
waterfall
Requirements
Specification
Build
Test
Deliver
Done
AGILE
RESCUE
to the
Gather
Requirements
Write
Specification
Build softwareTest software
Deliver
Software
Acceptance
Test
Agile
Frontend
Business logic
Backend
3-tier
Gather
Requirements
Write
Specification
Build softwareTest software
Deliver
Software
Acceptance
Test
…but how?
Frontend
Business logic
Backend
Frontend
Business logic
Backend
waterfalls
INTEGRATION
CONTINUOUS
RESCUE
to the
Code
IntegrateBuild
Test
INTEGRATION
CONTINUOUS
complexity++
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
complexity++
DEV
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
DEV2
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
TEST
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
AT
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
ST
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
PRE PROD
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
PROD
WEB/APP
DB
WEB/APP WEB/APP
LB
APPESB
Code
IntegrateBuild
Test
…but how?
Development
Installation
Testing
waterfalls
DELIVERY
CONTINUOUS
RESCUE
to the
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
DELIVERY
CONTINUOUS
.NET Oracle
JavaSAP
distributed
…but how?
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
ReleaseCode
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
.NET Oracle EBS
JavaSAP
waterfalls
Agile Enterprise
RESCUE
to the
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
ReleaseCode
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
no such thing…
…we use
product X…
people say:
…it’s impossible
LIES!
people say:
…this is very
hard…
…it’s impossible
LIES!
…we don’t
have time…
people say:
…it’s impossible
LIES!
…it is to hard
to spell…
people say:
…it’s impossible
TRUE
CONTINUOUS
CONTINUS
http://blog.gardeviance.org/2012/07/adoption-cycles.html
DELIVERY
CONTINUOUS
AUTOMATION
Code
Test
Release
Install Configuration
Deploy
Acceptance Test
Migration Everything
Regression Test Build
Deploy button
500 services
500 services
Different route…
ARTIFACTS
CONFIG
Frameworks
Generate Code
Code Generation
search & replace
ARTIFACTS
CONFIG
Frameworks
Generate Code
VERSION
CONTROL
Scriptable
Git
ARTIFACTS
CONFIG
Build CodeFrameworks
Generate Code
VERSION
CONTROL
Maven
Convention over Code
ARTIFACTS
CONFIG
Test CodeBuild CodeFrameworks
Generate Code
VERSION
CONTROL
Diff / Compare
SoapUI
ARTIFACTS
CONFIG
Release
Code
Test CodeBuild CodeFrameworks
Generate Code
VERSION
CONTROL
Python script
Maven
(calls maven & git)
ARTIFACTS
CONFIG
Release
Code
Test CodeBuild CodeFrameworks
Generate Code
Edit Code
VERSION
CONTROL
Open-ended
No magic
ARTIFACTS
CONFIG
Release
Code
Test CodeBuild CodeFrameworks
Generate Code
Edit Code
VERSION
CONTROL
Review
Code
Git diff
Pull requests
Templates
ARTIFACTS
CONFIG
Release
Code
Configuration
Test CodeBuild CodeFrameworks
Generate Code
BOM
Edit Code
VERSION
CONTROL
Review
Code
Text files
First class citizens
ARTIFACTS
CONFIG
Release
Code
Configuration
Test CodeBuild CodeFrameworks
Generate Code
BOM
Tickets
Edit Code
VERSION
CONTROL
Review
Code
Tickets
ARTIFACTS
CONFIG
Release
Code
Configuration
Test CodeBuild CodeFrameworks
Generate Code
BOM
Tickets
Edit Code
VERSION
CONTROL
Review
Code
“Automated”
ARTIFACTS
CONFIG
Release
Code
Configuration
Test CodeBuild CodeFrameworks
Generate Code
BOM
Tickets
Edit Code
VERSION
CONTROL
Review
Code
Self Service
ARTIFACTS
CONFIG
Verify Code
Code Review #2
Many parties
ARTIFACTS
CONFIG
Verify Code Test
Manual!
By the Business
ARTIFACTS
CONFIG
Verify Code Test
Document
Code
Gen Wiki
“javadoc”
ARTIFACTS
CONFIG
Verify Code Test
Document
Code
Monitoring
Portal
Business Metrics
ARTIFACTS
CONFIG
Verify Code Test
Document
Code
Manage
Config
Monitoring
The same config!
The world changes
ARTIFACTS
CONFIG
Verify Code Test
Document
Code
Manage
Config
Approve Tickets
Monitoring
CM
Q&A
ARTIFACTS
CONFIG
Verify Code Test
Document
Code
Manage
Config
Deploy
Monitoring
Maven
Approve TicketsPython script
(calls maven)
ARTIFACTS
CONFIG
Verify Code Test
Document
Code
Manage
Config
Deploy
Approve Tickets
Monitoring
“Automated”
ARTIFACTS
CONFIG
Verify Code Test
Document
Code
Manage
Config
Deploy
Approve Tickets
Monitoring
Self Service
ARTIFACTS
CONFIG
Automation
Edit Code
VERSION
CONTROL
Review
Code
Automation
Self Service
UI
Automation
Ticket workflow
“manual” pipeline
Deploy:
Time per week:
Consultants:
1 per week
3-4
20h
Every week!
Accumulated cost
0
20
40
60
80
100
120
140
0 1 2 3 4 5 6
Manual Automated
Accumulated cost
0
20
40
60
80
100
120
140
1 2 3 4 5 6 7
Manual Automated
Re invest in CD
AUTOMATION
Code
Test
Release
Install Configuration
Deploy
Acceptance Test
Migration Everything
Regression Test Build
WASTE
Reducing manual
and human error
It’s not a tool
It’s not a pipeline
It’s not automation
It’s is a process
…a sometimes
automated process
a process with no
manual waste and no
human errors
…it is to hard
to spell…
people say:
…it’s impossible
morality
CD is a
religion
find what hurts
#1
fix it
#2
enlightenment
#3
goto #1
#4
1:find what hurts
2:fix it
3:reach enlightenment
4:goto #1
The recipe
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
Code
Integrate
Build
Unit-test
Deploy
Acceptance/
Integration
test
Release
.NET Oracle EBS
JavaSAP
waterfalls
Our job is to automate
business processes.
Why do we do this
manually?
Photo by Olga Berrios
Michael Medin:
michael@medin.name
https://www.medin.name
@mickem
https://www.linkedin.com/in/mickem
Slides:
http://www.slideshare.net/MichaelMedin

Continuous delivery @CD Summit Stockholm