Continuous IntegrationContinuous Integration
Larry Cai Larry Cai [email protected]@gmail.com
ProfileProfile
LarryLarry, an open source, collaboration & Agile evangelist, an open source, collaboration & Agile evangelist Software Practice PioneerSoftware Practice Pioneer to discover the best suitable to discover the best suitable
methods and tools to improve the efficiency of methods and tools to improve the efficiency of software developmentsoftware development
@larrycaiyu
AgendaAgenda
Tools
Continuous Integration
Overview
Deployment
ContinuousDelivery
(Next step)
Continuous integrationContinuous integration Continuous Integration is a software development Continuous Integration is a software development
practice where members of a team practice where members of a team integrate their integrate their work frequentlywork frequently, usually each person integrates , usually each person integrates at least daily - leading to multiple integrations per at least daily - leading to multiple integrations per day. Each integration is verified by an day. Each integration is verified by an automated automated build (including test)build (including test) to detect integration errors to detect integration errors as quickly as possible . as quickly as possible .
Basic automation in CIBasic automation in CI Compile, Unit level testing (code)Compile, Unit level testing (code) Acceptance Testing (verification)Acceptance Testing (verification) Feedback to develop teamFeedback to develop team
Ref: http://martinfowler.com/articles/continuousIntegration.html
CI overviewCI overview
Source: http://www.javaworld.com/javaworld/jw-12-2008/images/CIOverview.jpg
AgendaAgenda
Tools
Continuous Integration
Overview
Deployment
ContinuousDelivery
(Next step)
CI server - Hudson vs. CI server - Hudson vs. JenkinsJenkins
Hudson is a de-facto CI Hudson is a de-facto CI standard used for lots standard used for lots of productsof products
Easy to start, configure Easy to start, configure and extending (300+ and extending (300+ plugins)plugins)
Easy to handle your Easy to handle your legacy systemlegacy system
Hudson 1.394 (sun + community)
Hudson (oracle)
Jenkins (community)
Since 2011
Public TVPublic TV
Source: Extreme feedback http://wiki.hudson-ci.org/display/HUDSON/eXtreme+Feedback+Panel+Plugin
or Radiator View Plugin http://wiki.hudson-ci.org/display/HUDSON/Radiator+View+Plugin
sonarsonar
Nexus – java 3pp Nexus – java 3pp managementmanagement Maven repository Maven repository
manager acts as a manager acts as a proxy/cache between proxy/cache between you and the internetyou and the internet
Nexus is one of the Nexus is one of the popular tools (others popular tools (others are Artifactory, are Artifactory, Archiva) Archiva)
AgendaAgenda
Tools
Continuous Integration
Overview
Deployment
ContinuousDelivery
(Next step)
deploymentdeployment
YOUR PROBLEM ?
Some tipsSome tips Start now from what you haveStart now from what you have Dedicated people (not resource) for 1-2 yearsDedicated people (not resource) for 1-2 years Decrease build time (machine first)Decrease build time (machine first) Transparency, VisibleTransparency, Visible Automate everything after code is checked-inAutomate everything after code is checked-in Step by step (could put goal to the team) Step by step (could put goal to the team) Continuous improvementContinuous improvement
AgendaAgenda
Tools
Continuous Integration
Overview
Deployment
ContinuousDelivery
(Next step)
Continuous deliveryContinuous delivery http://q.weibo.com/475225 http://q.weibo.com/475225