Continuous Delivery Overview

68
CONTINUOUS DELIVERY Luca Minudel Overview of

description

Continuous Delivery (CD) is often thought to be within the purview of tech practitioners – developers, testers, operations, delivery managers, etc. However, the industry is fast realizing that CD is actually more of a business decision. CD can be the game changer to help the organization stay a step ahead by delivering value to the customer reliably and frequently. CD isn’t a geeky fad, but a huge business enabler vouched for by Facebook, LinkedIn, Flickr and the like. In this session I’ll Introduce the principles, the practices, the tools, and the business value proposition of continuous delivery both from a business point of view and from a technical point of view.

Transcript of Continuous Delivery Overview

Page 1: Continuous Delivery Overview

CONTINUOUS DELIVERY

Luca Minudel

O v e r v i e w o f

Page 2: Continuous Delivery Overview

SIEMENS S62

Used in Italy from 1962 to 1980, 18 years

2

Page 3: Continuous Delivery Overview

WHY CONTINUOUS DELIVERY?

3

Page 4: Continuous Delivery Overview

4

Page 5: Continuous Delivery Overview

WHY CONTINUOUS DELIVERY?1) INNOVATE FASTEROne step ahead

5

Page 6: Continuous Delivery Overview

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

6

Page 7: Continuous Delivery Overview

7

Page 8: Continuous Delivery Overview

WHY CONTINUOUS DELIVERY?2) BUSINESS, MARKET AND IT ALIGNEDPlay ball together

8

Page 9: Continuous Delivery Overview

FAST FREQUENT COMUNICATIONSharing the same context

9

Page 10: Continuous Delivery Overview

10

Page 11: Continuous Delivery Overview

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

11

Page 12: Continuous Delivery Overview

12

Page 13: Continuous Delivery Overview

Validated learning over

working software (over

comprehensive documentation)

Kent Beck

13

Page 14: Continuous Delivery Overview

WHY CONTINUOUS DELIVERY?3) REDUCE RISKBuild the right thing, build it right

14

Page 15: Continuous Delivery Overview

UNRELEASED CHANGES = RISK

1 1

2

1

2

3

4

1

2

3

Value

ReleaseTime

Page 16: Continuous Delivery Overview

1 2 3 4

1

1

2

1

2

3

RELEASED CHANGES = VALUE

Page 17: Continuous Delivery Overview

PREPARING FOR CONTINUOUS DELIVERYIterative software development & Continuous Integration

17

Page 18: Continuous Delivery Overview

from Adaptive Leadership by Jim Highsmith

18

Page 19: Continuous Delivery Overview

ITERATIVE DEVELOPMENTUse with care.

19

Page 20: Continuous Delivery Overview

ITERATIVE DEVELOPMENT

20

Page 21: Continuous Delivery Overview

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.

Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.

21

Martin Fowler

Page 22: Continuous Delivery Overview

ARE YOU DOING CONTINUOUS DELIVERY?

22

Page 23: Continuous Delivery Overview

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.

23

Page 24: Continuous Delivery Overview

CONTINUOUS DELIVERY & AGILE ?Agile Manifesto

24

Page 25: Continuous Delivery Overview

AGILE MANIFESTO

Principle #1

Our highest priority is to satisfy the customer

through early and continuous delivery

of valuable software.

25

Page 26: Continuous Delivery Overview

CONTINUOUS DELIVERY & LEAN?Lean principles

26

Page 27: Continuous Delivery Overview

LEAN SOFTWARE DEVELOPMENT

Principle #5

Deliver as fast as possible.

27

Page 28: Continuous Delivery Overview

LEAN SOFTWARE DEVELOPMENT

28

Page 29: Continuous Delivery Overview

HIRING DEVOPS?Hey HR, creating a separate role for DevOps misses the point

29

Page 30: Continuous Delivery Overview

DEVOPS DEFINITION

A term coined by Patrick Debois

To encourage people to think about software development

and software support in a holistic way, as opposed to two

separate activities.

30

Page 31: Continuous Delivery Overview

DEVOPS DEFINITION

A term coined by Patrick Debois

To encourage people to think about software development

and software support in a holistic way, as opposed to two

separate activities.

31

Page 32: Continuous Delivery Overview

DEVOPS DEFINITION

A term coined by Patrick Debois

To encourage people to think about software development

and software support in a holistic way, as opposed to two

separate activities.

32

Page 33: Continuous Delivery Overview

DEVOPS DEFINITION

33

Development Operations

Page 34: Continuous Delivery Overview

DEVOPS DEFINITION

34

Development Operations

Page 35: Continuous Delivery Overview

DEVOPS DEFINITION

35

Development OperationsDevOps

DEVOPS ANTI-PATTERN

