SlideShare a Scribd company logo
1 of 42
Download to read offline
Continuous Integration with
Jenkins
Goals
Push code
Push code
Review code
Build on push
Daily build
Test on push
Nightly regression
Performance testing
About Trainer
Introduce Yourself
2 minutes
What is your
Continuous Integration ?
What is your CI system ?
No
Build Server
Nightly
Build
Automated
Build
with
Basic
Automated Test
Use
Metrics
More
About Testing
Automated
Acceptance
Testing
Continuous
Deployment
Continuous
Delivery
Stressful Releases
What is CI ?
• Continuous Integration !!!
• Automated Everything
• Build as often as possible
• Build early and often
• e.g. On every commit/nightly build
What is CI ?
• Not just technical
• Organization and culture
What is CI ?
• Software development practice
• What people do, not about what tools
• Integrate frequently
• Fast feedback
Benefit of CI
• Fewer error/Reduce risks
• Fast feedback
• Much less manual testing
• Regression test without additional effort
• Generate deployable software
• Great confidence in the product
อะไรที่ไม่ใ๡่ CI
• Nightly build
• Developer branch
• Scheduling integration point
• Building via IDE
CI Practices
1. Maintain a single source repository
2. Automate the build
3. Make your build self-test
4. Everyone commit to the mainline everyday
5. Every commit should build the mainline on integration machine
6. Keep the build fact
7. Test in a clone of the production environment
8. Make it easy for everyone to get the latest executable
9. Everyone can see what is happen
10.Automate deployment
Single Source Repository
• Single point of truth
• Everyone’s code in the same place
• NOT a branch per developer
• Shared ownership
Automate Build
• IDE is not automating !!
• Use build tool
• Compile, package and test
Self-testing Build
• Direct from source to running build
• No manual copy
• No click
• No edit config file
Self-testing Build
• Test with
• Unit tests
• Functional tests
• Performance tests
Self-testing Build
• Responsible persons should be notified when
anything fails
• Test web in more browser
Commit More Often
• At lease one per hour
• Need small unit of work
• To commit cleanly you need to update first
Every Commit Build
• It’s all about fast feedback
• Small changes
• Less to merge or fix
Publish Latest Distributable
• Make it easy to get final product
• Should only build once
• Configuration is separate
Test in Production Clone
• Detect multi-thread, cluster, load balance issue
• Test system architecture
• Real database
Keep Build Fast
• It’s all about feedback
• If thing break you find out about it, fresh in your mind
• Keep up with frequent commit
Everyone See What’s Happening
• Reduce time to fix
• No excuse to commit on broken build
• It’s not about blame, it about feedback
Automate Deployment
• Reduce human error
• Verify can run on somewhere other than “My Machine”
• Test not only on code, but deployment process too
• Don’t tie up System Administrators with boring stuff
• Don’t tie up Developers waiting for feedback
Make CI Work
• Can not done in isolation
• Pick the right tool for the right job
• It’s not silver bullet
Build Pipeline
Traditional CI Flow
Build Pipeline Flow
One Click Deploys
• Require the Build pipelines
• Reduce deployment time and risk
• Make go live a non-event
History
Summary
• CI and Build pipeline improve
• Quality
• Time to market
• Confidence
• Continuous Deployment/Delivery is the next step
• Require Developers and System Administrator to work
closely together
3 persons/group
Your
Build Pipeline

?
Build/Deployment Pipeline
1. Clean 2. Checkout
3. Download
Library
4. Compile
5. Package 6. Setup DB 7. Run Test 8. Deploy
How to Self-Testing ?
What is Jenkins ?
• Continuous Integration Server
• Opensource
• A lot of useful plugin
• Well document
• Active community
Goals
Push code
Push code
Review code
Build on push
Daily build
Test on push
Nightly regression
Performance testing
Let’s Go !!!

More Related Content

What's hot

The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentTimothy Fitz
 
