5. Principles
& ingredients of CD
CD vs DevOps
The goal of
Continuous Delivery
Definitions
Where do I start?
CD patterns &
anti-patterns
Conclusion
Outline
W h a t ‘ s n e x t ?
Why should I do CD?
@bjschrijver
6. Definitions
Every change goes through the
build/test pipeline and
automatically gets put into
production.
Continuous Deployment
?!
DevOpsBuilding and testing software in
such a way that the software can be
released to production at any time.
"Ship early, ship often, sacrificing
features, never quality" - Kyle Neath
Continuous Delivery
Team members integrate their
work frequently. Commits are
verified by automated builds
and tests.
Continuous Integration
Who’s who in CI & CD
@bjschrijver
8. Definitions
Every change goes through the
build/test pipeline and
automatically gets put into
production.
Continuous Deployment
Development and operations
engineers being responsible
together for the entire product
lifecycle.
DevOpsBuilding and testing software in
such a way that the software can be
released to production at any time.
"Ship early, ship often, sacrificing
features, never quality" - Kyle Neath
Continuous Delivery
Continuous Integration
Who’s who in CI & CD
@bjschrijver
Team members integrate their
work frequently. Commits are
verified by automated builds
and tests.
13. Principles
of Continuous Delivery
@bjschrijver
Build quality in
Keep everything in version control
Continuous improvement
Automate (almost) everything
Everybody is responsible
for the delivery process
Done means released
If it hurts, do it more often
15. Ingredients
03Build & deploy
Information & reporting
05
Design & architecture
02
Culture & organisation
01
Test & verification
04
of Continuous Delivery
@bjschrijver
16. • Agile software development
• Building the right thing
• Building the thing right
• You build it, you run it
• Cross functional teams
• Room to experiment, room for failure
Culture & organisation
Source: http://kids.nationalgeographic.com/explore/countries/netherlands/#netherlands-tulip-fields.jpg
17. • Version control
• Modularity
• Branching strategy
• Database changes
• Design for failure
• Feature toggles
• Automated provisioning
Design & architecture
18. • Pipeline:
An automated sequence of stages to deliver software
from version control to your users.
• Build pipeline
• Deployment pipeline
Build & deploy
19. • Testing strategy
• Test automation
• Non functional requirements
• Security
• Performance
• Verify expected business value
Test & verification
Source: http://autoexpert.com.au/buying-a-car/understanding-towing-and-load-limits-for-suvs-and-utes
NFR’s: requirements that, when not met, make the system non-functional.
20. • Static code analysis
• Traceable pipelines
• Automatic change logs
• Usage metrics
• Dynamic dashboards
• Data driven decisions, act on metrics
• Fix problems before the users notice
Information & reporting
Source: http://www.nasa.gov/images/content/218652main_STOCC_FS_img_lg.jpg
21. WORKED FINE IN DEV
OPS PROBLEM NOW
Continuous Delivery vs. DevOps
23. :
building and running better-quality software
more quickly and more reliably.
Developers and other IT professionals
working together on a shared goal
DevOps: another definition
24. Why DevOps?
as an enabler for Continuous Delivery, faster problem
resolution and focus on value instead of problems.
DevOps makes your business move faster
30. “Continuous Delivery won’t work here”
• Stated reasons:
• we’re regulated
• we’re not building
websites
• too much legacy
• our people are too
stupid
• Actual reasons:
• our culture stinks
• our architecture
stinks
Photo: Dave Lehl, text source: Jez Humble
Source: talk by Jez Humble
https://www.youtube.com/watch?v=837Z_oehhRg
34. …said no product manager ever.
J. Paul Reed
Let’s spend the next few months..
..working on automated testing and build/release
infrastructure, and redesigning how our application is
written. We can postpone our feature development.
“
”
35. Take one thing you’re pretty
sure you can improve.
Start small
Tackle the next issue
and keep improving!
Iterate
Approach
How to spark change
When done, share the results
with your team.
Celebrate!
Show results
@bjschrijver