Agenda • Who Am I? • What is Continuous Integration? • Why Should You Care? • What Do You Need to Do CI? • What Else Can CI Do? • Demo • What About Continuous Delivery? • Questions
Slide 3
Who Am I? • Jenna Pederson • Programmer-geek, developer coach • Twitter: jennapederson • Blog: www.jpedersonconsulting.com/ blog
Slide 4
What is Continuous Integration? “Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.” — Martin Fowler
Slide 5
Why Should You Care?
Slide 6
Reduce rework, time, and cost Image: 401K / http://www.flickr.com/photos/68751915@N05/
Slide 7
Image: Genista / http://www.flickr.com/photos/genista/
Always have working software
Slide 8
Find and fix bugs when it is the cheapest Image: Salvatore Vuono / FreeDigitalPhotos.net
Slide 9
Immediate feedback on the system as a whole
Slide 10
Image: woodleywonderworks / http://www.flickr.com/photos/wwworks/
Less complex, more modular code
Slide 11
What do you need to do CI?
Slide 12
Version Control (and frequent commits)
Slide 13
Same Build Process for Every Environment (even for developers)
Slide 14
Image: Grant Cochrane / FreeDigitalPhotos.net
Feedback
Slide 15
Image: Loco Steve / http://www.flickr.com/photos/locosteve/
Quick Response
What is Continuous Delivery? “… about putting the release schedule in the hands of the business, not in the hands of IT. Implementing continuous delivery means making sure your software is always production ready throughout its entire lifecycle – that any build could potentially be released to users at the touch of a button using a fully automated process in a matter of seconds or minutes.” — Jez Humble
Slide 24
Principles • Repeatable • Automate • Painful? Do it more! • Use Source Control for EVERYTHING
• Done: Sushi Done vs. Chicken Done
• Quality Metrics
• Everyone is
responsible for releasing
• Continuous
Improvement
Slide 25
Practices • Build once • Use the same process to deploy to
your local dev machine as to prod
• Smoke test • Deployment pipelines
Slide 26
Questions?
Slide 27
Resources • Continuous Integration by Paul Duvall - http://bit.ly/AysbsP • Continuous Delivery by Jez Humble & David Farley - http://bit.ly/ zLMFCI
• Integrate Often - http://bit.ly/wahTyf • Continuous Integration Anti-patterns - http://ibm.co/zY29l2 • Martin Fowler Continous Integration - http://bit.ly/y96P86 and http://bit.ly/zQKVo8
• Jenkins CI - http://jenkins-ci.org/ • CI and Testing: Mere Child’s Play - http://bit.ly/HI1tVF • 8 Principles of Continuous Delivery - http://bit.ly/HG44tX