SlideShare a Scribd company logo
1 of 15
CONTINUOUS INTEGRATION
~ A GLANCE AT AGILE DEVELOPMENT AND EXTREME
PROGRAMMING~
Tran Duc Thang
Framgia 22/6/2013
Contents
I. Introduction to Continuous Integration
II. Practice Continuous Integration
III. Introduction to Jenkins
IV. Disadvantages
Introduction to CONTINUOUS INTEGRATION
Agile Development
• Agile development is a philosophy, not a
method or process.
• An Agile method is a process that support the
agile philosophy.
• One of the Agile methods is Extreme
Programming. (XP)
Introduction to CONTINUOUS INTEGRATION
Extreme Programming (XP)
• XP is the most prominent Agile Development method.
• XP, like other Agile Development methods, is a set of practices.
• The XP core practices
 Whole Team
 Planning Game
 Small Releases
 Customer Tests
 Simple Design
 Pair Programming
 Test-Driven Development
 Design Improvement
 Continuous Integration
 Collective Code Ownership
 Coding Standard
 Metaphor
 Sustainable Pace
Introduction to CONTINUOUS INTEGRATION
Continuous Integration – The concept
• one of the Agile practices ! CI was first named and proposed as part of XP. Now, many
organizations have adopted CI without adopting all of XP.
• requires developers to integrate code into a shared repository several times a day.
• each check-in is verified by an automated build, allowing teams to detect problems early.
Introduction to CONTINUOUS INTEGRATION
Continuous Integration – The goal
• “Continuous Integration doesn’t get rid of bugs, but it does make them dramatically
easier to find and remove.”
• To make your project able to deploy at any time !
Introduction to CONTINUOUS INTEGRATION
Continuous Integration feat Test-Drive Development
• CI was originally intended to be used in combination with TDD.
• CI without TDD is too risky.
• TDD without CI only proves your code work well on your own computer.
Practice Continuous Integration
Only one rule : NEVER BREAK THE BUILD !
• What works on your computer will work on anybody's computer. The reason like “It has been
working well on my computer” is just invalid !
• The code that has not been proven to build successfully should not appear in the mainline.
Practice Continuous Integration
You need a spare development machine to act as a centre integration machine. It is called
CI Server.
• https://circleci.com/
• https://drone.io/
• https://www.codeship.io/
• CruiseControl
• TeamCity
• Hudson
• Jenkins
• …
Introduction to Jenkins
Jenkins – An Overview
• In 2004, Kohsuke Kawaguchi started the project as a hobby project under the name of
Hudson.
• In 2011, not long after Sun was purchased by Oracle, Kohsuke Kawaguchi and many other
core developers from Hudson forked to a new project, based on Hudson. It is Jenkins.
• By 2010 Jenkins (Hudson) had dominated the Continuous Integration Solution Market, with
the market share of over 70%.
• Jenkins is now used widely by many big companies: Mozilla, LinkedIn, Motorola, eBay,
Yahoo!, Red Hat, NTT Data, Gree, DeNa …
Introduction to Jenkins
Why Jenkins ?
• Cross-platform tool. (written in Java)
• Large community.
• Numbers of plug-in.
• Supports many programming languages (Java, PHP, Ruby, Python …)
• IT IS AN OPEN SOURCE PROJECT. IT IS FREE !!!
Introduction to Jenkins
What can Jenkins do ?
• DEMO
• http://jenkins.mozilla.org/
• http://ci.jenkins-ci.org/
Disadvantages
Nothing is perfect. CI still has disadvantages
• Take lots of time for the initial setup, as well as the training to get acquainted with CI
server.
• Requires many resources for running CI server.
• Required high programming skill. CI can not work well without the professional
programmers who can design and write well-developed test-suites.
References
• http://softwaretest.jp/quality/
• http://www.thoughtworks.com/continuous-integration
• http://www.jamesshore.com/agile-book/
• http://www.ibm.com/developerworks/rational/library/continuous-integration-agile-
development/
• http://jenkins-php.org/
• …
CONTINUOUS INTEGRATION is more than a practice,
IT IS AN ART!

More Related Content

What's hot

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Continuous Integration: A bittersweet love story
Continuous Integration: A bittersweet love story Continuous Integration: A bittersweet love story
Continuous Integration: A bittersweet love story Suzie Prince
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0Mohamed Taman
 
DevOps Adoption Patterns
DevOps Adoption PatternsDevOps Adoption Patterns
DevOps Adoption PatternsJohn Turner
 
Agile Upstream and Downstream Webinar - English
Agile Upstream and Downstream Webinar - EnglishAgile Upstream and Downstream Webinar - English
Agile Upstream and Downstream Webinar - EnglishCollabNet
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istioWisnuPrabowo20
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanGiulio Roggero
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April MeetupShweta Sadawarte
 
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...Skelton Thatcher Consulting Ltd
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryRahul Tilloo
 