Continuous Deployment of Rails Applications
Continuous Deployment of Rails ApplicationsContinuous Deployment of Rails Applications
Continuous Deployment of Rails ApplicationsDiane Cessna
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationBasma Alkerm
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployPeter Gfader
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health NewUsing Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health Newbartlowe
 
Continuous Integration and Delivery
Continuous Integration and DeliveryContinuous Integration and Delivery
Continuous Integration and DeliveryBrandon Cornett
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeAbraham Marin-Perez
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentTimothy Fitz
 
Flusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryFlusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryJoost van der Griendt
 
Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskatesmhenroid
 
Continuous Integration - Step by Step
Continuous Integration - Step by StepContinuous Integration - Step by Step
Continuous Integration - Step by StepWilliam Simms
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentTimothy Fitz
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsSudipta Lahiri
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Bootstrapping Quality
Bootstrapping QualityBootstrapping Quality
Bootstrapping QualityMichael Roufa
 
Continuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was badContinuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was badJoe Ferguson
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationVijaya K
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFSMohamed Samy
 

What's hot (20)

The Hard Problems of Continuous Deployment
The Hard Problems of Continuous DeploymentThe Hard Problems of Continuous Deployment
The Hard Problems of Continuous Deployment
 
Continuous Deployment of Rails Applications
Continuous Deployment of Rails ApplicationsContinuous Deployment of Rails Applications
Continuous Deployment of Rails Applications
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
Using Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health NewUsing Continuous Integration To Ensure Project Health New
Using Continuous Integration To Ensure Project Health New
 
Continuous Integration and Delivery
Continuous Integration and DeliveryContinuous Integration and Delivery
Continuous Integration and Delivery
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Flusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryFlusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous Delivery
 
Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskates
 
Continuous Integration - Step by Step
Continuous Integration - Step by StepContinuous Integration - Step by Step
Continuous Integration - Step by Step
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD tools
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Ci Basics & Jenkins
Ci Basics & JenkinsCi Basics & Jenkins
Ci Basics & Jenkins
 
Bootstrapping Quality
Bootstrapping QualityBootstrapping Quality
Bootstrapping Quality
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Continuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was badContinuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was bad
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Integration using TFS
Continuous Integration using TFSContinuous Integration using TFS
Continuous Integration using TFS
 

Viewers also liked

PROEXPOSURE International day of the girl: the mountain
PROEXPOSURE International day of the girl: the mountainPROEXPOSURE International day of the girl: the mountain
PROEXPOSURE International day of the girl: the mountainPROEXPOSURE CIC
 
Presentation1
Presentation1Presentation1
Presentation1jaspang
 
Special Hot Air Balloons2
Special Hot Air Balloons2Special Hot Air Balloons2
Special Hot Air Balloons2Sojourner1
 
Module3 Review Fall09
Module3 Review Fall09Module3 Review Fall09
Module3 Review Fall09mrounds5
 
Brian M Football Dd07078
Brian M Football Dd07078Brian M Football Dd07078
Brian M Football Dd07078jaspang
 
Риск субсидиарной ответственности – веская причина не экономить на управлении...
Риск субсидиарной ответственности – веская причина не экономить на управлении...Риск субсидиарной ответственности – веская причина не экономить на управлении...
Риск субсидиарной ответственности – веская причина не экономить на управлении...Natasha Khramtsovsky
 
Asian Defense Spending 2000-2011
Asian Defense Spending 2000-2011Asian Defense Spending 2000-2011
Asian Defense Spending 2000-2011teknoport
 
[SPRINTER] Elasticsearch starter-guide for Developer
[SPRINTER] Elasticsearch starter-guide for Developer[SPRINTER] Elasticsearch starter-guide for Developer
[SPRINTER] Elasticsearch starter-guide for DeveloperSomkiat Puisungnoen
 
Reflections of a Somewhat Weary Open Access Supporter
Reflections of a Somewhat Weary Open Access SupporterReflections of a Somewhat Weary Open Access Supporter
Reflections of a Somewhat Weary Open Access SupporterMarcus Banks
 
