SlideShare uma empresa Scribd logo
1 de 51
XAMiN
Continuous integration
XAMiN Team
Zahra Golmirzaei
Dec. 2013
Continuous Integration (CI)
• 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.
2
3
By integrating regularly, you can detect errors quickly, and
locate them more easily.
CONTINUOUS INTEGRATION DOESN’T GET
RID OF BUGS, BUT IT DOES MAKE THEM
DRAMATICALLY EASIER TO FIND AND
REMOVE
- Martin Fowler, Chief Scientist, ThoughtWorks
By integrating regularly, you can detect errors quickly, and
locate them more easily.
4
Why CI
Reliable delivery of software
5
Why CI
Reliable delivery of software
Faster time to market
6
Why CI
Reliable delivery of software
Faster time to market
Continuous innovation
7
Why CI
• Look at a “classic” release
Design Development Release
8
Why CI
• The reality
Deployment Issues
Defects
Product changes
9
Why CI
• The reality
Deployment Issues
Defects
Product changes
Defects introduced
Feature incorrectly
implemented
Stuff build on top
10
How Does CI help
11
How Does CI help
• Help you build the right thing
RELEASE
GET
FEEDBACK
IMPROVED
Release small chunks of
functionality frequently
Get regular
customer/tester validation
Incorporate feedback
rapidly
Fail fast learn fast
12
How Does CI help
• Reduce risk of release
13
How Does CI help
• Deliver “real” progress
– “Done” is not longer “dev-complete”, but is
thoroughly validated as only a release can
• Release checklist
– Integration testing
– Unit testing
– User acceptance testing
– Performance testing
– Security testing
– …
14
CI ARCHITECTURE
15
Architecture of a CI Build System
The key to fixing problems quickly is finding them quickly.
– (Fowler, 2006)
16
Architecture of a CI Build System
The key to fixing problems quickly is finding them quickly.
– (Fowler, 2006)
More than a process
Continuous Integration is backed by several important principles and practices.
17
The practice
• Maintain a single source repository
• Automate the build
• Make your build self-testing
• Every commit should build on an integration machine
• Keep the build fast
• Test in a clone of the production environment
• Make it easy for anyone to get the latest executable
• Everyone can see what’s happening
• Automate deployment
18
How to do it
• Developers check out code into their private workspaces.
• When done, the commit changes to the repository.
• The CI server monitors the repository and checks out changes
when they occur.
• The CI server builds the system and runs unit and integration
tests.
• The CI server releases deployable artefacts for testing.
• The CI server assigns a build label to the version of the code it
just built.
• The CI server informs the team of the successful build.
• If the build or tests fail, the CI server alerts the team.
• The team fix the issue at the earliest opportunity.
• Continue to continually integrate and test throughout the project.
19
Team Responsibilities
• Check in frequently
• Don’t check in broken code
• Don’t check in untested code
• Don’t check in when the build is broken
• Don’t go home after checking in until the
system builds
20
Tools of CI
• A comprehensive and up-to-date listing of the
many open source and commercial CI build
servers
– http://confluence.public.thoughtworks.org/displa
y/CC/CI+Feature+Matrix
– At this time, 25 products are compared on dozens
of attributes.
– Identifies the most important features for
companies and projects involved in the developing
CI build servers.
The most important criterion in choosing a tool is whether it does what you need it to do.
-- Duvall et al. (2007)
21
Continuous Integration Tools
22
Tools of CI
Solution Company/Project
Open
Sourc
e
First
Release
URL
AnthillPro Urbancode ‐ 2001 http://www.anthillpro.com
Bamboo Atlassian ‐ 2007 http://www.atlassian.com
Continuum Apache project yes 2005 http://continuum.apache.org
Cruise * ThoughtWorks ‐ 2008 http://studios.thoughtworks.com/cruise
CruiseControl Sourceforge project yes 2001 http://cruisecontrol.sourceforge.net
FinalBuilder VSoft Technologies ‐ 2001 http://www.FinalBuilder.com
Hudson java.net project yes 2007 http://hudson.dev.java.net
Lunt build Javaforge project yes 2004 http://luntbuild.javaforge.com
Parabuild Viewtier ‐ 2005 http://www.viewtier.com
Pulse Zutubi yes 2006 http://www.zutubi.com
Quick build ** PMEase yes 2004 http://www.pmease.com
TeamCity JetBrains yes 2006 http://www.jetbrains.com/teamcity
CI Servers from Fleisher (2009)
23
Tools of CI
Ref: http://java.dzone.com/node/28241/results Ref:http://www.wakaleo.com/resources/polls
Total vote: 643
First Vote: 2010/02/12
Last Vote: 2011/03/08
24
JENKINS/HUDSON
25
Jenkins vs. Hudson
• Jenkins: Original Hudson team
• Hudson: Oracle and Sonatype
26
What’s Jenkins/Hudson
• An open source CI server
• More then 23000 installations (Jul 2010)
• Plug-in extensibility (Over 370 plugins)
• MIT license
• Written in Java
• Available for Windows, Mac and Linux
• Runs as Servlet in Tomcat or standalone
27
Jenkins Features
• Trigger a build
• Get source code from repository
• Automatically build and test
• Generate report & notify
• Deploy
• Distributed build
28
Jenkins Plugins
Build triggers
Source code management
Build tools
Build wrappers
Build notifiers
Build reports
Artifact uploaders
UI plugins
Authentication and user
management
29
Jenkins Plugins
2009
30
Jenkins Architecture
31
Jenkins Architecture
32
Distributed Builds
• Master/slave architecture
• Start Master-only, add slaves later
• Slave: an agent running on the same
• machine or different machine and builds on
• behalf of the master
• Slaves can be different platforms
• Allows build/testing on different OSes
33
Jenkins Benefits
• Never gets bored doing builds and tests
• Catches problems fast: rapid feedback
• Alerts developers while code is fresh in their
minds
• Prevents bugs from propagating downstream
• Cheaper to fix bugs earlier, before QA or
Deployment
34
Barriers of CI
• Why doesn't every team already practice CI?
35
Barriers of CI
• Why doesn't every team already practice CI?
– It is not easy.
– Establishing a solid CI practice takes a lot of work and
technical knowledge.
– A number of new tools and processes must be mastered.
– Setting up a CI server requires that the build, unit test, and
executable packaging processes all be automated.
– Requires mastering a build scripting language, a unit
testing platform, and potentially a setup/install platform as
well.
36
XAMIN CI
37
XAMiN
38
XAMiN
39
Virtualization
40
XAMiN
41
XAMiN
42
XAMiN Production line
43
XAMiN Production line
44
XAMiN Production line
45
XAMiN CI
46
‫های‬‫بسته‬ ‫ورودی‬
‫از‬‫ی‬‫ار‬‫ز‬‫اف‬‫نرم‬
‫باالدست‬ ‫های‬‫پروژه‬‫ی‬
‫های‬‫بسته‬ ‫ورودی‬
‫انجمن‬ ‫از‬‫ی‬‫ار‬‫ز‬‫اف‬‫نرم‬
‫ن‬‫مخاز‬‫ی‬‫باینر‬‫منبع‬‫کدهای‬ ‫تست‬ ‫منبع‬‫کدهای‬‫ن‬‫مخاز‬
‫های‬‫بسته‬
‫ی‬‫از‬‫ز‬‫اف‬‫نزم‬
‫ساخت‬‫شبکه‬
‫ها‬‫بسته‬
Jenkins
‫ن‬‫مخاز‬
‫های‬‫اپالینس‬
‫ناپایدار‬
‫تست‬‫سامانه‬
‫ها‬‫اپالینس‬
‫ن‬‫مخاز‬
‫پایدا‬‫های‬‫اپالینس‬‫ر‬
‫ی‬‫باینر‬‫ن‬‫مخاز‬
‫اپالینس‬ ‫مشخصات‬
‫اینترنتی‬‫ار‬‫ز‬‫با‬
‫زمینی‬‫های‬‫اپالینس‬
‫ساخت‬‫سامانه‬
‫انتشار‬
Jenkins
XAMiN CI
47
CONTINUOUS DEPLOYMENT
The next step
48
Continuous Deployment
• Continuous Deployment is closely related to Continuous Integration
and refers to the release into production of software that passes
the automated tests.
• Essentially, “it is the practice of releasing every good build to users,”
explains Jez Humble, author of Continuous Delivery.
• By adopting both Continuous Integration and Continuous
Deployment, you not only reduce risks and catch bugs quickly, but
also move rapidly to working software.
• With low-risk releases, you can quickly adapt to business
requirements and user needs. This allows for greater collaboration
between ops and delivery, fuelling real change in your organisation,
and turning your release process into a business advantage.
49
Some References
• http://www.thoughtworks.com/
• http://martinfowler.com/articles/continuousIn
tegration.html
• https://wiki.jenkins-
ci.org/display/JENKINS/Home
50
Thanks for your attention
51

