continuous integration introduction

Post on 08-May-2015

1.745 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Continuous Integration

TRANSCRIPT

Continuous IntegrationContinuous Integration

Larry Cai Larry Cai larry.caiyu@gmail.comlarry.caiyu@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

larry.caiyu@gmail.com

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

top related