SlideShare a Scribd company logo
Continuous Integration
(CI)
- An Effective Development Practice -
Created by KienDN
05/2014
daongockien.vn@gmail.com
Foreword
• This document is?
– To introduce a very effective practice of software
development method called Continuous
Integration
• Who should see?
– CTO/Manager of IT company (outsource/startup
company)
2
Let’s see our problem!
3
Traditional programming workflow
WAIT pain!
INTEGRATION pain!
DELIVERY pain!
4
Problem
• Wait pain!
– Developer 1 has to wait if developer 2 commits
buggy code (step 2).
• Integration pain!
– Typically, your software not works when your
team integrate together.
• Delivery pain!
– Bug can only be detected at nearly end of the
workflow (step 4,5). Too late to deliver on time.
5
Want to avoid pain?
And ask yourself how to improve
quality & productivity of your
team?
6
Solution
Continuous Integration
http://en.wikipedia.org/wiki/Continuous_integration
7
CI Workflow
NO INTEGRATION pain!
NO DELIVERY pain!
1’
1
Normal case
Abnormal case
8
CI Workflow - Benefit
• No integration pain!
– Submitted code is verified by automation test
on a CI server cluster. Each buggy code is
notified immediately.
• No delivery pain!
– Tested deployment package always be
available to customer, at any moment.
9
Improved CI Workflow
NO WAIT pain!
1’
1
Normal case
Abnormal case
10
Improved CI Workflow - Benefit
• No wait pain!
– Developer submit source code to pre-test
repository server. If passing automation test, it
is auto-submitted to main repository.
– Main repository always contains stable
version of source code. No wait to get clean
code anymore.
More improved solution!
Integrate code review process into the workflow at the pre-test repository
server.
11
How to setup it?
12
Toolset
No Tool name Category Features
1 Jenkins, Hudson, TeamCity, BuildBot CI Continuous integration tool
2 Perforce, Git, SVN, Gerrit SCM Source code repository
3 Ant, Maven, Gradle BuildTool Compile/build software
4 Email, Jabber BuildNotifer Notify people by mail or IM, SMS,
Ticket
5 Checkstyle, Emma/Cobetura, Dry,
FindBugs/PMD
StaticAnalysis Analysis coding convention, code
coverage, duplicated code, possible
bug and report
6 jUnit, Robotium, Robolectric,
Espresso
UnitTest Framework to write unit test
7 Selenium, NativeDriver, Selendroid,
WebDriver, PhantomJS
AutomationTest Framework to write automated test
8 Artifact Uploader, Copy Artifact, FTP,
SSH
Deployment Deploy/upload package to production
sever
These are some typical tools for Android world, other are similar! 13
Discussion
• What type of software project should apply this
practice?
– Game online, e-commercial, social network?
• What is the difficulty?
– Initial setup, operation, training?
• What is the cost of server cluster?
– How long does it take to setup?
– How much does it cost?
14
Feel free to contact for further
discussion!
Email: daongockien.vn@gmail.com
15

More Related Content

What's hot

What's hot (20)

"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
CI/CD 101
CI/CD 101CI/CD 101
CI/CD 101
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
devops
devops devops
devops
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
CI/CD Overview
CI/CD OverviewCI/CD Overview
CI/CD Overview
 
Jenkins
JenkinsJenkins
Jenkins
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 

Viewers also liked

Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
E. Camden Fisher
 

Viewers also liked (20)

CI, CD and Jenkins 2
CI, CD and Jenkins 2CI, CD and Jenkins 2
CI, CD and Jenkins 2
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Webアクセシビリティポリシーのつくりかた・ひろめかた
Webアクセシビリティポリシーのつくりかた・ひろめかたWebアクセシビリティポリシーのつくりかた・ひろめかた
Webアクセシビリティポリシーのつくりかた・ひろめかた
 
Orchestrate Continuous Delivery with Jenkins and Docker
Orchestrate Continuous Delivery with Jenkins and DockerOrchestrate Continuous Delivery with Jenkins and Docker
Orchestrate Continuous Delivery with Jenkins and Docker
 
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
 
Dev Ops and PaaS - Accelerate Application Delivery with OpenShift
Dev Ops and PaaS - Accelerate Application Delivery with OpenShiftDev Ops and PaaS - Accelerate Application Delivery with OpenShift
Dev Ops and PaaS - Accelerate Application Delivery with OpenShift
 
Continuous Delivery in a Complex S.O.A.
Continuous Delivery in a Complex S.O.A.Continuous Delivery in a Complex S.O.A.
Continuous Delivery in a Complex S.O.A.
 
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
 
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
 
DevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn GandhiDevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn Gandhi
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
 
Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)
 
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
 
Yale Jenkins Show and Tell
Yale Jenkins Show and TellYale Jenkins Show and Tell
Yale Jenkins Show and Tell
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 

Similar to Continuous Integration (CI) - An effective development practice

