2. • 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
A Bit About Me…
3. Our flagship product, Deployit, is a market-leading
Application Release Automation platform.
o Headquartered in Boston, Massachusetts
o Global development and support offices in
US, EMEA and APAC
Benefits include:
o Reduce development applications costs
o Accelerate application time to market
o Bridge the gap between Development and Operations
About XebiaLabs
4. • Everybody’s Going CD
• Lightning CD Recap
• Enterprise Challenges
• 5 Steps on the Way to CD
• A CD Maturity Model
• Common Automation Stack
Agenda
6. “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.”
11. o Why?
o It’s fun
o It’s cool
o All the cool kids do it
Everybody’s Going CD
12. o Why?
o It’s fun
o It’s cool
o All the cool kids do it
o It accelerates time to market
Everybody’s Going CD
13. o Why?
o It’s fun
o It’s cool
o All the cool kids do it
o It accelerates time to market
o All of the above
Everybody’s Going CD
14. o Why?
o It’s fun
o It’s cool
o All the cool kids do it
o It accelerates time to market
o All of the above
Everybody’s Going CD
15. o Why?
o It’s fun
o It’s cool
o All the cool kids do it
o It accelerates time to market
o All of the above
Everybody’s Going CD
16. “Our highest priority is to satisfy the customer through
early and continuous delivery of valuable
software.”
Lightning Recap
17. “Our highest priority is to satisfy the customer through
early and continuous delivery of valuable
software.”
Lightning Recap
18. “Our highest priority is to satisfy the customer through
early and continuous delivery of valuable
software.”
Principle #1 from the Agile Manifesto
Lightning Recap
19. Value of code in repo vs.
Value of code in use by customer
Lightning Recap
20. Value of code in repo vs.
Value of code in use by customer
Lightning Recap
21. Value of code in repo vs.
Value of code in use by customer
Lightning Recap
22. Value of code in repo vs.
Value of code in use by customer
Lightning Recap
23. Value of code in repo vs.
Value of code in use by customer
Lightning Recap
29. o We move one uniquely identified deliverable
through the pipeline
o Needs to contain all the items considered part
of the delivered version
o Application binaries
o Database changes
o Configuration files
o Server settings
o Dependencies
o …
1. Complete Delivery Artifact
30. o This might sound self-evident, but…
o …it’s harder to do than it appears
o Environment-specific builds?
o Configuration settings requested via change
tickets?
o Smoke tests present only in the testers’ notes/
heads?
1. Complete Delivery Artifact
31. o Break down your pipeline into tasks
o For each task, define
o Owner
o Input
o Output
o Triggers
o Prerequisites/gates
o Success/failure criteria
o Failure handling
2. Pipeline Stage Checklist
32. o Checklists determine sequence and
parallelization of stages
o Knowledge/confidence level/quality
measurements are also output!
o Think about feedback cycles (“if this task fails,
how can I learn from that?”)
2. Pipeline Stage Checklist
33. o In general, smaller tasks = faster runtime
o Basic upper limit:
throughput ≤ 1 / (duration of longest task)
o Are your long-running tasks providing “value for
runtime”?
3. Manageable Units of Work
34. o To run pipeline jobs (= “workers”)
o To run applications (= “environments”)
4. Scalable Capacity
35. o To run pipeline jobs (= “workers”)
o To run applications (= “environments”)
o Would like on-demand capacity quickly
o Investigate cloud-based services
4. Scalable Capacity
36. o Automation isn’t a prerequisite for CD…
o …but it’s pretty much essential
o Can you reliably execute your manual task at
the required frequency with the desired level of
throughput?
5. Automation, Automation, Automation
37. o Automation isn’t a prerequisite for CD…
o …but it’s pretty much essential
o Can you reliably execute your manual task at
the required frequency with the desired level of
throughput?
5. Automation, Automation, Automation
38. o Think about
o Build automation
o Unit Test automation
o Deployment automation
o Integration/Performance/UA Test automation
o Automated metrics gathering
o Automated feedback cycles
5. Automation, Automation, Automation
39. o Pipeline tasks and stages don’t just run and
produce log output…
o …they also have “side effects”
o Creating and destroying on-demand environments
o Updating of versions of applications deployed to
(testing, mainly) environments
o Updating the “confidence measure” of the
application version being tested
o …
6. “Side Effect” Overview
40. o Don’t want to have to “re-engineer” the state
of your IT landscape based on the progress of
pipeline jobs
o More commonly-used domain model helps
present business-relevant information
6. “Side Effect” Overview
41. o Later pipeline stages affect tightly-controlled
environments
o Release Management requirements must be met
o Can link this to prerequisites/gates for tasks
7. Release Control
42. o How to automate gates to avoid a manual
bottleneck?
o How to ensure (automated) quality/security
etc. measurements fulfill release requirements
o “Fine-tuning the dial between throughput and
control”
7. Release Control
43. o You (or your boss) don’t just want to feel things
are getting better…
o …you need to know they are!
8. Improvement Metrics
44. o Sample metrics:
o Throughput?
o Failure rate?
o Standardization coefficient
o Mean & stddev of duration per task/stage?
o Max/min duration per task/stage?
o # of manual tasks?
8. Improvement Metrics
48. 1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
Summary
49. 1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
Summary
50. 1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
5. Automation, Automation, Automation
Summary
51. 1. Complete Delivery Artifact
2. Pipeline Stage Checklist
3. Manageable Units of Work
4. Scalable Capacity
5. Automation, Automation, Automation
6. “Side Effect” Overview
Summary
52. 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
Summary
53. 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
Summary
54. o Metrics give indication of progress
o Define a maturity model based on your business
goals
o Will often spans more than “classic”
automation: from requirements gathering to
runtime application and quality analysis
o Feedback cycles essential to targeted
improvements
Maturity Model
55. Common Automation Stack
Private / Public Cloud
Environment Provisioning & Configuration
App
1.0
Dev Test 1 Test 2 QA1 QA2 PROD
Build
App
2.1
App
2.0
App
1.2
TestDeployit
Release
58. o Application Release Trends 2013 Survey
o go.xebialabs.com/Survey2013.htm
o Dzone Refcard: “Preparing for Continuous Delivery”
o refcardz.dzone.com/refcardz/preparing-continuous-delivery
o “Best Practice for Continuous Delivery Automation”
o go.xebialabs.com/best-practice-cda.html
o Continuous Delivery Automation
o www.xebialabs.com/continuous-delivery
More Info
60. Thank You!
CONTACT DETAILS
o Andrew Phillips: aphillips at xebialabs dot com
NEXT STEPS
o More information: www.xebialabs.com
GET STARTED
o Deployit Trial: www.xebialabs.com/trial
Deployit: www.xebialabs.com/products
Blog: blog.xebialabs.com
Twitter: @xebialabs
YouTube: youtube.com/xebialabs
STAY INFORMED