Guided Path to DevOps Career.
Guided Path to DevOps Career.Guided Path to DevOps Career.
Guided Path to DevOps Career.wahabwelcome
 
Technology Development in Early Stage Startup Indonesia
Technology Development in Early Stage Startup IndonesiaTechnology Development in Early Stage Startup Indonesia
Technology Development in Early Stage Startup Indonesiakargoindonesia
 
Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...
Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...
Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...Manuel Pais
 
Capture business value faster with a self-service platform
Capture business value faster with a self-service platformCapture business value faster with a self-service platform
Capture business value faster with a self-service platformarmincoralic
 

What's hot (20)

What the hype
What the hypeWhat the hype
What the hype
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
What is-not-devops!
What is-not-devops!What is-not-devops!
What is-not-devops!
 
Continuous Integration: A bittersweet love story
Continuous Integration: A bittersweet love story Continuous Integration: A bittersweet love story
Continuous Integration: A bittersweet love story
 
Ci cd with Openshift
Ci cd with OpenshiftCi cd with Openshift
Ci cd with Openshift
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
 
DevOps Adoption Patterns
DevOps Adoption PatternsDevOps Adoption Patterns
DevOps Adoption Patterns
 
Agile Upstream and Downstream Webinar - English
Agile Upstream and Downstream Webinar - EnglishAgile Upstream and Downstream Webinar - English
Agile Upstream and Downstream Webinar - English
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istio
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, Milan
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April Meetup
 
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
How to choose tools for DevOps and Continuous Delivery - Unicom DevOps Summit...
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT Industry
 
Guided Path to DevOps Career.
Guided Path to DevOps Career.Guided Path to DevOps Career.
Guided Path to DevOps Career.
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Devops
DevopsDevops
Devops
 
Technology Development in Early Stage Startup Indonesia
Technology Development in Early Stage Startup IndonesiaTechnology Development in Early Stage Startup Indonesia
Technology Development in Early Stage Startup Indonesia
 
Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...
Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...
Frozen DevOps? Team Topologies Comes to the Rescue! @ DevSecOps - London Gath...
 
Capture business value faster with a self-service platform
Capture business value faster with a self-service platformCapture business value faster with a self-service platform
Capture business value faster with a self-service platform
 

Similar to Continuous integration - ThangTD

Continuous Integration Introduction
Continuous Integration IntroductionContinuous Integration Introduction
Continuous Integration IntroductionFáber D. Giraldo
 
Six Signs You Need Platform Engineering
Six Signs You Need Platform EngineeringSix Signs You Need Platform Engineering
Six Signs You Need Platform EngineeringWeaveworks
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018AgileNetwork
 
Linking Upstream and Downstream Agile
Linking Upstream and Downstream AgileLinking Upstream and Downstream Agile
Linking Upstream and Downstream AgileCollabNet
 
The Benefits of continuous integration in Automation testing.pptx
The Benefits of continuous integration in Automation testing.pptxThe Benefits of continuous integration in Automation testing.pptx
The Benefits of continuous integration in Automation testing.pptxCalidad Infotech
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)Ahmed Misbah
 
Flusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryFlusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryJoost van der Griendt
 
Building environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsBuilding environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsRajnish Chauhan
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_custdennisn129
 
Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2ICS
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and InfrastructureSchubert Zhang
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1G R VISHAL
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101Hazzim Anaya
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDFMayank Kumar
 
Back To Basics
Back To BasicsBack To Basics
Back To Basicskamalikamj
 
Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)Marco Corona
 

Similar to Continuous integration - ThangTD (20)

Continuous Integration Introduction
Continuous Integration IntroductionContinuous Integration Introduction
Continuous Integration Introduction
 
Devops
DevopsDevops
Devops
 
Six Signs You Need Platform Engineering
Six Signs You Need Platform EngineeringSix Signs You Need Platform Engineering
Six Signs You Need Platform Engineering
 
intro to DevOps
intro to DevOpsintro to DevOps
intro to DevOps
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
 
Linking Upstream and Downstream Agile
Linking Upstream and Downstream AgileLinking Upstream and Downstream Agile
Linking Upstream and Downstream Agile
 
The Benefits of continuous integration in Automation testing.pptx
The Benefits of continuous integration in Automation testing.pptxThe Benefits of continuous integration in Automation testing.pptx
The Benefits of continuous integration in Automation testing.pptx
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)
 
Flusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous DeliveryFlusso Continuous Integration & Continuous Delivery
Flusso Continuous Integration & Continuous Delivery
 