Similar to Continuous Integration (CI) - An effective development practice (20)

Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile Lets talk about CI CD Pipeline in Agile
Lets talk about CI CD Pipeline in Agile
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)Industrialization of Android Development (Concept)
Industrialization of Android Development (Concept)
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard Cheng
 
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 Everything v2.0
Continuous Everything v2.0Continuous Everything v2.0
Continuous Everything v2.0
 
Continuous integration - CI
Continuous integration - CIContinuous integration - CI
Continuous integration - CI
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
 
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
The Evolution of Agile - Continuous Delivery - Extending Agile out to Product...
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Topic production code
Topic production codeTopic production code
Topic production code
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
 
PyCon 9: Continuous Delivery starts at your Development Dnvironment
PyCon 9: Continuous Delivery starts at your Development DnvironmentPyCon 9: Continuous Delivery starts at your Development Dnvironment
PyCon 9: Continuous Delivery starts at your Development Dnvironment
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 

More from Dao Ngoc Kien (6)

Agile scrum summary
Agile scrum summaryAgile scrum summary
Agile scrum summary
 
5 why tutorial (root cause analysis RCA)
5 why tutorial (root cause analysis RCA)5 why tutorial (root cause analysis RCA)
5 why tutorial (root cause analysis RCA)
 
IOT: ガス漏れ警報システム
IOT: ガス漏れ警報システムIOT: ガス漏れ警報システム
IOT: ガス漏れ警報システム
 
IOT: A demo of gas leakage monitoring
IOT: A demo of gas leakage monitoringIOT: A demo of gas leakage monitoring
IOT: A demo of gas leakage monitoring
 
Offshore tips sharing_2.0
Offshore tips sharing_2.0Offshore tips sharing_2.0
Offshore tips sharing_2.0
 
Structure plug-in introduction for JIRA
Structure plug-in introduction for JIRAStructure plug-in introduction for JIRA
Structure plug-in introduction for JIRA
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 

Continuous Integration (CI) - An effective development practice

  • 1. Continuous Integration (CI) - An Effective Development Practice - Created by KienDN 05/2014 daongockien.vn@gmail.com
  • 2. Foreword • This document is? – To introduce a very effective practice of software development method called Continuous Integration • Who should see? – CTO/Manager of IT company (outsource/startup company) 2
  • 3. Let’s see our problem! 3
  • 4. Traditional programming workflow WAIT pain! INTEGRATION pain! DELIVERY pain! 4
  • 5. Problem • Wait pain! – Developer 1 has to wait if developer 2 commits buggy code (step 2). • Integration pain! – Typically, your software not works when your team integrate together. • Delivery pain! – Bug can only be detected at nearly end of the workflow (step 4,5). Too late to deliver on time. 5
  • 6. Want to avoid pain? And ask yourself how to improve quality & productivity of your team? 6
  • 8. CI Workflow NO INTEGRATION pain! NO DELIVERY pain! 1’ 1 Normal case Abnormal case 8
  • 9. CI Workflow - Benefit • No integration pain! – Submitted code is verified by automation test on a CI server cluster. Each buggy code is notified immediately. • No delivery pain! – Tested deployment package always be available to customer, at any moment. 9
  • 10. Improved CI Workflow NO WAIT pain! 1’ 1 Normal case Abnormal case 10
  • 11. Improved CI Workflow - Benefit • No wait pain! – Developer submit source code to pre-test repository server. If passing automation test, it is auto-submitted to main repository. – Main repository always contains stable version of source code. No wait to get clean code anymore. More improved solution! Integrate code review process into the workflow at the pre-test repository server. 11
  • 12. How to setup it? 12
  • 13. Toolset No Tool name Category Features 1 Jenkins, Hudson, TeamCity, BuildBot CI Continuous integration tool 2 Perforce, Git, SVN, Gerrit SCM Source code repository 3 Ant, Maven, Gradle BuildTool Compile/build software 4 Email, Jabber BuildNotifer Notify people by mail or IM, SMS, Ticket 5 Checkstyle, Emma/Cobetura, Dry, FindBugs/PMD StaticAnalysis Analysis coding convention, code coverage, duplicated code, possible bug and report 6 jUnit, Robotium, Robolectric, Espresso UnitTest Framework to write unit test 7 Selenium, NativeDriver, Selendroid, WebDriver, PhantomJS AutomationTest Framework to write automated test 8 Artifact Uploader, Copy Artifact, FTP, SSH Deployment Deploy/upload package to production sever These are some typical tools for Android world, other are similar! 13
  • 14. Discussion • What type of software project should apply this practice? – Game online, e-commercial, social network? • What is the difficulty? – Initial setup, operation, training? • What is the cost of server cluster? – How long does it take to setup? – How much does it cost? 14
  • 15. Feel free to contact for further discussion! Email: daongockien.vn@gmail.com 15