Continuous Integration, Build Pipelines and Continuous Deployment

17,949
-1

Published on

Talk given at DevOpsDays

Published in: Technology

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/

×