Continuous Integration, Build Pipelines and Continuous Deployment

23,242 views
20,670 views

Published on

Talk given at DevOpsDays

Published in: Technology
0 Comments
53 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
23,242
On SlideShare
0
From Embeds
0
Number of Embeds
206
Actions
Shares
0
Downloads
1
Comments
0
Likes
53
Embeds 0
No embeds

No notes for slide
  • Continuous Integration, Build Pipelines and Continuous Deployment

    1. CI, Pipelines and Deployment Chris.Read@ThoughtWorks.com chris-read.net
    2. About Me • Unix Admin • Network Admin • Developer • Principal Consultant
    3. CI Core Practices Photo by teclasorg
    4. Single Source Repository • Single point of truth • Everyone's code in the same place • NOT a branch per developer • Shared ownership
    5. Automate Build • Using the IDE is not automating! • Using the IDE does not give you a repeatable build • Use a build tool • Compile, package, test
    6. Automate Testing • Not just Unit Tests • Failing tests fail the build • Fix it if it’s broken or you’re wasting your time
    7. Publish Latest Distributable • Make it easy to get the final product • Should only be built once so you deploy what’s been tested • Configuration is separate
    8. CI Evolution
    9. Commit More Often • “At least once a day” - aim for at least once an hour • Needs a small unit of work • To commit cleanly you need to update first
    10. Every Commit Builds • It’s all about fast feedback • Small changes • Less to merge and/or fix
    11. Test in Production Clone • Detect multi-threaded or cluster issues • Tests system architecture and upgrades • Includes databases! • It’s about moving parts, not capacity
    12. Keep Build Fast • It really is all about feedback • If things break you find out about it while it’s still fresh in your mind • Keep up with frequent check ins
    13. Everyone Sees What’s Happening • Reduce time to fix • No excuse to check in on broken build • It’s not about blame, it’s about feedback
    14. Automate Deployment • Reduce Human Error • Verify you can get it running somewhere other than “my machine” • Test not only the code but your deployment mechanism too • Don’t tie up Sys Admins with boring stuff • Don’t tie up Devs waiting for feedback
    15. Making CI Work • Can’t be done in isolation • Pick the right tools for the job • It’s not a silver bullet Image by LiminalMike
    16. Build Pipelines Photo by rickz
    17. Traditional CI Flow
    18. Build Pipeline Flow
    19. Parallel Jobs
    20. One Click Deploys • Pre-requisite for build pipelines • Reduces deployment time and risk • Makes go live a non-event
    21. Continuous Deployment Photo by stevendepolo
    22. Timeline
    23. Summary • CI and Build Pipelines improve • Quality • Time to Market • Confidence • Continuous Deployment is the next step • These practices require Devs and Sys Admins to work closely together
    24. Q&A
    25. Useful Links • http://www.martinfowler.com/articles/ continuousIntegration.html • http://www.thoughtworks.com/pdfs/ deployment_production_line.pdf • http://saucelabs.com/blog/index.php/2009/09/continuous- deployment%E2%80%94the-video/

    ×