Andrew Phillips from XebiaLabs gave a presentation on preparing for enterprise continuous delivery at the 2013 Jenkins User Conference in Palo Alto. He outlined 5 critical steps - having a complete delivery artifact, defining pipeline stages, managing work in manageable units, ensuring scalable capacity, and emphasizing automation. He also discussed related topics like maturity models, common automation stacks, and the benefits of continuous delivery.
Unleash Your Potential - Namagunga Girls Coding Club
Jenkins User Conference - Preparing for Enterprise Continuous Delivery: 5 Critical Steps
1. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
Preparing for Enterprise Continuous Delivery:
5 Critical Steps
Andrew Phillips
XebiaLabs
www.xebialabs.com
@jenkinsconf
@xebialabs
2. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
A Bit About Me…
! VP Products for XebiaLabs
! Lots of enterprise software development on
high-performance systems
! Been on both sides of the “Dev…Ops” fence
! Active open source contributor and
committer:
jclouds, Akka, Gradle and others
! Cloud, PaaS & JVM language fan (mainly
Scala, Clojure)
! Regular meetup, conference etc. presenter
3. Jenkins User Conference
Palo Alto , Oct 23 2013
About XebiaLabs
o Headquartered in Boston, Massachusetts
o Global development and support offices in
US, NL, UK, France and India
Automate & Accelerate Application Delivery
The XL platform combines Build, Deployment,
Provisioning and Delivery Automation to help
enterprises deliver higher quality software faster.
o Reduce development applications costs
o Accelerate application time to market
o Bridge the gap between Development and
Operations
@jenkinsconf
4. Jenkins User Conference
Palo Alto , Oct 23 2013
Agenda
! Everybody’s Going CD
! Lightning CD Recap
! Enterprise Challenges
! 5 Steps on the Way to CD
! A CD Maturity Model
! Common Automation Stack
@jenkinsconf
5. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
"Continuous delivery is a set of patterns and
best practices that can help software teams
dramatically improve the pace and quality
of their software delivery."
10. Jenkins User Conference
Palo Alto , Oct 23 2013
Everybody’s Going CD
! Why?
! It’s fun
! It’s cool
! All the cool kids do it
@jenkinsconf
11. Jenkins User Conference
Palo Alto , Oct 23 2013
Everybody’s Going CD
! Why?
! It’s fun
! It’s cool
! All the cool kids do it
! It accelerates time to market
@jenkinsconf
12. Jenkins User Conference
Palo Alto , Oct 23 2013
Everybody’s Going CD
! Why?
! It’s fun
! It’s cool
! All the cool kids do it
! It accelerates time to market
! All of the above
@jenkinsconf
13. Jenkins User Conference
Palo Alto , Oct 23 2013
Everybody’s Going CD
! Why?
! It’s fun
! It’s cool
! All the cool kids do it
! It accelerates time to market
! All of the above
@jenkinsconf
14. Jenkins User Conference
Palo Alto , Oct 23 2013
Everybody’s Going CD
! Why?
! It’s fun
! It’s cool
! All the cool kids do it
! It accelerates time to market
! All of the above
@jenkinsconf
15. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
Lightning Recap
"Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software."
16. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
Lightning Recap
"Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software."
17. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
Lightning Recap
"Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software.“
Principle #1 from the Agile Manifesto
18. Jenkins User Conference
Palo Alto , Oct 23 2013
Lightning Recap
Value of code in repo vs.
Value of code in use by customer
@jenkinsconf
19. Jenkins User Conference
Palo Alto , Oct 23 2013
Lightning Recap
Value of code in repo vs.
Value of code in use by customer
@jenkinsconf
20. Jenkins User Conference
Palo Alto , Oct 23 2013
Lightning Recap
Value of code in repo vs.
Value of code in use by customer
@jenkinsconf
21. Jenkins User Conference
Palo Alto , Oct 23 2013
Lightning Recap
Value of code in repo vs.
Value of code in use by customer
@jenkinsconf
22. Jenkins User Conference
Palo Alto , Oct 23 2013
Lightning Recap
Value of code in repo vs.
Value of code in use by customer
@jenkinsconf
28. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
1. Complete Delivery Artifact
! We move one uniquely identified
deliverable through the pipeline
! Needs to contain all the items considered
part of the delivered version
– Application binaries
– Database changes
– Configuration files
– Server settings
– Dependencies
29. Jenkins User Conference
Palo Alto , Oct 23 2013
1. Complete Delivery Artifact
! This might sound self-evident, but…
! …it's harder to do than it appears
– Environment-specific builds?
– Configuration settings requested via
change tickets?
– Smoke tests present only in the testers'
notes/heads?
@jenkinsconf
30. Jenkins User Conference
Palo Alto , Oct 23 2013
2. Pipeline Stage Checklist
! Break down your pipeline into tasks
! For each task, define
– Owner
– Input
– Output
– Triggers
– Prerequisites/gates
– Success/failure criteria
– Failure handling
@jenkinsconf
31. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
2. Pipeline Stage Checklist
! Checklists determine sequence and
parallelization of stages
! Knowledge/confidence level/quality
measurements are also output!
! Think about feedback cycles ("if this task
fails, how can I learn from that?")
32. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
3. Manageable Units of Work
! In general, smaller tasks = faster runtime
! Basic upper limit:
throughput = 1 / (duration of longest task)
! Are your long-running tasks providing
“value for runtime”?
33. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
4. Scalable Capacity
! To run pipeline jobs (= "workers")
! To run applications (= "environments“)
34. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
4. Scalable Capacity
! To run pipeline jobs (= "workers")
! To run applications (= "environments")
! Would like on-demand capacity quickly
! Investigate cloud-based services
35. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
5. Automation, Automation, Automation
! Automation isn’t a prerequisite for CD…
! …but it’s pretty much essential
! Can you reliably execute your manual task
at the required frequency with the desired
level of throughput?
36. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
5. Automation, Automation, Automation
! Automation isn’t a prerequisite for CD…
! …but it’s pretty much essential
! Can you reliably execute your manual task
at the required frequency with the desired
level of throughput?
37. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
5. Automation, Automation, Automation
! Think about
– Build automation
– Unit Test automation
– Deployment automation
– Integration/Performance/UA Test automation
– Automated metrics gathering
– Automated feedback cycles
38. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
6. "Side Effect" Overview
! Pipeline tasks and stages don’t just run and
produce log output…
! …they also have “side effects”
– Creating and destroying on-demand environments
– Updating of versions of applications deployed to (testing,
mainly) environments
– Updating the “confidence measure” of the application
version being tested
39. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
6. "Side Effect" Overview
! Don’t want to have to "re-engineer" the state
of your IT landscape based on the progress of
pipeline jobs
! More commonly-used domain model helps
present business-relevant information
40. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
7. Release Control
! Later pipeline stages affect tightly-controlled
environments
! Release Management requirements must be
met
! Can link this to prerequisites/gates for tasks
41. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
7. Release Control
! How to automate gates to avoid a manual
bottleneck?
! How to ensure (automated) quality/security
etc. measurements fulfil release requirements
! "Fine-tuning the dial between throughput and
control"
42. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
8. Improvement Metrics
! You (or your boss) don’t just want to feel
things are getting better…
! …you need to know they are!
43. Jenkins User Conference
Palo Alto , Oct 23 2013
8. Improvement Metrics
! Sample metrics:
– Throughput?
– Failure rate?
– Standardization coefficient
– Mean & stddev of duration per task/stage?
– Max/min duration per task/stage?
– # of manual tasks?
@jenkinsconf
45. Jenkins User Conference
Palo Alto , Oct 23 2013
Summary
1. Complete Delivery Artifact
2. Pipeline Stage Checklist
@jenkinsconf
46. Jenkins User Conference
Palo Alto , Oct 23 2013
Summary
1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
@jenkinsconf
47. Jenkins User Conference
Palo Alto , Oct 23 2013
Summary
1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
@jenkinsconf
48. Jenkins User Conference
Palo Alto , Oct 23 2013
Summary
1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
5. Automation, Automation, Automation
@jenkinsconf
49. Jenkins User Conference
Palo Alto , Oct 23 2013
Summary
1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
5. Automation, Automation, Automation
6. "Side Effect" Overview
@jenkinsconf
50. Jenkins User Conference
Palo Alto , Oct 23 2013
Summary
1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
5. Automation, Automation, Automation
6. "Side Effect" Overview
7. Release Control
@jenkinsconf
51. Jenkins User Conference
Palo Alto , Oct 23 2013
Summary
1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
5. Automation, Automation, Automation
6. "Side Effect" Overview
7. Release Control
8. Improvement Metrics
@jenkinsconf
52. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
Maturity Model
! Metrics give indication of progress
! Define a maturity model based on your business
goals
! Will often spans more than "classic" automation:
from requirements gathering to runtime
application and quality analysis
! Feedback cycles essential to targeted
improvements
56. Jenkins User Conference
Palo Alto , Oct 23 2013
@jenkinsconf
More Info
! Application Release Trends 2013 Survey
– go.xebialabs.com/Survey2013.htm
! Dzone Refcard: “Preparing for Continuous Delivery”
– refcardz.dzone.com/refcardz/preparing-continuous-delivery
! “Best Practice for Continuous Delivery Automation”
– go.xebialabs.com/best-practice-cda.html
! Continuous Delivery Automation
– www.xebialabs.com/continuous-delivery
57. Jenkins User Conference
Palo Alto , Oct 23 2013
Thank You!
CONTACT DETAILS
! Andrew Phillips: aphillips at xebialabs dot com
NEXT STEPS
! More information: www.xebialabs.com
GET STARTED
! Try it out! www.xebialabs.com/trial
Products: www.xebialabs.com/products
Blog: blog.xebialabs.com
Twitter: @xebialabs
Videos: vimeo.com/xebialabs
@jenkinsconf