Continuous Integration
    Jesper Forslund
    jesper.forslund@logica.com
    2010-09-22




                             ...
Continuous Integration
                         CI = Continuous Integration

What and why
How to get started
Experience – ...
What is integration?



                                     jesperforslund.se
                Continuous Integration - Ka...
Integration


                                                jesperforslund.se
Photo: Jcarwil             Continuous Inte...
Integration Hell




                                    jesperforslund.se
               Continuous Integration - Karlskr...
Stepping
                       out of your
                     comfort zone
                    don’t like integration?
...
Finding the bug
    Small increments = less to search




                                                 jesperforslund....
A software development project
                Reference project set up




  Development
     team
                      ...
Challenges in your everyday project
                                  What CI can solve

1.   Conflicts in version control...
Introduction
                                                         CI on one slide

“Continuous Integration is a softwa...
Build software at every change
                                                                           Basic CI


     ...
Build software at every change
                                                               CI server activities

      ...
10 core practices
                            The 10 step program to CI

1. Maintain a single source repository
2. Automat...
Set up examples
 continuous integration implemented




                                                           jesperf...
Default
                                                                                         Set up example #1




   ...
Automated deployment
          Set up example #2




                                               jesperforslund.se
    ...
Increase visibility
          Set up example #3




                                               jesperforslund.se
     ...
Including third party product
                                                                                            ...
Start using CI
   how to get started




                                             jesperforslund.se
                  ...
Project roadmap
                                    Print me!

1.   Development team commits to the CI practice
2.   Get a...
Developers guideline
                                       Print me!

1.   Commit early and often – make it a non-event
2...
Final slide
                          Remember me




        Avoid Integration Hell – use CI

high ROI – happy developers...
jesperforslund.se/talk-devcon10




                                           jesperforslund.se
                      Con...
more slides
references, motivation and tools…




                                                         jesperforslund....
References
                                                          Learning more

Literature
   Continuous Integration: ...
What is the return?
                                     Motivation

Reduced risk
   Testing is done early and often
   De...
Tools
                                    CI Server software

Hudson
   Written in Java
   No install required
   Easy to ...
Visualization tool
     http://code.google.com/p/gource/
     http://code.google.com/p/gource/
            code.google.com...
About me
                                              Jesper Forslund

Jesper Forslund is an entrepreneur and consultant ...
Photos
                                                 Thanks for the photos

CHEVY CAPRICE CHAOS by Jason
http://www.fli...
Upcoming SlideShare
Loading in...5
×

Continuous integration - devcon10 - 20100922

1,096

Published 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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,096
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Continuous integration - devcon10 - 20100922"

  1. 1. Continuous Integration Jesper Forslund jesper.forslund@logica.com 2010-09-22 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  2. 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. 3. What is integration? jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  4. 4. Integration jesperforslund.se Photo: Jcarwil Continuous Integration - Karlskrona 2010-09-22
  5. 5. Integration Hell jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  6. 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. 7. Finding the bug Small increments = less to search jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  8. 8. A software development project Reference project set up Development team Customer Management jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  9. 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. 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. 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. 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. 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. 14. Set up examples continuous integration implemented jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  15. 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. 16. Automated deployment Set up example #2 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  17. 17. Increase visibility Set up example #3 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  18. 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. 19. Start using CI how to get started jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  20. 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. 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. 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. 23. jesperforslund.se/talk-devcon10 jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  24. 24. more slides references, motivation and tools… jesperforslund.se Continuous Integration - Karlskrona 2010-09-22
  25. 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. 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. 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. 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. 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. 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

×