Mais conteúdo relacionado

Mais procurados

Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
Christopher Read
 

Mais procurados (20)

Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Introduction To Continuous Integration
Introduction To Continuous IntegrationIntroduction To Continuous Integration
Introduction To Continuous Integration
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Devops | CICD Pipeline
Devops | CICD PipelineDevops | CICD Pipeline
Devops | CICD Pipeline
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Quickstart for continuous integration
Quickstart for continuous integrationQuickstart for continuous integration
Quickstart for continuous integration
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenarioContinuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenario
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous Delivery
 
Automated Database Deployment at SQL Rally
Automated Database Deployment at SQL RallyAutomated Database Deployment at SQL Rally
Automated Database Deployment at SQL Rally
 
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
 
Introduce to Git and Jenkins
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
 
Continuous integration and delivery
Continuous integration and deliveryContinuous integration and delivery
Continuous integration and delivery
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Continuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous DeliveryContinuous Deployment: Beyond Continuous Delivery
Continuous Deployment: Beyond Continuous Delivery
 
Building an Automated Database Deployment Pipeline
Building an Automated Database Deployment PipelineBuilding an Automated Database Deployment Pipeline
Building an Automated Database Deployment Pipeline
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with Ruby
 

Semelhante a Introduction to Continuous Integration

Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Atlassian
 
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
 