Preparando la Conferencia de Vancouver – Frank Fowlie & David Bilinsky
Preparando la Conferencia de Vancouver – Frank Fowlie & David BilinskyPreparando la Conferencia de Vancouver – Frank Fowlie & David Bilinsky
Preparando la Conferencia de Vancouver – Frank Fowlie & David BilinskyMarcos Pueyrredon
 
Where Is Carbon Found Ana
Where Is Carbon Found AnaWhere Is Carbon Found Ana
Where Is Carbon Found AnaPatricia Muller
 

Viewers also liked (20)

PROEXPOSURE International day of the girl: the mountain
PROEXPOSURE International day of the girl: the mountainPROEXPOSURE International day of the girl: the mountain
PROEXPOSURE International day of the girl: the mountain
 
Ashley
AshleyAshley
Ashley
 
Actieplaninterculturaliseren
ActieplaninterculturaliserenActieplaninterculturaliseren
Actieplaninterculturaliseren
 
Workshop 'Omgevingsanalyse'
Workshop 'Omgevingsanalyse'Workshop 'Omgevingsanalyse'
Workshop 'Omgevingsanalyse'
 
Presentation1
Presentation1Presentation1
Presentation1
 
Special Hot Air Balloons2
Special Hot Air Balloons2Special Hot Air Balloons2
Special Hot Air Balloons2
 
Module3 Review Fall09
Module3 Review Fall09Module3 Review Fall09
Module3 Review Fall09
 
Trias
TriasTrias
Trias
 
Brian M Football Dd07078
Brian M Football Dd07078Brian M Football Dd07078
Brian M Football Dd07078
 
Nc Latest Ppt
Nc Latest PptNc Latest Ppt
Nc Latest Ppt
 
Week van de Amateurkunsten
Week van de AmateurkunstenWeek van de Amateurkunsten
Week van de Amateurkunsten
 
Pubquiz
PubquizPubquiz
Pubquiz
 
Media rea
Media reaMedia rea
Media rea
 
Риск субсидиарной ответственности – веская причина не экономить на управлении...
Риск субсидиарной ответственности – веская причина не экономить на управлении...Риск субсидиарной ответственности – веская причина не экономить на управлении...
Риск субсидиарной ответственности – веская причина не экономить на управлении...
 
Asian Defense Spending 2000-2011
Asian Defense Spending 2000-2011Asian Defense Spending 2000-2011
Asian Defense Spending 2000-2011
 
[SPRINTER] Elasticsearch starter-guide for Developer
[SPRINTER] Elasticsearch starter-guide for Developer[SPRINTER] Elasticsearch starter-guide for Developer
[SPRINTER] Elasticsearch starter-guide for Developer
 
Reflections of a Somewhat Weary Open Access Supporter
Reflections of a Somewhat Weary Open Access SupporterReflections of a Somewhat Weary Open Access Supporter
Reflections of a Somewhat Weary Open Access Supporter
 
Petra Gone Google
Petra Gone GooglePetra Gone Google
Petra Gone Google
 
Preparando la Conferencia de Vancouver – Frank Fowlie & David Bilinsky
Preparando la Conferencia de Vancouver – Frank Fowlie & David BilinskyPreparando la Conferencia de Vancouver – Frank Fowlie & David Bilinsky
Preparando la Conferencia de Vancouver – Frank Fowlie & David Bilinsky
 
Where Is Carbon Found Ana
Where Is Carbon Found AnaWhere Is Carbon Found Ana
Where Is Carbon Found Ana
 

Similar to Introduction to Continuous Integration

Continuous integration sql in the city
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the cityIke Ellis
 
AgileLINC Continous Slides by Daniel Harp
AgileLINC Continous Slides by Daniel HarpAgileLINC Continous Slides by Daniel Harp
AgileLINC Continous Slides by Daniel HarpBarry Gavril
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationhugo lu
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzDenis Ristic
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CDShanmuga S Muthu
 
