from continuous integration to continuous delivery and devops
TRANSCRIPT
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