Semelhante a Introduction to Continuous Integration (20)

Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewFlight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An Overview
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
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
 
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
Build it, Test it, Ship it: Continuous Delivery at Turner Broadcasting System...
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAP
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Enter the Team City
Enter the Team CityEnter the Team City
Enter the Team City
 
Harman deepak v - agile on steriod - dev ops led transformation
Harman  deepak v - agile on steriod - dev ops led transformationHarman  deepak v - agile on steriod - dev ops led transformation
Harman deepak v - agile on steriod - dev ops led transformation
 
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 ...
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
[WSO2Con EU 2017] Continuous Integration, Delivery and Deployment: Accelerate...
 

Último

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Último (20)

Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 

Introduction to Continuous Integration

  • 2. Continuous Integration (CI) • 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. 2
  • 3. 3 By integrating regularly, you can detect errors quickly, and locate them more easily.
  • 4. CONTINUOUS INTEGRATION DOESN’T GET RID OF BUGS, BUT IT DOES MAKE THEM DRAMATICALLY EASIER TO FIND AND REMOVE - Martin Fowler, Chief Scientist, ThoughtWorks By integrating regularly, you can detect errors quickly, and locate them more easily. 4
  • 5. Why CI Reliable delivery of software 5
  • 6. Why CI Reliable delivery of software Faster time to market 6
  • 7. Why CI Reliable delivery of software Faster time to market Continuous innovation 7
  • 8. Why CI • Look at a “classic” release Design Development Release 8
  • 9. Why CI • The reality Deployment Issues Defects Product changes 9
  • 10. Why CI • The reality Deployment Issues Defects Product changes Defects introduced Feature incorrectly implemented Stuff build on top 10
  • 11. How Does CI help 11
  • 12. How Does CI help • Help you build the right thing RELEASE GET FEEDBACK IMPROVED Release small chunks of functionality frequently Get regular customer/tester validation Incorporate feedback rapidly Fail fast learn fast 12
  • 13. How Does CI help • Reduce risk of release 13
  • 14. How Does CI help • Deliver “real” progress – “Done” is not longer “dev-complete”, but is thoroughly validated as only a release can • Release checklist – Integration testing – Unit testing – User acceptance testing – Performance testing – Security testing – … 14
  • 16. Architecture of a CI Build System The key to fixing problems quickly is finding them quickly. – (Fowler, 2006) 16
  • 17. Architecture of a CI Build System The key to fixing problems quickly is finding them quickly. – (Fowler, 2006) More than a process Continuous Integration is backed by several important principles and practices. 17
  • 18. The practice • Maintain a single source repository • Automate the build • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Make it easy for anyone to get the latest executable • Everyone can see what’s happening • Automate deployment 18
  • 19. How to do it • Developers check out code into their private workspaces. • When done, the commit changes to the repository. • The CI server monitors the repository and checks out changes when they occur. • The CI server builds the system and runs unit and integration tests. • The CI server releases deployable artefacts for testing. • The CI server assigns a build label to the version of the code it just built. • The CI server informs the team of the successful build. • If the build or tests fail, the CI server alerts the team. • The team fix the issue at the earliest opportunity. • Continue to continually integrate and test throughout the project. 19
  • 20. Team Responsibilities • Check in frequently • Don’t check in broken code • Don’t check in untested code • Don’t check in when the build is broken • Don’t go home after checking in until the system builds 20
  • 21. Tools of CI • A comprehensive and up-to-date listing of the many open source and commercial CI build servers – http://confluence.public.thoughtworks.org/displa y/CC/CI+Feature+Matrix – At this time, 25 products are compared on dozens of attributes. – Identifies the most important features for companies and projects involved in the developing CI build servers. The most important criterion in choosing a tool is whether it does what you need it to do. -- Duvall et al. (2007) 21
  • 23. Tools of CI Solution Company/Project Open Sourc e First Release URL AnthillPro Urbancode ‐ 2001 http://www.anthillpro.com Bamboo Atlassian ‐ 2007 http://www.atlassian.com Continuum Apache project yes 2005 http://continuum.apache.org Cruise * ThoughtWorks ‐ 2008 http://studios.thoughtworks.com/cruise CruiseControl Sourceforge project yes 2001 http://cruisecontrol.sourceforge.net FinalBuilder VSoft Technologies ‐ 2001 http://www.FinalBuilder.com Hudson java.net project yes 2007 http://hudson.dev.java.net Lunt build Javaforge project yes 2004 http://luntbuild.javaforge.com Parabuild Viewtier ‐ 2005 http://www.viewtier.com Pulse Zutubi yes 2006 http://www.zutubi.com Quick build ** PMEase yes 2004 http://www.pmease.com TeamCity JetBrains yes 2006 http://www.jetbrains.com/teamcity CI Servers from Fleisher (2009) 23
  • 24. Tools of CI Ref: http://java.dzone.com/node/28241/results Ref:http://www.wakaleo.com/resources/polls Total vote: 643 First Vote: 2010/02/12 Last Vote: 2011/03/08 24
  • 26. Jenkins vs. Hudson • Jenkins: Original Hudson team • Hudson: Oracle and Sonatype 26
  • 27. What’s Jenkins/Hudson • An open source CI server • More then 23000 installations (Jul 2010) • Plug-in extensibility (Over 370 plugins) • MIT license • Written in Java • Available for Windows, Mac and Linux • Runs as Servlet in Tomcat or standalone 27
  • 28. Jenkins Features • Trigger a build • Get source code from repository • Automatically build and test • Generate report & notify • Deploy • Distributed build 28
  • 29. Jenkins Plugins Build triggers Source code management Build tools Build wrappers Build notifiers Build reports Artifact uploaders UI plugins Authentication and user management 29
  • 33. Distributed Builds • Master/slave architecture • Start Master-only, add slaves later • Slave: an agent running on the same • machine or different machine and builds on • behalf of the master • Slaves can be different platforms • Allows build/testing on different OSes 33
  • 34. Jenkins Benefits • Never gets bored doing builds and tests • Catches problems fast: rapid feedback • Alerts developers while code is fresh in their minds • Prevents bugs from propagating downstream • Cheaper to fix bugs earlier, before QA or Deployment 34
  • 35. Barriers of CI • Why doesn't every team already practice CI? 35
  • 36. Barriers of CI • Why doesn't every team already practice CI? – It is not easy. – Establishing a solid CI practice takes a lot of work and technical knowledge. – A number of new tools and processes must be mastered. – Setting up a CI server requires that the build, unit test, and executable packaging processes all be automated. – Requires mastering a build scripting language, a unit testing platform, and potentially a setup/install platform as well. 36
  • 46. XAMiN CI 46 ‫های‬‫بسته‬ ‫ورودی‬ ‫از‬‫ی‬‫ار‬‫ز‬‫اف‬‫نرم‬ ‫باالدست‬ ‫های‬‫پروژه‬‫ی‬ ‫های‬‫بسته‬ ‫ورودی‬ ‫انجمن‬ ‫از‬‫ی‬‫ار‬‫ز‬‫اف‬‫نرم‬ ‫ن‬‫مخاز‬‫ی‬‫باینر‬‫منبع‬‫کدهای‬ ‫تست‬ ‫منبع‬‫کدهای‬‫ن‬‫مخاز‬ ‫های‬‫بسته‬ ‫ی‬‫از‬‫ز‬‫اف‬‫نزم‬ ‫ساخت‬‫شبکه‬ ‫ها‬‫بسته‬ Jenkins ‫ن‬‫مخاز‬ ‫های‬‫اپالینس‬ ‫ناپایدار‬ ‫تست‬‫سامانه‬ ‫ها‬‫اپالینس‬ ‫ن‬‫مخاز‬ ‫پایدا‬‫های‬‫اپالینس‬‫ر‬ ‫ی‬‫باینر‬‫ن‬‫مخاز‬ ‫اپالینس‬ ‫مشخصات‬ ‫اینترنتی‬‫ار‬‫ز‬‫با‬ ‫زمینی‬‫های‬‫اپالینس‬ ‫ساخت‬‫سامانه‬ ‫انتشار‬ Jenkins
  • 49. Continuous Deployment • Continuous Deployment is closely related to Continuous Integration and refers to the release into production of software that passes the automated tests. • Essentially, “it is the practice of releasing every good build to users,” explains Jez Humble, author of Continuous Delivery. • By adopting both Continuous Integration and Continuous Deployment, you not only reduce risks and catch bugs quickly, but also move rapidly to working software. • With low-risk releases, you can quickly adapt to business requirements and user needs. This allows for greater collaboration between ops and delivery, fuelling real change in your organisation, and turning your release process into a business advantage. 49
  • 50. Some References • http://www.thoughtworks.com/ • http://martinfowler.com/articles/continuousIn tegration.html • https://wiki.jenkins- ci.org/display/JENKINS/Home 50
  • 51. Thanks for your attention 51