Continuous integrations - Basics
Continuous integrations - BasicsContinuous integrations - Basics
Continuous integrations - BasicsBarış İNANÇ
 
Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015Tung Nguyen Thanh
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous IntegrationZahra Golmirzaei
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Continuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestContinuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestShawn Jones
 
System Integration & Build Management
System Integration & Build ManagementSystem Integration & Build Management
System Integration & Build ManagementComputing Cage
 
The Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack WayThe Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack WayiWeb (group INAP)
 
Continuous integration introduction
Continuous integration introductionContinuous integration introduction
Continuous integration introductionYoram Michaeli
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins IntroductionPavan Gupta
 
Intro to Continuous Integration
Intro to Continuous IntegrationIntro to Continuous Integration
Intro to Continuous IntegrationTal Mor (Moshayov)
 

Similar to Introduction to Continuous Integration (20)

Continuous integration sql in the city
Continuous integration sql in the cityContinuous integration sql in the city
Continuous integration sql in the city
 
AgileLINC Continous Slides by Daniel Harp
AgileLINC Continous Slides by Daniel HarpAgileLINC Continous Slides by Daniel Harp
AgileLINC Continous Slides by Daniel Harp
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
 
Continuous integrations - Basics
Continuous integrations - BasicsContinuous integrations - Basics
Continuous integrations - Basics
 
Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Continuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonestContinuous Integration: Finding problems soonest
Continuous Integration: Finding problems soonest
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Enter the Team City
Enter the Team CityEnter the Team City
Enter the Team City
 
System Integration & Build Management
System Integration & Build ManagementSystem Integration & Build Management
System Integration & Build Management
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
The Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack WayThe Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack Way
 
Continuous integration introduction
Continuous integration introductionContinuous integration introduction
Continuous integration introduction
 
Continuous integration (eng)
Continuous integration (eng)Continuous integration (eng)
Continuous integration (eng)
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Intro to Continuous Integration
Intro to Continuous IntegrationIntro to Continuous Integration
Intro to Continuous Integration
 

More from Somkiat Puisungnoen (20)

Next of Java 2022
Next of Java 2022Next of Java 2022
Next of Java 2022
 
Sck spring-reactive
Sck spring-reactiveSck spring-reactive
Sck spring-reactive
 
Part 2 :: Spring Boot testing
Part 2 :: Spring Boot testingPart 2 :: Spring Boot testing
Part 2 :: Spring Boot testing
 
vTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring BootvTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring Boot
 
Lesson learned from React native and Flutter
Lesson learned from React native and FlutterLesson learned from React native and Flutter
Lesson learned from React native and Flutter
 
devops
devops devops
devops
 
Angular :: basic tuning performance
Angular :: basic tuning performanceAngular :: basic tuning performance
Angular :: basic tuning performance
 
Shared code between projects
Shared code between projectsShared code between projects
Shared code between projects
 
Distributed Tracing
Distributed Tracing Distributed Tracing
Distributed Tracing
 
Manage data of service
Manage data of serviceManage data of service
Manage data of service
 
RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2
 
Visual testing
Visual testingVisual testing
Visual testing
 
Cloud Native App
Cloud Native AppCloud Native App
Cloud Native App
 
Wordpress for Newbie
Wordpress for NewbieWordpress for Newbie
Wordpress for Newbie
 
Sck Agile in Real World
Sck Agile in Real WorldSck Agile in Real World
Sck Agile in Real World
 
Clean you code
Clean you codeClean you code
Clean you code
 
SCK Firestore at CNX
SCK Firestore at CNXSCK Firestore at CNX
SCK Firestore at CNX
 
Unhappiness Developer
Unhappiness DeveloperUnhappiness Developer
Unhappiness Developer
 
The Beauty of BAD code
The Beauty of  BAD codeThe Beauty of  BAD code
The Beauty of BAD code
 
React in the right way
React in the right wayReact in the right way
React in the right way
 

Introduction to Continuous Integration