Page 36: Continuous Delivery Overview

DEVOPS AND CAMS

John Willis uses acronym CAMS for

Culture

Automation

Measurements

Sharing

36

Page 37: Continuous Delivery Overview

TOOLS FOR CONTINUOUS DELIVERYIndividuals and interactions over processes and tools

37

Page 38: Continuous Delivery Overview

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.

38

Page 39: Continuous Delivery Overview

TOOLS FOR CONTINUOUS DELIVERY

■ Package management: RPM, WiX, Wise, …

■ Infrastructure management: Puppet, Chef, …

■ CD server: Go , …

■ Dependencies management: …

■ Binaries repository: …

■ …

■ …

39

Page 40: Continuous Delivery Overview

WWW.GO.CD OPEN SOURCE - FREE DOWNLOAD

40

Page 41: Continuous Delivery Overview

WHAT IS CONTINUOUS DELIVERY?Definitions

41

Page 42: Continuous Delivery Overview

CONTINUOUS DELIVERY

42

PEOPLE PRACTICES

TOOLS

Page 43: Continuous Delivery Overview

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.

43

Page 44: Continuous Delivery Overview

Continuous Delivery aims to

reduce the cost, time, and risk

of delivering incremental

changes to users

- Jez Humble.

44

Page 45: Continuous Delivery Overview

MAIN PRINCIPLES AND PRACTICESHow to?

45

Page 46: Continuous Delivery Overview

Create a

repeatable,

reliable way

to release software

46

Page 47: Continuous Delivery Overview

Everybody

is responsible

for the delivery process

47

Page 48: Continuous Delivery Overview

Automate almost everything

48

Page 49: Continuous Delivery Overview

AUTOMATE ALMOST EVERYTHING

The build

Deployment to test and production environments

Database changes

Tests

Remediation plans

Infrastructure as code

Monitoring

49

Page 50: Continuous Delivery Overview

AUTOMATE TESTS

50

Page 51: Continuous Delivery Overview

AUTOMATE TESTS

51

End-to-end, out-of-process, business facing

Localized, in-process, technology facing

Page 52: Continuous Delivery Overview

AUTOMATE REMEDIATION PLANS

52

Page 53: Continuous Delivery Overview

AUTOMATE INFRASTRUCTURE

53

If someone threw a server out of the window,

how long would it take to recreate it?

Page 54: Continuous Delivery Overview

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. 54

Page 55: Continuous Delivery Overview

TRUNK BASED DEVELOPMENT

55

Merge

Merge

Trunk

NO FEATURE BRANCHING

Page 56: Continuous Delivery Overview

TRUNK BASED DEVELOPMENT

56

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

Page 57: Continuous Delivery Overview

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 43

21

4

5

2 3

Page 58: Continuous Delivery Overview

TRUNK BASED DEVELOPMENT

58

Trunk

1 2 3 4 5

1

1

3 42

4 52 1 3 2 4 3

Page 59: Continuous Delivery Overview

THE DEPLOYMENT PIPELINE

Models your process for getting software from version

control into the hands of your users.

Implements and automates that process for each stage that

every change to your software goes through, from check-in

to release – and it may also contain a few manual stages

such as approvals.

Visualises in real time the status of the code base.

59

Page 60: Continuous Delivery Overview

THE DEPLOYMENT PIPELINE

Page 61: Continuous Delivery Overview

THE DEPLOYMENT PIPELINE

61

BACKLOGPLANNING

MEETING

CODE &

COMMIT

BUILD

UNIT

TESTS

INTEGRATION,

ACCEPTANCE,

TESTS

MANUAL

APPROVAL

CODE

CHANGE

READY TO GO

LIVE

AN EXAMPLE OF A BASIC PIPELINE

Page 62: Continuous Delivery Overview

WHAT IS CONTINUOUS DELIVERY? AGAINDo me a sketch!

62

Page 63: Continuous Delivery Overview

CONTINUOUS DELIVERY

63

BEFORE

Page 64: Continuous Delivery Overview

CONTINUOUS DELIVERY

64

AFTER

Page 65: Continuous Delivery Overview

LET’S FINISH FROM THE START:

WHY CONTINUOUS DELIVERY?

65

Page 66: Continuous Delivery Overview

We cannot always decide when

change will come.

We can decide where each

change will take us.

Because we can move

faster

than the change 66

Page 67: Continuous Delivery Overview

CONTINUOUS DELIVERY OVERVIEW

67

DOWNLOAD THE FREE BOOKLET AT INFOQ:

Page 68: Continuous Delivery Overview

THANK YOU

For questions or suggestions

Contact us via:

Twitter: @LUKADOTNET

Linker-In: LUCA MINUDEL

Email:

[email protected]