• Save
Continuous Integration, Build Pipelines and Continuous Deployment
Upcoming SlideShare
Loading in...5

Continuous Integration, Build Pipelines and Continuous Deployment



Talk given at DevOpsDays

Talk given at DevOpsDays



Total Views
Views on SlideShare
Embed Views



10 Embeds 182

http://www.continuousintegration.me 89
http://www.slideshare.net 57
http://tspace.web.att.com 21
https://twitter.com 4
http://dschool.co 3
http://www.linkedin.com 2
https://crowdflower.com 2
https://tasks.crowdflower.com 2
http://twitter.com 1
https://www.linkedin.com 1



Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Continuous Integration, Build Pipelines and Continuous Deployment Continuous Integration, Build Pipelines and Continuous Deployment Presentation Transcript

  • CI, Pipelines and Deployment Chris.Read@ThoughtWorks.com chris-read.net
  • About Me • Unix Admin • Network Admin • Developer • Principal Consultant
  • CI Core Practices Photo by teclasorg
  • Single Source Repository • Single point of truth • Everyone's code in the same place • NOT a branch per developer • Shared ownership
  • 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
  • Automate Testing • Not just Unit Tests • Failing tests fail the build • Fix it if it’s broken or you’re wasting your time
  • 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
  • CI Evolution
  • 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
  • Every Commit Builds • It’s all about fast feedback • Small changes • Less to merge and/or fix
  • Test in Production Clone • Detect multi-threaded or cluster issues • Tests system architecture and upgrades • Includes databases! • It’s about moving parts, not capacity
  • 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
  • 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
  • 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
  • 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
  • Build Pipelines Photo by rickz
  • Traditional CI Flow
  • Build Pipeline Flow
  • Parallel Jobs
  • One Click Deploys • Pre-requisite for build pipelines • Reduces deployment time and risk • Makes go live a non-event
  • Continuous Deployment Photo by stevendepolo
  • Timeline
  • 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
  • Q&A
  • 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/