Your SlideShare is downloading. ×
0
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Continuous Delivery
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Continuous Delivery

15,586

Published on

An introduction to the concepts behind Continuous Delivery as well as an introduction to some of the tools available for implementing continuous delivery practices on a new project. This presentation …

An introduction to the concepts behind Continuous Delivery as well as an introduction to some of the tools available for implementing continuous delivery practices on a new project. This presentation is geared towards Java developers, but is applicable to all.

Published in: Technology
4 Comments
96 Likes
Statistics
Notes
No Downloads
Views
Total Views
15,586
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
1
Comments
4
Likes
96
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Requirements/Design/Development Feedback Loop is months.So much can change in that timeFeedback Loop for Release is just as long.
  • Continuous delivery is a……set of practices and principles aimed at building, testing and releasing software faster and more frequently.
  • Collaboration (DEV + Customer, DEV + Operations)Talking early and often…break down walls. [DevOps]Automation. Automate Everything! Build, Test, Deploy!Frequency. Frequent means small. Easier to troubleshoot, rollback. Reduces Risk.Feedback. Change triggers feedback. Feedback is fast. Team acts on it.
  • Agile fixes the feedback loop problem for Requirements/Design/Development.Release Feedback is still months.
  • Collaboration (DEV + Customer, DEV + Operations)Talking early and often…break down walls. [DevOps]Automation. Automate Everything! Build, Test, Deploy!Frequency. Frequent means small. Easier to troubleshoot, rollback. Reduces Risk.Feedback. Change triggers feedback. Feedback is fast. Team acts on it.
  • The Last Mile tends to be an obstacle to achieving thisTransition – why are automated deployment so important? Because a feature doesn’t add value until it is in production.
  • Does anybody know what this is a picture of?
  • Transcript

    • 1. Continuous Delivery<br />Mike McGarr<br />mike.mcgarr@excella.com<br />http://earlyandoften.wordpress.com <br />@jmichaelmcgarr<br />
    • 2. About Me<br /><ul><li>J. Michael (Mike) McGarr
    • 3. Excella Consulting, Arlington VA
    • 4. Lead of Excella’s Java Center of Excellence
    • 5. Java Developer for over 11 years
    • 6. Interests:
    • 7. Developer Productivity
    • 8. XP & Agile
    • 9. Automation
    • 10. Testing
    • 11. Polyglot Programming</li></ul>2<br />
    • 12. Agenda<br />Story<br />What is Continuous Delivery?<br />Core Practices<br />Tools<br />3<br />
    • 13. Typical Project<br />4<br />Analyst & Customer<br />Requirements<br />Architect<br />Design<br />Developer<br />Development<br />Tester<br />QA<br />Operations<br />Release<br />
    • 14. 5<br />Waterfall<br />http://flic.kr/p/6fREaa<br />
    • 15. 6<br />Problems with Waterfall<br />Long QA feedback loop<br />Lack of collaboration<br />Inability to change direction<br />
    • 16. WaterFall Project<br />7<br />Analyst & Customer<br />Requirements<br />Architect<br />Design<br />Developer<br />Development<br />Tester<br />QA<br />Operations<br />Months!<br />Release<br />
    • 17. 8<br />Agile<br />http://flic.kr/p/PQFQg<br />
    • 18. Agile Project<br />9<br />Customer <br />& Team<br />Customer <br />& Team<br />Customer <br />& Team<br />Requirements<br />Requirements<br />Requirements<br />Test<br />Test<br />Test<br />Development<br />Development<br />Development<br />Operations<br />Release<br />Days!<br />The<br />Last <br />Mile?<br />Months!<br />
    • 19. 10<br />The Last Mile<br />Manual Deployments<br />Insufficient Configuration Management<br />Infrequent, Error Prone Deployments<br />
    • 20. 11<br />Stressful Releases<br />
    • 21. Agenda<br />Story<br />What is Continuous Delivery?<br />Core Practices<br />Tools<br />12<br />
    • 22. 13<br />What is<br />Continuous Delivery?<br />
    • 23. 14<br />
    • 24. 15<br />
    • 25. …a set of practices and principles aimed at, building, testing, and releasing software faster and more frequently.<br />16<br />Continuous Delivery is…<br />
    • 26. “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”<br />- First of the Twelve Principles behind the Agile Manifesto<br />17<br />
    • 27. Goals<br />Cycle Time<br />Quality<br />18<br />
    • 28. “How long would it take your organization to deploy a change [to production] that involves just one single line of code? Do you do this on a repeatable, reliable basis?”<br /><ul><li>Mary and Tom Poppendieck,</li></ul>Implementing Lean Software Development<br />19<br />Cycle Time<br />
    • 29. http://flic.kr/p/y8KV8<br />20<br />Done means Released<br />
    • 30. 21<br />Frequent Automated Deployments<br />http://flic.kr/p/29Ree<br />
    • 31. 22<br />Continuous what?<br />Continuous<br />Delivery<br />Continuous<br />Deployment<br />Continuous<br />Integration<br />
    • 32. Agenda<br />Story<br />What is Continuous Delivery?<br />Core Practices<br />Tools<br />23<br />
    • 33. 24<br />Core Practices<br />
    • 34. 25<br />Continuous Deployment<br />Build Pipelines<br />Deployment Automation<br />Configuration<br />Management<br />Continuous Integration<br />Testing<br />Agile<br />
    • 35. 26<br />Configuration Management<br />Version Everything!<br />Single Identifier <br />Dependencies<br />App Configurations<br />Data<br />Environments<br />
    • 36. 27<br />Continuous <br />Integration<br />http://flic.kr/p/5GpzSM<br />
    • 37. 28<br />Continuous Integration<br />Check-in Daily<br />Commit to Trunk <br />Automate the Build<br />Keep the Build Fast<br />Every Commit results in Build<br />Test in Clone of Production<br />Automate Deployment<br />
    • 38. 29<br />Recommended Practices<br />Extreme Programming (XP)<br />Fail a Build for Design Breaches<br />Fail a Build for Slow Tests<br />Fail a Build for Warnings & Code Style Breaches<br />
    • 39. 30<br />Testing<br />
    • 40. 31<br />Kinds of Tests<br />Unit Tests<br />Integration Tests<br />Functional/Acceptance Tests<br />Performance & Load Tests<br />Penetration Tests<br />Exploratory Tests<br />
    • 41. 32<br />Testing Strategy<br />Identify and Prioritize Project Risk<br />Decide what Actions to Take<br />Tests = Executable Specifications<br />Confidence <br />
    • 42. 33<br />
    • 43. 34<br />Testing Recommendations<br />Automate your Tests<br />Use Fakes/Mocks<br />Automated Acceptance Testing<br />
    • 44. 35<br />Automated Acceptance Tests<br />Fast Feedback<br />Reduce Tester workload<br />Testers can do Exploratory Testing<br />Regression Tests<br />Requirements can be generated from Tests<br />
    • 45. Acceptance Test Approaches<br />Acceptance Test Driven Development (ATDD)<br />Behavior Driven Development (BDD)<br />Given [some precondition]<br />When [some event]<br />Then [some result]<br />36<br />
    • 46. http://flic.kr/p/6VmGxK<br />37<br />Deployment Automation<br />
    • 47. 38<br />Deployment Automation<br />Artifact<br />Repository<br />Application<br />Configurations<br />Middleware<br />Version<br />Control<br />Operating System<br />Database<br />
    • 48. 39<br />Use Appropriate Technology<br />http://flic.kr/p/6pmtQL<br />
    • 49. Scripting Approaches<br />Script logs into each box and runs deployment script commands<br />Script runs locally, each remote machine has agent execute script<br />Package app using platform’s packaging technology, and use infrastructure management tools push new versions<br />40<br />
    • 50. Database Deployments<br />Version your Database<br />Evolve Your Database Incrementally<br />41<br />
    • 51. Environment Management<br />Version your Application Configuration<br />Version your Operating System<br />42<br />
    • 52. 43<br />Deploying to the Cloud<br />http://flic.kr/p/4R35Dd<br />
    • 53. 44<br />Build Pipelines<br />http://www.fotopedia.com/users/chmehl<br />
    • 54. Build Pipelines<br />A Build Pipeline is an automated manifestation of your process for getting software from version control into the hands of your users.<br />45<br />
    • 55. Synonyms<br />Build Pipeline<br />Deployment Pipeline<br />Continuous Integration Pipeline<br />Deployment Production Line<br />Living Build<br />46<br />
    • 56. BuildPipelines<br />A Chain of Jobs <br />Early Jobs run Fast<br />Every Check-in creates a new Pipeline<br />When a Job Fails, the Pipeline fails<br />Keep Code Production Ready<br />47<br />
    • 57. 48<br />Stages of a Pipeline<br />
    • 58. 49<br />Pipeline Practices<br />Build Once, Deploy Many<br />Deploy the Same Way to All Environments<br />Smoke Test you Deployments<br />Deploy into a Copy of Production<br />Each Change should Propagate Instantly<br />If any part fails, Stop the line<br />
    • 59. 50<br />Pull System<br />
    • 60. 51<br />Continuous Deployment<br />
    • 61. Agenda<br />Story<br />What is Continuous Delivery?<br />Core Practices<br />Tools<br />52<br />
    • 62. 53<br />Tools<br />http://flic.kr/p/5cK2<br />
    • 63. Version Control<br />54<br />
    • 64. Dependency Management<br />55<br />
    • 65. Database Management<br />56<br />
    • 66. Infrastructure Management<br />57<br />
    • 67. 58<br />Continuous Integration<br />
    • 68. 59<br />Build Automation<br />
    • 69. 60<br />Testing Tools<br />
    • 70. 61<br />Acceptance Test Tools<br />
    • 71. 62<br />Questions<br />
    • 72. 63<br />Contact Me<br />Mike McGarr<br />mike.mcgarr@excella.com<br />http://earlyandoften.wordpress.com<br />@jmichaelmcgarr<br />

    ×