• Save
Continuous integration - devcon10 - 20100922
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Continuous integration - devcon10 - 20100922

  • 1,310 views
Uploaded on

This presentation will give you an introduction to Continuous Integration by summarizing the technique, how to use it and share some real life experience.

This presentation will give you an introduction to Continuous Integration by summarizing the technique, how to use it and share some real life experience.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,310
On Slideshare
1,307
From Embeds
3
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 3

http://www.jesperforslund.se 3

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

Transcript

  • 1. Continuous Integration Jesper Forslund jesper.forslund@logica.com 2010-09-22 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 2. Continuous Integration CI = Continuous Integration What and why How to get started Experience – set up examples Next step jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 3. What is integration? jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 4. Integration jesperforslund.se Photo: Jcarwil Continuous Integration - Karlskrona 2010-09-22
  • 5. Integration Hell jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 6. Stepping out of your comfort zone don’t like integration? Integrate frequently and soon it will be a non-event non- jesperforslund.se Photo: isayx3 Continuous Integration - Karlskrona 2010-09-22
  • 7. Finding the bug Small increments = less to search jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 8. A software development project Reference project set up Development team Customer Management jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 9. Challenges in your everyday project What CI can solve 1. Conflicts in version control system 2. Build and deployment requires manual effort 3. Providing deployable software at any time 4. Defects are discovered late 5. Current state of version controlled system is unknown 6. Low quality software 7. Getting feedback from customer during development jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 10. Introduction CI on one slide “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. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.” Martin Fowler http://martinfowler.com/articles/continuousIntegration.html jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 11. Build software at every change Basic CI eview Feedback Mechanism Generate Commit Changes Developer Run Private Build Commit Changes Poll Commit Changes CI Server Build Script Developer Subversion Integration Build Machine Run Private Build Version Control Repository Developer Run Private Build jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 12. Build software at every change CI server activities Poll CI Server Build Script Subversion Integration Build Machine Version Control Repository Get the latest code Compilation Test Execution DB Integration Code Inspections Automated Deployment Documentation Generation Release Package jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 13. 10 core practices The 10 step program to CI 1. Maintain a single source repository 2. Automate the build 3. Make the build self-testing 4. Commit every day 5. Every commit builds on an integration machine 6. Keep the build fast 7. Test in a clone of the production environment 8. Make it easy to get the last executable 9. Everyone can see what’s happening 10. Automate deployment jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 14. Set up examples continuous integration implemented jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 15. Default Set up example #1 eview Feedback Mechanism Generate Commit Changes Developer Run Private Build Commit Changes Poll Commit Changes CI Server Build Script Developer Subversion Integration Build Machine Run Private Build Version Control Repository Developer Run Private Build jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 16. Automated deployment Set up example #2 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 17. Increase visibility Set up example #3 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 18. Including third party product Set up example #4 eview Customer Explore ongoing development eview Feedback Mechanism Generate Deploy always Commit Changes Demonstration Server Developer Run Private Build Deploy on demand Commit Changes Poll Deploy on demand Commit Changes CI Server Build Script Developer Subversion Integration Build Machine Run Private Build Version Control Repository Acceptans Test Commit Changes Server Developer Production Run Private Build Server Development server Third party product jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 19. Start using CI how to get started jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 20. Project roadmap Print me! 1. Development team commits to the CI practice 2. Get a CI server 3. Extract the build script 4. Provide a feedback system 5. Automate the deployment 6. Write tests for core functionality Keep it continuous = do not stop! etrospectives – continuous improvement! jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 21. Developers guideline Print me! 1. Commit early and often – make it a non-event 2. Never commit broken code – update, build locally then commit 3. Fix broken builds – top priority to resolve 4. If the build fail – make sure that it fail fast 5. Gather metrics & understand them - use tools and read reports 6. Build in target environments – a local build is not the master 7. Create artefacts – each build should generate a package jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 22. Final slide Remember me Avoid Integration Hell – use CI high ROI – happy developers – relaxed customer CI – the path to a better life! jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 23. jesperforslund.se/talk-devcon10 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 24. more slides references, motivation and tools… jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 25. References Learning more Literature Continuous Integration: Improving Software Quality and Reducing Risk Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation Agile Patterns: The Technical Cluster http://martinfowler.com/articles/continuousIntegration.html http://en.wikipedia.org/wiki/Continuous_integration CI Tools http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 26. What is the return? Motivation Reduced risk Testing is done early and often Defects are identified early Visibility is increased Automate to go faster Less manual effort – more time to deliver value Test in parallel, not everything at the end Integration becomes a non-event No more integration hell No more hardening iterations Many teams using CI report that the advantages of CI well outweigh the disadvantages jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 27. Tools CI Server software Hudson Written in Java No install required Easy to use Powerful Great support Cruise Control The first tool and widely used Continuum Focused on MAVEN Powerful but more complex UI Bamboo Commercial product that works with Jira jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 28. Visualization tool http://code.google.com/p/gource/ http://code.google.com/p/gource/ code.google.com/p/gource jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 29. About me Jesper Forslund Jesper Forslund is an entrepreneur and consultant at Logica with wide experience from all software development disciplines and business development. He has more than 5 years experience from software development, with a strong focus on methods and practice. Jesper is an ambassador for Agile and a supporter of Software Craftsmanship. Links www.jesperforslund.se http://se.linkedin.com/in/forslund www.logica.se jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  • 30. Photos Thanks for the photos CHEVY CAPRICE CHAOS by Jason http://www.flickr.com/photos/14043270@N08/2686300859 The Door to Hell by Flydime http://www.flickr.com/photos/flydime/4671890969/ The Anti-Ad by Ed McGowan http://www.flickr.com/photos/isayx3/3605989887 Ain't it crazy? By Jerry Berg http://www.flickr.com/photos/ghb624/2783091436 Bug* by Gaëtan Bourque http://www.flickr.com/photos/lesec/183232023 Smaragdine field by Katarina Stefanović http://www.flickr.com/photos/jup3nep/3588516981/ jesperforslund.se Continuous Integration - Karlskrona 2010-09-22