Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
FROM
C.I. TO CD & DEVOPS
CONTINUOUS DELIVERY
OVERVIEW
Luca Minudel
LUCA MINUDEL
DID CONTINUOUS DELIVERY AT:
WORKS @
SESSION’S LINKS TWITTER @SMHARTERLTD
CD’S BUSINESS VALUE
PROPOSITION
Business side of CD
3
SIEMENS S62
Used in Italy from 1962 to 1980, 18 years
WHY
CONTINUOUS DELIVERY?
6
RAI
WHY CONTINUOUS DELIVERY?
1) REDUCE RISK
Build the right thing, build it right – Avoid expensive mistakes
UNRELEASED CHANGES = RISK
1 1
2
1
2
3
4
1
2
3
Value
Release
Time
1 2 3 4
1
1
2
1
2
3
RELEASED CHANGES = VALUE
RELEASED TO
1. ANYONE, OR
2. EARLY ADOPTERS,
3. REQUESTORS OF THE
FEATURE,
4....
RAI
WHY CONTINUOUS DELIVERY?
1) OVERCOME THE ‘90% DONE’
SYNDROME
Done and done
1
Validated learning over
working software (over
comprehensive documentation)
Kent Beck
RAI
WHY CONTINUOUS DELIVERY?
2) ALIGNMENT BETWEEN IT -
BUSINESS - MARKET
Play ball together
FAST FREQUENT
COMUNICATION
Sharing the same context
RAI
WHY CONTINUOUS DELIVERY?
3) INNOVATE FASTER
One step ahead
RAI
WHY CONTINUOUS DELIVERY?
1)+3) FASTER AND SAFER
TOGETHER
Have your cake and eat it too
IMPLEMENTING CD:
PREREQUISITES &
QUICK SELF-ASSESSMENT
IT side of CD
PREREQUISITES TO CD
Iterative software development & Continuous Integration
from Adaptive Leadership by Jim Highsmith
ITERATIVE DEVELOPMENT
Use with care.
ITERATIVE DEVELOPMENT
from ThoughtWorks
CONTINUOUS
INTEGRATION
Is a software development practice where members
of a team integrate their work frequently, usually...
CONTINUOUS
INTEGRATION
Is a software development practice where members
of a team integrate their work frequently, usually...
C.I. IMPLIES => TRUNK BASED DEVELOPMENT
All development is done on the mainline (also known as
the head or trunk) of the s...
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 4
3
2
1
4
5
2 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
r...
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
②yo...
THE CD WORKING GROUP AT THOUGHTWORKS SAYS
You are doing CD when:
①your software is deployable throughout its lifecycle
②yo...
THE CD WORKING GROUP AT THOUGHTWORKS SAYS
You are doing CD when:
①your software is deployable throughout its lifecycle
②yo...
CD WAR STORIES
Case studies with numbers
SAP
65K employees, 30K database tables
BEFORE: 2010
•  Business frustrated
• 6-12 months from idea to production
• Prod. ...
HP LASERJET
FIRMWARE TEAM Between 400-800 developers, 10+MLOC
BEFORE: 2008
•  Only 5% of time available for
creating/supp...
HP LASERJET
FIRMWARE TEAM
IMPLEMENTING CD:
STRATEGIES, TIPS, COMMON
MISTAKES
How to
Skills &
Practices
Automation
& Tools
Architecture
& Design
GREEN FIELD – 3/6 MONTHS
• BUILD AUTOMATION
• DEPLOY AUTOMATIO...
Automation
& Tools
Architecture
& Design
BROWN FIELD - INITIAL 3/6 MONTHS - LOW HANGING FRUIT
• BUILD AUTOMATION
• DEPLOY ...
BROWN FIELD – 1/2 YEARS BASED ON SIZE – TO THE FINISH LINE
Skills &
Practices
Automation
& Tools
Architecture
& Design
• F...
ON HIRING DEVOPS
Hey HR, creating a separate role for DevOps misses the point
DEVOPS DEFINITION
A term coined by Patrick Debois
To encourage people to think about software development and software
sup...
DEVOPS DEFINITION
Development Operations
DEVOPS DEFINITION
Development Operations
DEVOPS DEFINITION
Development OperationsDevOps
DEVOPS ANTI-PATTERN
SELECTING CD TOOLS
Individuals and interactions over processes and tools
TOOLS FOR CONTINUOUS DELIVERY
■ Package management: RPM, WiX, Wise, …
■ Infrastructure management: Puppet, Chef, …
■ CD se...
If there is any rule
to selecting tools to support
software delivery and support,
it is to assume that:
any tools chosen m...
WWW.GO.CD OPEN SOURCE - FREE DOWNLOAD
ON CD & AGILE
Agile Manifesto
AGILE MANIFESTO
Principle #1
Our highest priority is to satisfy the customer
through early and continuous delivery
of valu...
ON CD & LEAN?
Lean principles
LEAN SOFTWARE DEVELOPMENT
Principle #5
Deliver as fast as possible.
TECHNICAL PRACTICES
OVERVIEW
To get it right
MAIN CD
PRINCIPLES & PRACTICES
How to?
Create a
repeatable,
reliable way
to release software
Everybody
is responsible
for the delivery process
Automate almost everything
AUTOMATE ALMOST EVERYTHING
 The build
 Database changes
 Deployment to test/staging/production environments
 Tests
 R...
