ARCHITECTING FOR CONTINUOUS DELIVERYPatrick Kua (@patkua)
1
About Me
@patkua
wrote
http://tiny.cc/twtlhttp://tiny.cc/retros
About Me
@patkua
works for
About Me
People who work with
About Me
People who work with
wrote the book on
OUR AGENDA
7
What is CD (briefly)
Architectural Principles
Case Study
Challenges
WHAT IS CONTINUOUS DELIVERY?
8
WHAT IS CONTINUOUS DELIVERY?
9
WHAT IS CONTINUOUS DELIVERY?
10
WHAT IS CONTINUOUS DELIVERY?
11
WHAT IS CONTINUOUS DELIVERY?
12
WHAT IS CONTINUOUS DELIVERY?
13
“Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.”
WHAT IS CONTINUOUS DELIVERY?
14
The capability to reliably release software to
production on demand
(with confidence)
WHAT IS CONTINUOUS DELIVERY?
15
Continuous Integration
Releasable Artefact
Continuous Deployment
Automatic releases
Continuous Delivery
Releases on demand
PRINCIPLES
18
The one law to rule them all…
19
The one law to rule them all…
CONWAY’S LAW
20
The one law to rule them all…
CONWAY’S LAW
“organizations which design systems ... are constrained to produce designs which are copies
of the communication structures of these organizations"
21
“If you have 4 groups working on a compiler, you’ll get a 4-pass compiler”
Eric Raymond - Hacker’s Bible, 1996
CONWAY’S LAW IN ACTION
22
23
CONWAY’S LAW
REAL LIFE EXAMPLES
Production
24
Development
Production
25
Development
Tooling
Culture
Incentives
A divide in:
26
- Werner Voegls (Amazon)
“You build it, you run it”
PRINCIPLES
27
The one law to rule them all…-ilities that matter
*ilities that matter
Automatability
Configurability
Testability
Deployability
Evolvability
Monitorability
*ilities that matter
30
AUTOMATE
ALL THE THINGS
31
Architect for testability
32
“Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.” - Yoda
33
Y-U-NO DEPLOY?
34
Architect for Configurability
35
Architect for Monitorability
36
Architect for Evolvability
37
Evolutionary Architecture
Technology Radar
Jan 2010
Aug 2010
Jan 2011
Jul 2011
Mar 2012
Assess
Trial
Trial
Adopt
Adopt
“An agile practice to incrementally build and improve
software architecture through the lifecycle of an application”
PRINCIPLES
38
The one law to rule them all…-ilities that matterIterate
39
Post Release 1
41
Things go wrong
CASE STUDY: CLIENT
42
16+ programme
streams
47
Right stakeholder representation
Stories for operational work
Tested release process early
Separate service design
The result
Up to 6 requests/day for change to live
Release on “Button Click”
Average release frequency “2 times/week”
Business decision when to release
CASE STUDY: HP
50
52
2008
1 or 2 builds per year
Porting code
Manual Testing
Production Support
Detailed Planning
53
Common codebase
Automated testing
Stop the line
Architecture change
54
2011
10-15 builds per day
Automated test maintenanceNew automated tests1 master + 1 branch
Who is doing Continuous Delivery?
Production
57
Development
58
Snowflake servers
59Configuration Management
63
QUESTIONS@patkua