Transcript
Page 1: Continuous Integration Clinic

Continuous Integration Clinic

Agile 2008 – TorontoMaciej Zawadzki

Page 2: Continuous Integration Clinic

Maciej Zawadzki

• Co-founder and President of Urbancode, Inc.

• Worked on three generations of Anthill/AnthillPro.

• Speaker at SD East, SD West, and the No Fluff Just

Stuff Conference series.

• Co-author of Professional Struts Applications

Page 3: Continuous Integration Clinic

Agenda

• CI Then and Now

• Why the change?

• Common implementations

• Where are we headed?

• Lab

Page 4: Continuous Integration Clinic

Original CI

• What is Continuous Integration:

– Development practice under which developers commit code

often, and

– Each commit should not degrade code quality

• Lets Analyze This in terms of:

– Audience

– Traceability

– Artifacts

Page 5: Continuous Integration Clinic

CI Today

• Build code and give rapid feedback to development

• Deploy product into test environment

• Execute multiple suites of tests

• Release final product to production

• Traceability through every stage

Build Deploy ReleaseTest

Page 6: Continuous Integration Clinic

Build Automation Silo

Page 7: Continuous Integration Clinic

Test Automation Silo

• Testing commonly requires the following steps:

– Prepare test environment (e.g. provision VMs, application servers)

– Deploy build artifacts and test clients

– Run tests

– Capture results

– Tear-down

• Test Orchestration automates those steps to save time and prevent mistakes

Concurrent Test Workflow

Run Test Clients

StartProcess

Prepare

GatherResults

DeployTest Clients

DeployArtifacts

Page 8: Continuous Integration Clinic

Deployment Automation Silo

• Multiple Deployment Environments – It is not enough to have an automated deployment system that deploys to a single environment. There are complications with supporting multiple environments:

• Environment specific configuration

• Environment specific deployment topology

Page 9: Continuous Integration Clinic

Agenda

• CI Then and Now

• Why the change?

• Common implementations

• Where are we headed?

• Lab

Page 10: Continuous Integration Clinic

Slippery Slope of Quality Determination

• CI presents two goals:– Quality determination

– Fast feedback

• Karl Popper:– No amount of positive outcomes of testing can confirm a

scientific theory; but a single failed test can disprove the theory

• Therefore it is not sufficient to run your unit tests but not your system, performance, load, etc. tests.

Page 11: Continuous Integration Clinic

CI moving from “invention” to “innovation”

• Invention– proven to work in the laboratory

• Innovation– it can be replicated reliably on a meaningful scale at

practical costs.

• For an idea to move from invention to innovation requires an ensemble of critical components.

Peter M. Senge, The Fifth Discipline

Page 12: Continuous Integration Clinic

Example of invention vs innovation

• Invention: Wright brothers invented flight

• Innovation: DC-3 launched commercial air travel– Variable-pitch propeller– Retractable landing gear– Monocoque construction– Radial air-cooled engine– Wing flaps– (One year earlier, Boeing 247 was missing the flaps)

Page 13: Continuous Integration Clinic

Is CI the Innovation for Automation?

• CI Brings together the following “critical” factors– Automation

– Self-service

– Transparency

Page 14: Continuous Integration Clinic

Agenda

• CI Then and Now

• Why the change?

• Common implementations

• Where are we headed?

• Lab

Page 15: Continuous Integration Clinic

Builds Centric – Staged Builds

• Everything is a build

• Different “types” of builds

execute on different schedules

– CI build every 15 mins

– Longer Test build every 4 hrs

– Regression test build every night

– Etc.

Page 16: Continuous Integration Clinic

Process Centric

• Build types are decomposed

into processes

• Processes are executed

sequentially

• Traceability between

processes is problematic

Page 17: Continuous Integration Clinic

Lifecycle Centric

• First class representation

of “flow” through lifecycle

stages

• Traceability built-in

• Efficient decomposition of

build types into non-

overlapping processes

Page 18: Continuous Integration Clinic

Agenda

• CI Then and Now

• Why is this happening?

• Common implementations

• Where are we headed?

• Lab

Page 19: Continuous Integration Clinic

Release Management

• Forrester Research defines Release Management as the definition, support, and enforcement of processes for preparing software for deployment to production.

Page 20: Continuous Integration Clinic

Integration for Release Management

Page 21: Continuous Integration Clinic

The Convergence of Agile and Governance

Page 22: Continuous Integration Clinic

Agenda

• CI Then and Now

• Why is this happening?

• Common implementations

• Where are we headed?

• Lab


Recommended