SlideShare a Scribd company logo
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

More Related Content

Similar to Continuous integration - devcon10 - 20100922

Continuous integration
Continuous integrationContinuous integration
Continuous integration
James Fisk
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
Vinay H G
 
Continuous Integration at T3CON08
Continuous Integration at T3CON08Continuous Integration at T3CON08
Continuous Integration at T3CON08
Sebastian 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 Jesus
Comunidade NetPonto
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
Nathaniel Richand
 
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 - Brief
Ellen 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.pptx
eshwarvisualpath
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
Bhavin Javia
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
haochenglee
 
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
Sunil Dalal
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
Mohammad Hossein Rimaz
 
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 Objects
Prabhu Ramasamy
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in Java
XPeppers
 
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
Antonio Liccardi
 
Estafet Eacis Demo Slides
Estafet   Eacis Demo SlidesEstafet   Eacis Demo Slides
Estafet Eacis Demo Slides
Nigel Whittaker
 
Estafet Eacis Demo Slides
Estafet   Eacis Demo SlidesEstafet   Eacis Demo Slides
Estafet Eacis Demo Slides
Pauldrew
 

Similar to 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
 

Recently uploaded

GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 

Recently uploaded (20)

GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 

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