From Continuous Integration to Continuous Delivery and DevOps

Preview:

Citation preview

FROM C.I. TO CD & DEVOPS CONTINUOUS DELIVERY

OVERVIEWLuca Minudel

LUCA MINUDELDID CONTINUOUS DELIVERY AT:

WORKS @

SESSION’S LINKS TWITTER @SMHARTERLTD

CD’S BUSINESS VALUE PROPOSITIONBusiness side of CD

3

SIEMENS S62Used in Italy from 1962 to 1980, 18 years

WHY CONTINUOUS DELIVERY?

6

RAI

WHY CONTINUOUS DELIVERY?1) REDUCE RISKBuild the right thing, build it right – Avoid expensive mistakes

UNRELEASED CHANGES = RISK

1 1

2

1

2

3

4

1

2

3

Value

ReleaseTimeRis

k

1 2 3 4

1

1

2

1

2

3Release Release Release

RELEASED CHANGES = VALUE

RELEASED TO1. ANYONE, OR2. EARLY ADOPTERS,3. REQUESTORS OF THE

FEATURE,4. INTERNAL USERS

RAI WHY CONTINUOUS DELIVERY?1) OVERCOME THE ‘90% DONE’ SYNDROME Done and done

11

Validated learning over working software (over

comprehensive documentation)

Kent Beck

RAI WHY CONTINUOUS DELIVERY?2) ALIGNMENT BETWEEN IT - BUSINESS - MARKETPlay ball together

FAST FREQUENT COMUNICATIONSharing the same context

RAI

WHY CONTINUOUS DELIVERY?3) INNOVATE FASTEROne step ahead

RAI WHY CONTINUOUS DELIVERY?1)+3) FASTER AND SAFER TOGETHERHave your cake and eat it too

IMPLEMENTING CD:PREREQUISITES & QUICK SELF-ASSESSMENTIT side of CD

PREREQUISITES TO CDIterative software development & Continuous Integration

from Adaptive Leadership by Jim Highsmith

ITERATIVE DEVELOPMENTUse with care.

ITERATIVE DEVELOPMENT

from ThoughtWorks

CONTINUOUS INTEGRATION Is 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.

Martin Fowler

CONTINUOUS INTEGRATION Is 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 tests to detect integration errors as quickly as possible.Martin Fowler

C.I. IMPLIES => TRUNK BASED DEVELOPMENT

All development is done on the mainline (also known as the head or trunk) of the source-code repository.

All the developers commit the code to the mainline at least once per day.

Developers commit only potentially releasable code using practices like latent-code patterns, feature toggles, and branch by abstraction.

Every new release is built from the mainline.

C.I. IMPLIES => TRUNK BASED DEVELOPMENT

Merge

Merge

Trunk

NO FEATURE BRANCHING

C.I. IMPLIES => TRUNK BASED DEVELOPMENT

Trunk

2 2

3

4

2

3

1 1 1 1

4

5

2

3

1

2

1

3

2

1 1

4

3

2

C.I. IMPLIES => TRUNK BASED DEVELOPMENT

Merge

Merge

Trunk

2 2

3

4

2

3

1 1 1 1

4

5

2

3

1

2

1

3

2

1 1

4

3

2

1 432

14

52 3

C.I. IMPLIES => TRUNK BASED DEVELOPMENT

Trunk

1 2 3 4 5

1

1

3 42

4 52 1 3 2 4 3

WHAT IS CONTINUOUS DELIVERY?Definitions

CONTINUOUS DELIVERY

COLLABORAT.PEOPLE SKILLS

PRACTICES

TOOLS

Continuous Delivery is a software development discipline where you build software in such a

way that the software can be

released to production at any time - Martin Fowler.

Continuous Delivery aims to reduce the cost, time,

and risk of delivering incremental

changes to users - Jez Humble.

ARE YOU DOING CONTINUOUS DELIVERY?

THE CD WORKING GROUP AT THOUGHTWORKS SAYS

You are doing CD when:

① your software is deployable throughout its lifecycle② your team prioritizes keeping the software deployable over

working on new features

THE CD WORKING GROUP AT THOUGHTWORKS SAYS

You are doing CD when:

① your software is deployable throughout its lifecycle② your team prioritizes keeping the software deployable over

working on new features③ anybody can get fast, automated feedback on the production

readiness of their systems whenever somebody makes a change to them

THE CD WORKING GROUP AT THOUGHTWORKS SAYS

You are doing CD when:

① your software is deployable throughout its lifecycle② your team prioritizes keeping the software deployable over

working on new features③ anybody can get fast, automated feedback on the production

readiness of their systems whenever somebody makes a change to them

④ you can perform push-button deployments of any version of the software to any environment on demand.

CD WAR STORIESCase studies with numbers

SAP 65K employees, 30K database tablesBEFORE: 2010• Business frustrated • 6-12 months from idea to production• Prod. Error => S**t-storm & late nights• Monthly production releases

AFTER: 2012• Business happy• 1 week from idea to production• Prod. Error => less then 1min rollback• Two production releases per week, 8x

increase!!!

HP LASERJET FIRMWARE TEAM Between 400-800 developers, 10+MLOC

BEFORE: 2008• Only 5% of time available for

creating/supporting new features• A code branch for each LaserJet model,

manual integration & testing• Max two releases per year

