CONTINUOUS DELIVERY
Luca Minudel
O v e r v i e w o f
SIEMENS S62
Used in Italy from 1962 to 1980, 18 years
2
WHY CONTINUOUS DELIVERY?
3
4
WHY CONTINUOUS DELIVERY?1) INNOVATE FASTEROne step ahead
5
WHY CONTINUOUS DELIVERY?1) FASTER AND SAFER TOGETHERHave your cake and eat it too
6
7
WHY CONTINUOUS DELIVERY?2) BUSINESS, MARKET AND IT ALIGNEDPlay ball together
8
FAST FREQUENT COMUNICATIONSharing the same context
9
10
WHY CONTINUOUS DELIVERY?3) OVERCOME THE ‘90% DONE’ SYNDROME Done and done
11
12
Validated learning over
working software (over
comprehensive documentation)
Kent Beck
13
WHY CONTINUOUS DELIVERY?3) REDUCE RISKBuild the right thing, build it right
14
UNRELEASED CHANGES = RISK
1 1
2
1
2
3
4
1
2
3
Value
ReleaseTime
1 2 3 4
1
1
2
1
2
3
RELEASED CHANGES = VALUE
PREPARING FOR CONTINUOUS DELIVERYIterative software development & Continuous Integration
17
from Adaptive Leadership by Jim Highsmith
18
ITERATIVE DEVELOPMENTUse with care.
19
ITERATIVE DEVELOPMENT
20
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
ARE YOU DOING CONTINUOUS DELIVERY?
22
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
CONTINUOUS DELIVERY & AGILE ?Agile Manifesto
24
AGILE MANIFESTO
Principle #1
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
25
CONTINUOUS DELIVERY & LEAN?Lean principles
26
LEAN SOFTWARE DEVELOPMENT
Principle #5
Deliver as fast as possible.
27
LEAN SOFTWARE DEVELOPMENT
28
HIRING DEVOPS?Hey HR, creating a separate role for DevOps misses the point
29
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
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
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
DEVOPS DEFINITION
33
Development Operations
DEVOPS DEFINITION
34
Development Operations
DEVOPS DEFINITION
35
Development OperationsDevOps
DEVOPS ANTI-PATTERN
DEVOPS AND CAMS
John Willis uses acronym CAMS for
Culture
Automation
Measurements
Sharing
36
TOOLS FOR CONTINUOUS DELIVERYIndividuals and interactions over processes and tools
37
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
TOOLS FOR CONTINUOUS DELIVERY
■ Package management: RPM, WiX, Wise, …
■ Infrastructure management: Puppet, Chef, …
■ CD server: Go , …
■ Dependencies management: …
■ Binaries repository: …
■ …
■ …
39
WHAT IS CONTINUOUS DELIVERY?Definitions
41
CONTINUOUS DELIVERY
42
PEOPLE 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.
43
Continuous Delivery aims to
reduce the cost, time, and risk
of delivering incremental
changes to users
- Jez Humble.
44
MAIN PRINCIPLES AND PRACTICESHow to?
45
Create a
repeatable,
reliable way
to release software
46
Everybody
is responsible
for the delivery process
47
Automate almost everything
48
AUTOMATE ALMOST EVERYTHING
The build
Deployment to test and production environments
Database changes
Tests
Remediation plans
Infrastructure as code
Monitoring
49
AUTOMATE TESTS
50
AUTOMATE TESTS
51
End-to-end, out-of-process, business facing
Localized, in-process, technology facing
AUTOMATE REMEDIATION PLANS
52
AUTOMATE INFRASTRUCTURE
53
If someone threw a server out of the window,
how long would it take to recreate it?
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
TRUNK BASED DEVELOPMENT
55
Merge
Merge
Trunk
NO FEATURE BRANCHING
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
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
TRUNK BASED DEVELOPMENT
58
Trunk
1 2 3 4 5
1
1
3 42
4 52 1 3 2 4 3
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
THE DEPLOYMENT PIPELINE
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
WHAT IS CONTINUOUS DELIVERY? AGAINDo me a sketch!
62
CONTINUOUS DELIVERY
63
BEFORE
CONTINUOUS DELIVERY
64
AFTER
LET’S FINISH FROM THE START:
WHY CONTINUOUS DELIVERY?
65
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
CONTINUOUS DELIVERY OVERVIEW
67
DOWNLOAD THE FREE BOOKLET AT INFOQ:
THANK YOU
For questions or suggestions
Contact us via:
Twitter: @LUKADOTNET
Linker-In: LUCA MINUDEL
Email:
Top Related