THE DEPLOYMENT PIPELINE IS:
1) A Model of your process for getting software from version
control into the hands of your us...
THE DEPLOYMENT PIPELINE
THE DEPLOYMENT PIPELINE
BACKLOG
PLANNING
MEETING
CODE &
COMMIT
BUILD
UNIT
TESTS
INTEGRATION,
ACCEPTANCE,
…
TESTS
MANUAL
AP...
AUTOMATE TESTS
AUTOMATE REMEDIATION PLANS
AUTOMATE INFRASTRUCTURE
If someone threw a server out of the window,
how long would it take to recreate it?
CONCLUSIONS
To 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...
WHAT IS CONTINUOUS
DELIVERY? AGAIN
Do 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...
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
Upcoming SlideShare
Loading in …5
×

From Continuous Integration to Continuous Delivery and DevOps

1,504 views

Published on

An overview of Continuous Delivery from a business and a technical point of view.
Includes an overview of:
- business value proposition of CD
- prerequisites and tips for CD implementation
- CD implementation was stories and strategies
- CD technical practices

Published in: Software
  • Be the first to comment

From Continuous Integration to Continuous Delivery and DevOps

  1. 1. FROM C.I. TO CD & DEVOPS CONTINUOUS DELIVERY OVERVIEW Luca Minudel
  2. 2. LUCA MINUDEL DID CONTINUOUS DELIVERY AT: WORKS @ SESSION’S LINKS TWITTER @SMHARTERLTD
  3. 3. CD’S BUSINESS VALUE PROPOSITION Business side of CD 3
  4. 4. SIEMENS S62 Used in Italy from 1962 to 1980, 18 years
  5. 5. WHY CONTINUOUS DELIVERY?
  6. 6. 6
  7. 7. RAI WHY CONTINUOUS DELIVERY? 1) REDUCE RISK Build the right thing, build it right – Avoid expensive mistakes
  8. 8. UNRELEASED CHANGES = RISK 1 1 2 1 2 3 4 1 2 3 Value Release Time
  9. 9. 1 2 3 4 1 1 2 1 2 3 RELEASED CHANGES = VALUE RELEASED TO 1. ANYONE, OR 2. EARLY ADOPTERS, 3. REQUESTORS OF THE FEATURE, 4. INTERNAL USERS
  10. 10. RAI WHY CONTINUOUS DELIVERY? 1) OVERCOME THE ‘90% DONE’ SYNDROME Done and done
  11. 11. 1
  12. 12. Validated learning over working software (over comprehensive documentation) Kent Beck
  13. 13. RAI WHY CONTINUOUS DELIVERY? 2) ALIGNMENT BETWEEN IT - BUSINESS - MARKET Play ball together
  14. 14. FAST FREQUENT COMUNICATION Sharing the same context
  15. 15. RAI WHY CONTINUOUS DELIVERY? 3) INNOVATE FASTER One step ahead
  16. 16. RAI WHY CONTINUOUS DELIVERY? 1)+3) FASTER AND SAFER TOGETHER Have your cake and eat it too
  17. 17. IMPLEMENTING CD: PREREQUISITES & QUICK SELF-ASSESSMENT IT side of CD
  18. 18. PREREQUISITES TO CD Iterative software development & Continuous Integration
  19. 19. from Adaptive Leadership by Jim Highsmith
  20. 20. ITERATIVE DEVELOPMENT Use with care.
  21. 21. ITERATIVE DEVELOPMENT
  22. 22. from ThoughtWorks
  23. 23. 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
  24. 24. 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
  25. 25. 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.
  26. 26. C.I. IMPLIES => TRUNK BASED DEVELOPMENT Merge Merge Trunk NO FEATURE BRANCHING
  27. 27. 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
  28. 28. 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 4 3 2 1 4 5 2 3
  29. 29. C.I. IMPLIES => TRUNK BASED DEVELOPMENT Trunk 1 2 3 4 5 1 1 3 42 4 52 1 3 2 4 3
  30. 30. WHAT IS CONTINUOUS DELIVERY? Definitions
  31. 31. CONTINUOUS DELIVERY COLLABORAT. PEOPLE SKILLS PRACTICES TOOLS
  32. 32. 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.
  33. 33. Continuous Delivery aims to reduce the cost, time, and risk of delivering incremental changes to users - Jez Humble.
  34. 34. ARE YOU DOING CONTINUOUS DELIVERY?
  35. 35. 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
  36. 36. 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
  37. 37. 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.
  38. 38. CD WAR STORIES Case studies with numbers
  39. 39. SAP 65K employees, 30K database tables BEFORE: 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!!!
  40. 40. 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
  41. 41. HP LASERJET FIRMWARE TEAM
  42. 42. IMPLEMENTING CD: STRATEGIES, TIPS, COMMON MISTAKES How to
  43. 43. Skills & Practices 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.
  44. 44. 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
  45. 45. BROWN FIELD – 1/2 YEARS BASED ON SIZE – TO THE FINISH LINE Skills & Practices Automation & Tools Architecture & 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
  46. 46. ON HIRING DEVOPS Hey HR, creating a separate role for DevOps misses the point
  47. 47. 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.
  48. 48. DEVOPS DEFINITION Development Operations
  49. 49. DEVOPS DEFINITION Development Operations
  50. 50. DEVOPS DEFINITION Development OperationsDevOps DEVOPS ANTI-PATTERN
  51. 51. SELECTING CD TOOLS Individuals and interactions over processes and tools
  52. 52. TOOLS FOR CONTINUOUS DELIVERY ■ Package management: RPM, WiX, Wise, … ■ Infrastructure management: Puppet, Chef, … ■ CD server: Go , … ■ Dependencies management: … ■ Binaries repository: … ■ … ■ …
  53. 53. 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.
  54. 54. WWW.GO.CD OPEN SOURCE - FREE DOWNLOAD
  55. 55. ON CD & AGILE Agile Manifesto
  56. 56. AGILE MANIFESTO Principle #1 Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  57. 57. ON CD & LEAN? Lean principles
  58. 58. LEAN SOFTWARE DEVELOPMENT Principle #5 Deliver as fast as possible.
  59. 59. TECHNICAL PRACTICES OVERVIEW To get it right
  60. 60. MAIN CD PRINCIPLES & PRACTICES How to?
  61. 61. Create a repeatable, reliable way to release software
  62. 62. Everybody is responsible for the delivery process
  63. 63. Automate almost everything
  64. 64. AUTOMATE ALMOST EVERYTHING  The build  Database changes  Deployment to test/staging/production environments  Tests  Remediation plans  Monitoring  Infrastructure as code
  65. 65. 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.
  66. 66. THE DEPLOYMENT PIPELINE
  67. 67. THE DEPLOYMENT PIPELINE BACKLOG PLANNING MEETING CODE & COMMIT BUILD UNIT TESTS INTEGRATION, ACCEPTANCE, … TESTS MANUAL APPROVAL CODE CHANGE READY TO GO LIVE ANATOMY OF A BASIC PIPELINE
  68. 68. AUTOMATE TESTS
  69. 69. AUTOMATE REMEDIATION PLANS
  70. 70. AUTOMATE INFRASTRUCTURE If someone threw a server out of the window, how long would it take to recreate it?
  71. 71. CONCLUSIONS To get it right
  72. 72. LET’S FINISH FROM THE START: WHY CONTINUOUS DELIVERY?
  73. 73. 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
  74. 74. WHAT IS CONTINUOUS DELIVERY? AGAIN Do me a sketch!
  75. 75. CONTINUOUS DELIVERY BEFORE
  76. 76. CONTINUOUS DELIVERY AFTER
  77. 77. CONTINUOUS DELIVERY OVERVIEW
  78. 78. 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

×