SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Continuous Integration
    Jesper Forslund
    jesper.forslund@logica.com
    2010-09-22




                                                      jesperforslund.se
                                 Continuous Integration - Karlskrona 2010-09-22
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
What is integration?



                                     jesperforslund.se
                Continuous Integration - Karlskrona 2010-09-22
Integration


                                                jesperforslund.se
Photo: Jcarwil             Continuous Integration - Karlskrona 2010-09-22
Integration Hell




                                    jesperforslund.se
               Continuous Integration - Karlskrona 2010-09-22
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
Finding the bug
    Small increments = less to search




                                                 jesperforslund.se
                            Continuous Integration - Karlskrona 2010-09-22
A software development project
                Reference project set up




  Development
     team
                                         Customer

                    Management




                                                         jesperforslund.se
                                    Continuous Integration - Karlskrona 2010-09-22
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
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
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
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
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
Set up examples
 continuous integration implemented




                                                           jesperforslund.se
                                      Continuous Integration - Karlskrona 2010-09-22
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
Automated deployment
          Set up example #2




                                               jesperforslund.se
                          Continuous Integration - Karlskrona 2010-09-22
Increase visibility
          Set up example #3




                                               jesperforslund.se
                          Continuous Integration - Karlskrona 2010-09-22
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
Start using CI
   how to get started




                                             jesperforslund.se
                        Continuous Integration - Karlskrona 2010-09-22
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
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
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
jesperforslund.se/talk-devcon10




                                           jesperforslund.se
                      Continuous Integration - Karlskrona 2010-09-22
more slides
references, motivation and tools…




                                                         jesperforslund.se
                                    Continuous Integration - Karlskrona 2010-09-22
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
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
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
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
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
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

Weitere ähnliche Inhalte

Ähnlich wie Continuous integration - devcon10 - 20100922

Continuous integration
Continuous integrationContinuous integration
Continuous integrationJames Fisk
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkinsVinay H G
 
Continuous Integration at T3CON08
Continuous Integration at T3CON08Continuous Integration at T3CON08
Continuous Integration at T3CON08Sebastian Kurfürst
 
De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João JesusComunidade NetPonto
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...eleksdev
 
Bamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - BriefBamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - BriefEllen Feaheny
 
Architecting for continuous delivery (33rd Degree)
Architecting for continuous delivery (33rd Degree)Architecting for continuous delivery (33rd Degree)
Architecting for continuous delivery (33rd Degree)Axel Fontaine
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Dennys Hsieh
 
GCP DevOps Training institute in Ameerpet - Visualpath.pptx
GCP DevOps Training institute in Ameerpet - Visualpath.pptxGCP DevOps Training institute in Ameerpet - Visualpath.pptx
GCP DevOps Training institute in Ameerpet - Visualpath.pptxeshwarvisualpath
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and BuildsBhavin Javia
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
Continuous Delivery 持續交付
Continuous Delivery 持續交付Continuous Delivery 持續交付
Continuous Delivery 持續交付Cody Liu
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsPrabhu Ramasamy
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in JavaXPeppers
 
Continuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobileContinuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobileAntonio Liccardi
 
Estafet Eacis Demo Slides
Estafet   Eacis Demo SlidesEstafet   Eacis Demo Slides
Estafet Eacis Demo SlidesPauldrew
 
Estafet Eacis Demo Slides
Estafet   Eacis Demo SlidesEstafet   Eacis Demo Slides
Estafet Eacis Demo SlidesNigel Whittaker
 

Ähnlich wie Continuous integration - devcon10 - 20100922 (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Continuous Integration at T3CON08
Continuous Integration at T3CON08Continuous Integration at T3CON08
Continuous Integration at T3CON08
 
De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João Jesus
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
Bamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - BriefBamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - Brief
 
Architecting for continuous delivery (33rd Degree)
Architecting for continuous delivery (33rd Degree)Architecting for continuous delivery (33rd Degree)
Architecting for continuous delivery (33rd Degree)
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
GCP DevOps Training institute in Ameerpet - Visualpath.pptx
GCP DevOps Training institute in Ameerpet - Visualpath.pptxGCP DevOps Training institute in Ameerpet - Visualpath.pptx
GCP DevOps Training institute in Ameerpet - Visualpath.pptx
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Continuous Delivery 持續交付
Continuous Delivery 持續交付Continuous Delivery 持續交付
Continuous Delivery 持續交付
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in Java
 
Continuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobileContinuous integration per le tue applicazioni mobile
Continuous integration per le tue applicazioni mobile
 
Estafet Eacis Demo Slides
Estafet   Eacis Demo SlidesEstafet   Eacis Demo Slides
Estafet Eacis Demo Slides
 
Estafet Eacis Demo Slides
Estafet   Eacis Demo SlidesEstafet   Eacis Demo Slides
Estafet Eacis Demo Slides
 

Kürzlich hochgeladen

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Continuous integration - devcon10 - 20100922

  • 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