Notas do Editor

  1. By integrating regularly, you can detect errors quickly, and locate them more easily.
  2. Many teams develop rituals around these policies, meaning the teams effectively manage themselves, removing the need to enforce policies from on high.
  3. Jenkins was originally developed as the Hudson project. Hudson's creation started in summer of 2004 in Sun Microsystems. It was first released in java.net in Feb. 2005 Around 2007 Hudson became known as a better alternative to CruiseControl and other open-source build-servers.[2][5] At the JavaOne conference in May 2008 the software won the Duke's Choice Award in the Developer Solutions category During November 2010, an issue arose in the Hudson community with respect to the infrastructure used, which grew to encompass questions over the stewardship and control by Oracle.[7] Negotiations between the principal project contributors and Oracle took place, and although there were many areas of agreement a key sticking point was the trademarked name "Hudson",[8] after Oracle claimed the right to the name and applied for a trademark in December 2010.[9] As a result, on January 11, 2011, a call for votes was made to change the project name from "Hudson" to "Jenkins".[10] The proposal was overwhelmingly approved by community vote on January 29, 2011 creating the Jenkins project.[11][12] On February 1, 2011, Oracle said that they intended to continue development of Hudson, and considered Jenkins a fork rather than a rename.[13] Jenkins and Hudson therefore continue as two independent projects, each claiming the other is the fork. As of 22 January 2013, the Jenkins organisation on GitHub had 431 project members and 890 public repositories,[14] Hudson 33 project members and 82 public repositories.[15] The one month bug statistics were similarly proportioned: for Jenkins 250 bugs were opened and 170 closed, for Hudson 0 bugs were opened and 6 closed the previous thirty days. In 2011, creator Kohsuke Kawaguchi received a Google-O'Reilly Open Source Award for his work on the Hudson/Jenkins project.
  4. مخازن باینری
  5. مخازن باینری