Building environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsBuilding environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOps
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
10.15.2014 dallas ws_brian_d_dn_live workshop enterpise agility_cust
 
Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2Accelerate Time to Market by Pipelining UX with Development - Part 2
Accelerate Time to Market by Pipelining UX with Development - Part 2
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and Infrastructure
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
 
Back To Basics
Back To BasicsBack To Basics
Back To Basics
 
Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)Agile DevOps Transformation At HUD (AgileDC 2017)
Agile DevOps Transformation At HUD (AgileDC 2017)
 

More from Framgia Vietnam

Functional Programming With Elixir
Functional Programming With ElixirFunctional Programming With Elixir
Functional Programming With ElixirFramgia Vietnam
 
Timeless - Websocket on Rails
Timeless - Websocket on RailsTimeless - Websocket on Rails
Timeless - Websocket on RailsFramgia Vietnam
 
Game Development with Pygame
Game Development with PygameGame Development with Pygame
Game Development with PygameFramgia Vietnam
 
CSS3 Lovers, Gather Together
CSS3 Lovers, Gather TogetherCSS3 Lovers, Gather Together
CSS3 Lovers, Gather TogetherFramgia Vietnam
 
Build public private cloud using openstack
Build public private cloud using openstackBuild public private cloud using openstack
Build public private cloud using openstackFramgia Vietnam
 
Introduction to JRuby And JRuby on Rails
Introduction to JRuby And JRuby on RailsIntroduction to JRuby And JRuby on Rails
Introduction to JRuby And JRuby on RailsFramgia Vietnam
 
Some ways to DRY in Rails
Some ways to DRY in Rails Some ways to DRY in Rails
Some ways to DRY in Rails Framgia Vietnam
 
Create 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-xCreate 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-xFramgia Vietnam
 
View, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - ThaiptView, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - ThaiptFramgia Vietnam
 
Organize directories for applications with front-end and back-end with yii - ...
Organize directories for applications with front-end and back-end with yii - ...Organize directories for applications with front-end and back-end with yii - ...
Organize directories for applications with front-end and back-end with yii - ...Framgia Vietnam
 
What is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNTWhat is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNTFramgia Vietnam
 
Audited activerecord - QuanHV
Audited activerecord - QuanHVAudited activerecord - QuanHV
Audited activerecord - QuanHVFramgia Vietnam
 
Client side validations gem - KhanhHD
Client side validations gem - KhanhHDClient side validations gem - KhanhHD
Client side validations gem - KhanhHDFramgia Vietnam
 
Backbone.js and rails - BanLV
Backbone.js and rails - BanLVBackbone.js and rails - BanLV
Backbone.js and rails - BanLVFramgia Vietnam
 

More from Framgia Vietnam (20)

Functional Programming With Elixir
Functional Programming With ElixirFunctional Programming With Elixir
Functional Programming With Elixir
 
Dreamers defense
Dreamers defenseDreamers defense
Dreamers defense
 
Timeless - Websocket on Rails
Timeless - Websocket on RailsTimeless - Websocket on Rails
Timeless - Websocket on Rails
 
Game Development with Pygame
Game Development with PygameGame Development with Pygame
Game Development with Pygame
 
Racer Mice - Game Team
Racer Mice - Game TeamRacer Mice - Game Team
Racer Mice - Game Team
 
CSS3 Lovers, Gather Together
CSS3 Lovers, Gather TogetherCSS3 Lovers, Gather Together
CSS3 Lovers, Gather Together
 
Java 8 new features
Java 8 new features Java 8 new features
Java 8 new features
 
Build public private cloud using openstack
Build public private cloud using openstackBuild public private cloud using openstack
Build public private cloud using openstack
 
Introduction to JRuby And JRuby on Rails
Introduction to JRuby And JRuby on RailsIntroduction to JRuby And JRuby on Rails
Introduction to JRuby And JRuby on Rails
 
Some ways to DRY in Rails
Some ways to DRY in Rails Some ways to DRY in Rails
Some ways to DRY in Rails
 
HTML5 DRAG AND DROP
HTML5 DRAG AND DROPHTML5 DRAG AND DROP
HTML5 DRAG AND DROP
 
Create 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-xCreate 3D objects insite Cocos2d-x
Create 3D objects insite Cocos2d-x
 
View, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - ThaiptView, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - Thaipt
 
Organize directories for applications with front-end and back-end with yii - ...
Organize directories for applications with front-end and back-end with yii - ...Organize directories for applications with front-end and back-end with yii - ...
Organize directories for applications with front-end and back-end with yii - ...
 
What is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNTWhat is new in PHP 5.5 - HuyenNT
What is new in PHP 5.5 - HuyenNT
 