AFTER: 2011• 40% of time available creating or

supporting new features, 8x increase!!!• One main branch for all products,

automated integration & testing• 10-15 candidate releases per day

HP LASERJET FIRMWARE TEAM

IMPLEMENTING CD: STRATEGIES, TIPS, COMMON MISTAKESHow to

Skills &Practice

s

Automation

& Tools

Architecture

& Design

GREEN FIELD – 3/6 MONTHS

• BUILD AUTOMATION• DEPLOY AUTOMATION• REMEDIATION AUT.• TEST AUTOMATION• INFRASTRUCTURE• MONITORING

• CONFIGURABILITY FOR MULTIPLE ENVIRONMENTS

• TESTABILITY• HOT DEPLOYABILITY • REMEDIABILITY• TRUNK BASED DEV.

Automation& Tools

Architecture

& Design

BROWN FIELD - INITIAL 3/6 MONTHS - LOW HANGING FRUIT

• BUILD AUTOMATION• DEPLOY AUTOMATION• BASIC REMEDIATION

AUTOMATION• INFRASTRUCTURE

• CONFIGURABILITY FOR MULTIPLE ENVIRONMENTS

BROWN FIELD – 1/2 YEARS BASED ON SIZE – TO THE FINISH LINESkills &

PracticesAutomation

& ToolsArchitectur

e& Design

• FULL REMEDIATION AUTOMATION

• TEST AUTOMATION• MONITORING

• TESTABILITY• HOT DEPLOYABILITY • REMEDIABILITY• TRUNK BASED DEV.

Automation& Tools

Architecture

& Design

BROWN FIELD - INITIAL 3/6 MONTHS - LOW HANGING FRUIT

• BUILD AUTOMATION• DEPLOY AUTOMATION• BASIC REMEDIATION

AUTOMATION• INFRASTRUCTURE

• CONFIGURABILITY FOR MULTIPLE ENVIRONMENTS

ON HIRING DEVOPSHey HR, creating a separate role for DevOps misses the point

DEVOPS DEFINITION

A term coined by Patrick DeboisTo encourage people to think about software development and software support in a holistic way, as opposed to two separate activities.

DEVOPS DEFINITION

Development Operations

DEVOPS DEFINITION

Development Operations

DEVOPS DEFINITION

Development OperationsDevOps

DEVOPS ANTI-PATTERN

SELECTING CD TOOLSIndividuals and interactions over processes and tools

TOOLS FOR CONTINUOUS DELIVERY

■Package management: RPM, WiX, Wise, …■Infrastructure management: Puppet, Chef, …■CD server: Go , …■Dependencies management: … ■Binaries repository: …■…■…

■Enter begins the next bullet●Demote again for sub-bullets

- And again for tiny bullets

If there is any rule

to selecting tools to support software delivery and

support,

it is to assume that:

any tools chosen may need to be changed in the future

- Kief Morris.

WWW.GO.CD OPEN SOURCE - FREE DOWNLOAD

ON CD & AGILEAgile Manifesto

AGILE MANIFESTO

Principle #1Our highest priority is to satisfy the customerthrough early and continuous delivery

of valuable software.

ON CD & LEAN?Lean principles

LEAN SOFTWARE DEVELOPMENT

Principle #5Deliver as fast as possible.

TECHNICAL PRACTICES OVERVIEWTo get it right

MAIN CD PRINCIPLES & PRACTICESHow to?

Create a repeatable, reliable way

to release software

Everybodyis responsible

for the delivery process

Automate almost everything

AUTOMATE ALMOST EVERYTHING

The build Database changes Deployment to test/staging/production environments Tests Remediation plans Monitoring Infrastructure as code

THE DEPLOYMENT PIPELINE IS:

1) A Model of your process for getting software from version control into the hands of your users.

2) An Implementation that automates each stage of the process your software goes through after every change, from check-in to release – and it may also contain few manual stages such as approvals.

3) A Visualisation in real-time of the status of software code-base after every change, for all stages from check-in to release.

THE DEPLOYMENT PIPELINE

THE DEPLOYMENT PIPELINE

BACKLOG

PLANNING

MEETING

CODE &COMMIT

BUILDUNIT

TESTS

INTEGRATION, ACCEPTANCE,

…TESTS

MANUAL APPROVAL

CODE CHANGE

READY TO GO LIVE

ANATOMY OF A BASIC PIPELINE

AUTOMATE TESTS

AUTOMATE REMEDIATION PLANS

AUTOMATE INFRASTRUCTURE

If someone threw a server out of the window, how long would it take to

recreate it?

CONCLUSIONSTo get it right

LET’S FINISH FROM THE START:WHY CONTINUOUS DELIVERY?

We cannot always decide when/where change will

come.

But we can decide where each change will take us…

…as long as we move faster

than the change

WHAT IS CONTINUOUS DELIVERY? AGAINDo me a sketch!

CONTINUOUS DELIVERY

BEFORE

CONTINUOUS DELIVERY

AFTER

CONTINUOUS DELIVERY OVERVIEW

THANK YOU !WAR STORIES, BOOKS, & SLIDES WILL BE ON TWITTER @SmHarterLTD

LOOKING FOR A- CD ASSESSMENT - CD TRAINING EMAIL ME AT: LUCA.MINUDEL @ SMHARTER.COM

Recommended