[email_address] 020 3206 1900
Continuous Delivery Ifor Evans Head of Platform Development, Betfair Continuous Delivery
<ul><li>First published by Jez Humble and David Farley from ThoughtWorks in 2010 </li></ul>Where did CD come from?
Based on Agile principles <ul><li>Iterative Development </li></ul><ul><li>Cross functional teams </li></ul><ul><li>Automat...
What is CD? <ul><li>“ A set of practices, principles and tools aimed at building, testing and releasing high quality softw...
Principles of CD Build artefacts only  ONCE Use the same automated mechanism to deploy to  EVERY   environment Smoke test ...
Why Continuous Delivery? If we do this there are NO surprises. <ul><ul><li>Until the code we’ve just written is running in...
Continuous Delivery vs Continuous Deployment Continuous  Deployment  means that every build that passes all automated test...
Prerequisites Automated Builds Automated Static Code Analysis Automated Unit Tests (code & db) Automated Functional Tests ...
What might a typical CD pipeline look like? Functional Testing Continuous Integration QA1   QA2 Security Performance Pre-P...
Tool options <ul><li>Roll your own  </li></ul><ul><li>ThoughtWorks Studios Go </li></ul><ul><li>Jenkins CI </li></ul><ul><...
Cultural Changes <ul><li>Requires full Agile Adoption </li></ul><ul><li>Requires teams to embrace responsibility for autom...
Summary <ul><li>A set of tools and services that allow us to construct an automated build pipeline that extends from Devel...
END 020 3206 1900 [email_address]
Upcoming SlideShare
Loading in …5
×

The Evolution of Agile - Continuous Delivery - Extending Agile out to Production, Ifor Evans 25th January 2012

989 views

Published on

Burns Sheehan held a highly successful Agile event, "The Evolution of Agile" on Januray 25th 2012. View the presentation given by on of the speakers, Ifor Evans "The Evolution of Agile - Continuous Delivery - Extending Agile out to Production".

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
989
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

The Evolution of Agile - Continuous Delivery - Extending Agile out to Production, Ifor Evans 25th January 2012

  1. 1. [email_address] 020 3206 1900
  2. 2. Continuous Delivery Ifor Evans Head of Platform Development, Betfair Continuous Delivery
  3. 3. <ul><li>First published by Jez Humble and David Farley from ThoughtWorks in 2010 </li></ul>Where did CD come from?
  4. 4. Based on Agile principles <ul><li>Iterative Development </li></ul><ul><li>Cross functional teams </li></ul><ul><li>Automated unit (TDD) & functional testing (QA Testing) </li></ul><ul><li>Continuous Integration </li></ul>Based on Agile principles
  5. 5. What is CD? <ul><li>“ A set of practices, principles and tools aimed at building, testing and releasing high quality software faster and more frequently.” – Betfair CD Definition </li></ul>“ A way of reducing the cycle time – i.e. how long it takes to get a simple code change to get to production” “ Automating everything!” QA1 QA2 Pre-Prod Prod C.I. Change Submitted Production What is CD?
  6. 6. Principles of CD Build artefacts only ONCE Use the same automated mechanism to deploy to EVERY environment Smoke test your deployment If anything fails, STOP the line EVERYBODY has responsibility for the release process - Code, DB, Config & System config changes Principles of CD
  7. 7. Why Continuous Delivery? If we do this there are NO surprises. <ul><ul><li>Until the code we’ve just written is running in production, we’ve merely wasted time. </li></ul></ul>Bring the pain forward – Deployments are traditionally hard and fail often. Get real feedback on the progress of projects based on the only useful definition of “ DONE ”—working software in a real production environment delivering value to users. By releasing small increments regularly, it reduces the risk of each individual release. Why Continuous Delivery?
  8. 8. Continuous Delivery vs Continuous Deployment Continuous Deployment means that every build that passes all automated tests will be deployed to Production. Scary? Continuous Delivery allows managed deployments and release windows. Bit less scary? Giving control of releases to the business. Continuous Delivery vs Continuous Deployment
  9. 9. Prerequisites Automated Builds Automated Static Code Analysis Automated Unit Tests (code & db) Automated Functional Tests (code & db) Automated Security Tests Automated Performance Tests Automated System Integration tests Automated Sanity/Smoke Tests Automated Deployments & Configuration Automated VM Provisioning Automated Network Provisioning Prerequisites
  10. 10. What might a typical CD pipeline look like? Functional Testing Continuous Integration QA1 QA2 Security Performance Pre-Prod Short-lived 1 2 3 4 5 6 Prod Changes Long-lived Pre-Prod 7 <ul><li>TYPES OF TESTING PERFORMED </li></ul><ul><li>Continuous Integration Build Server (Long-lived) </li></ul><ul><ul><li>Build/Compilation </li></ul></ul><ul><ul><li>Unit Tests </li></ul></ul><ul><ul><li>Fortify , Sonar & other Static Code Analysis </li></ul></ul><ul><li>QA1 (Short-lived) </li></ul><ul><ul><li>Tests against mocks and stubs </li></ul></ul><ul><li>QA2 (Short-lived) </li></ul><ul><ul><li>Tests against mock endpoints and DB </li></ul></ul><ul><li>Security (Long-lived) </li></ul><ul><ul><li>Security tests against cutting edge services and components </li></ul></ul><ul><li>Performance (Long-lived) </li></ul><ul><ul><li>Performance testing against near as live services and components </li></ul></ul><ul><li>Pre-Prod (Long-lived) </li></ul><ul><ul><li>Full integration tests in a production replica environment </li></ul></ul><ul><li>Prod (Long-lived) </li></ul>Fail early Heavyweight environments later in the pipeline Non-functional testing What might a typical CD pipeline look like?
  11. 11. Tool options <ul><li>Roll your own </li></ul><ul><li>ThoughtWorks Studios Go </li></ul><ul><li>Jenkins CI </li></ul><ul><li>Microsoft Team Foundation Server </li></ul><ul><li>Lots of other possible options </li></ul><ul><li>What don’t they have? Automated VM Provisioning, Network Provisioning, Deployment Configuration.. </li></ul>Tool Options
  12. 12. Cultural Changes <ul><li>Requires full Agile Adoption </li></ul><ul><li>Requires teams to embrace responsibility for automating their end-to-end pipeline. </li></ul><ul><li>Software needs to be in a potentially releasable state every build. </li></ul><ul><li>Heavy focus on testing deployability </li></ul>Cultural Changes
  13. 13. Summary <ul><li>A set of tools and services that allow us to construct an automated build pipeline that extends from Development all the way to Production. </li></ul><ul><li>Automated testing of our deployment, configuration, NFR requirements as well as functionality. </li></ul>Summary
  14. 14. END 020 3206 1900 [email_address]

×