An idea - NghiaLV
An idea - NghiaLVAn idea - NghiaLV
An idea - NghiaLV
 
Audited activerecord - QuanHV
Audited activerecord - QuanHVAudited activerecord - QuanHV
Audited activerecord - QuanHV
 
Delegate - KhanhLD
Delegate - KhanhLDDelegate - KhanhLD
Delegate - KhanhLD
 
Client side validations gem - KhanhHD
Client side validations gem - KhanhHDClient side validations gem - KhanhHD
Client side validations gem - KhanhHD
 
Backbone.js and rails - BanLV
Backbone.js and rails - BanLVBackbone.js and rails - BanLV
Backbone.js and rails - BanLV
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
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
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
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
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Continuous integration - ThangTD

  • 1. CONTINUOUS INTEGRATION ~ A GLANCE AT AGILE DEVELOPMENT AND EXTREME PROGRAMMING~ Tran Duc Thang Framgia 22/6/2013
  • 2. Contents I. Introduction to Continuous Integration II. Practice Continuous Integration III. Introduction to Jenkins IV. Disadvantages
  • 3. Introduction to CONTINUOUS INTEGRATION Agile Development • Agile development is a philosophy, not a method or process. • An Agile method is a process that support the agile philosophy. • One of the Agile methods is Extreme Programming. (XP)
  • 4. Introduction to CONTINUOUS INTEGRATION Extreme Programming (XP) • XP is the most prominent Agile Development method. • XP, like other Agile Development methods, is a set of practices. • The XP core practices  Whole Team  Planning Game  Small Releases  Customer Tests  Simple Design  Pair Programming  Test-Driven Development  Design Improvement  Continuous Integration  Collective Code Ownership  Coding Standard  Metaphor  Sustainable Pace
  • 5. Introduction to CONTINUOUS INTEGRATION Continuous Integration – The concept • one of the Agile practices ! CI was first named and proposed as part of XP. Now, many organizations have adopted CI without adopting all of XP. • requires developers to integrate code into a shared repository several times a day. • each check-in is verified by an automated build, allowing teams to detect problems early.
  • 6. Introduction to CONTINUOUS INTEGRATION Continuous Integration – The goal • “Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” • To make your project able to deploy at any time !
  • 7. Introduction to CONTINUOUS INTEGRATION Continuous Integration feat Test-Drive Development • CI was originally intended to be used in combination with TDD. • CI without TDD is too risky. • TDD without CI only proves your code work well on your own computer.
  • 8. Practice Continuous Integration Only one rule : NEVER BREAK THE BUILD ! • What works on your computer will work on anybody's computer. The reason like “It has been working well on my computer” is just invalid ! • The code that has not been proven to build successfully should not appear in the mainline.
  • 9. Practice Continuous Integration You need a spare development machine to act as a centre integration machine. It is called CI Server. • https://circleci.com/ • https://drone.io/ • https://www.codeship.io/ • CruiseControl • TeamCity • Hudson • Jenkins • …
  • 10. Introduction to Jenkins Jenkins – An Overview • In 2004, Kohsuke Kawaguchi started the project as a hobby project under the name of Hudson. • In 2011, not long after Sun was purchased by Oracle, Kohsuke Kawaguchi and many other core developers from Hudson forked to a new project, based on Hudson. It is Jenkins. • By 2010 Jenkins (Hudson) had dominated the Continuous Integration Solution Market, with the market share of over 70%. • Jenkins is now used widely by many big companies: Mozilla, LinkedIn, Motorola, eBay, Yahoo!, Red Hat, NTT Data, Gree, DeNa …
  • 11. Introduction to Jenkins Why Jenkins ? • Cross-platform tool. (written in Java) • Large community. • Numbers of plug-in. • Supports many programming languages (Java, PHP, Ruby, Python …) • IT IS AN OPEN SOURCE PROJECT. IT IS FREE !!!
  • 12. Introduction to Jenkins What can Jenkins do ? • DEMO • http://jenkins.mozilla.org/ • http://ci.jenkins-ci.org/
  • 13. Disadvantages Nothing is perfect. CI still has disadvantages • Take lots of time for the initial setup, as well as the training to get acquainted with CI server. • Requires many resources for running CI server. • Required high programming skill. CI can not work well without the professional programmers who can design and write well-developed test-suites.
  • 14. References • http://softwaretest.jp/quality/ • http://www.thoughtworks.com/continuous-integration • http://www.jamesshore.com/agile-book/ • http://www.ibm.com/developerworks/rational/library/continuous-integration-agile- development/ • http://jenkins-php.org/ • …
  • 15. CONTINUOUS INTEGRATION is more than a practice, IT IS AN ART!