Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery 101

Continuous Delivery 101

A set of principles and practices to get your ideas into your users' hands quickly and confidently.

GetCloudnative

August 04, 2018
Tweet

More Decks by GetCloudnative

Other Decks in Business

Transcript

  1. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Version: 20180804
    A set of principles and practices to get your ideas
    into your users‘ hands quickly and confidently.
    Continuous Delivery 101

    View full-size slide

  2. [email protected]
    @metmajer
    Innovation Technologist & Strategist.
    Founder at GetCloudnative.
    Open Source Maintainer.
    Martin Etmajer

    View full-size slide

  3. Why Continuous Delivery?

    View full-size slide

  4. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 4
    Traditional Software Development
    Analysis
    Design
    Implementation
    Verification
    Operations

    View full-size slide

  5. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 5
    Traditional Software Development
    Analysis
    Design
    Implementation
    Verification
    Operations
    Observation 1: Rigidity
    A sequential flow of progress
    towards an anticipated end goal.

    View full-size slide

  6. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 6
    Traditional Software Development
    Analysis
    Design
    Implementation
    Verification
    Operations
    Observation 2: Change Resistance
    The entire product is specified in advance (assumes no change).
    Efforts put into heavy documentation fosters change resistance.

    View full-size slide

  7. Communicating Requirements is Hard…
    Source: CakeWrecks.com

    View full-size slide

  8. Communicating Requirements is Hard…
    Source: CakeWrecks.com
    shared documents aren‘t
    shared understanding

    View full-size slide

  9. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 9
    Traditional Software Development
    Analysis
    Design
    Implementation
    Verification
    Operations
    Observation 3: Low Customer Involvement
    Course corrections are not part of the process.

    View full-size slide

  10. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 10
    Traditional Software Development
    Analysis
    Design
    Implementation
    Verification
    Operations
    Observation 4: Accumulation of Risk
    Verification and testing occurs only in the end.
    Problems can go unnoticed for a very long time.

    View full-size slide

  11. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 11
    Traditional Software Development
    Release
    Candidate
    Development
    We need this to
    go live tomorrow!
    Operations
    Not so fast!
    The Wall
    Observation 5: Long and Error-Prone Delivery
    Releases are characterized by lengthy approval
    processes and intensive manual labor.

    View full-size slide

  12. Development (Ownership) vs. Operations (Accountability)
    Source: amazon.com

    View full-size slide

  13. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 13
    Traditional Software Development
    Analysis
    Design
    Implementation
    Verification
    Operations
    Observation 6: Slow Time-to-Market
    Value is created earliest (if at all) once
    the entire product has been delivered.

    View full-size slide

  14. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 14
    Chaos Manifesto 2013
    Analysed ~50.000 real-life software development projects from 2004 – 2012
    Europe (25%)
    USA (60%)
    Others (15%)

    View full-size slide

  15. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 15
    Chaos Manifesto 2013
    Analysed ~50.000 real-life software development projects from 2004 – 2012
    Medium Companies
    (30%)
    Small Companies
    (20%)
    Large Companies
    (50%)
    Fortune 1000-type

    View full-size slide

  16. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 16
    Chaos Manifesto 2013
    Project Resolution
    RESOLUTION 2004 2006 2008 2010 2012
    Successful 29 % 35 % 32 % 37 % 39 %
    Failed 18 % 19 % 24 % 21 % 18 %
    Challenged 53 % 46 % 44 % 42 % 43 %
    worst year best year
    positive trend due to decrease in Waterfall and increase in Agile projects

    View full-size slide

  17. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 17
    Chaos Manifesto 2013
    Project Resolution: Large vs. Small Projects in 2012
    RESOLUTION Large Projects Small Projects
    Successful 10 % 76 %
    Failed 38 % 4 %
    Challenged 52 % 20 %

    View full-size slide

  18. …Predicting the Future is Even Harder ;-)
    Source: dilbert.com

    View full-size slide

  19. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 19
    Chaos Manifesto 2013
    Large vs. Small Projects
    Large Projects
    > $10M in labor cost
    almost no chance of being successful,
    2,5x more likely to being challenged,
    10x more likely to fail outright
    Small Projects
    < $1M in labor cost
    > 70% chance of being successful,
    deliver results used to create ROI

    View full-size slide

  20. Source: dilbert.com
    Focus on High-Value Features
    „Natural expectations is for executives and stakeholders to want it all and want it all now.“
    The Standish Group. Chaos Manifesto 2013: Think Big, Act Small

    View full-size slide

  21. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 21
    Chaos Manifesto 2013
    Focus on High-Value Features
    OFTEN USED SOMETIMES USED HARDLY EVER OR NEVER USED
    20% provide 80% of the value
    50% are hardly ever or never used
    30% are used only sometimes or infrequently

    View full-size slide

  22. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 22
    Chaos Manifesto 2013
    Focus on High-Value Features
    OFTEN USED SOMETIMES USED
    focusing on these features maximizes investment in
    software development and improves user satisfaction
    focusing on features to the right doesn‘t increase
    project value much and may set you up for failure

    View full-size slide

  23. What is Continuous Delivery?

    View full-size slide

  24. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 24
    „Our highest priority is to satisfy the customer through
    early and continuous delivery of valuable software.“
    Agile Manifesto Principle No. 1

    View full-size slide

  25. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 25
    Continuous Delivery
    A set of principles and practices to get your ideas into your users‘ hands quickly and confidently.
    minimize
    Customer
    learning
    this is where you create value
    (cycle) time
    Idea

    View full-size slide

  26. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 26
    Scientific Method
    A continuous and iterative process for running experiments.
    Hypothesis Experiment
    analyze data and draw conclusions
    test
    formulate

    View full-size slide

  27. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 27
    Faster Time-to-Market
    An automated build, deploy, test and release process greatly reduces the feature cycle time.
    Lower Risks
    Automation makes software releases reliable and repeatable (if not to say boring).
    Higher Quality
    Automated testing in production-like environments greatly reduces defects in production.
    Better Products
    The ability to release features at any time enables working in small steps and running experiments.
    Happier Teams
    Continuous Delivery makes releases less painful. Teams can focus on being creative and solving problems.
    Continuous Delivery
    Benefits

    View full-size slide

  28. How to Continuous Delivery?

    View full-size slide

  29. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 29
    Create an Automated, Repeatable and Reliable Release Process
    Releasing software into production should be as easy as selecting a version and pushing a button.
    Automate your build, deploy, test and release process up to the point where human decision making is required.
    Everyone is Responsible
    Don‘t incentivize silo behavior. Everyone must work together on achieving the company‘s goals.
    Make improving work a part of your routine and never be satisfied with the status quo.
    Keep Everything in Version Control
    Maintain a single source of truth for your source code, configuration, data, scripts, and documentation.
    Build Quality In!
    Integrate feedback loops to catch process defects as early as possible (while they‘re cheap) – then fix them.
    Continuous Delivery
    Principles

    View full-size slide

  30. Continuous Delivery
    The Standard Reference
    „Reliable software releases through
    build, test, and deployment automation.“

    View full-size slide

  31. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 31
    The Continuous Delivery Deployment Pipeline
    Overview
    Developer Version
    Control
    Code
    check-in

    View full-size slide

  32. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 32
    The Continuous Delivery Deployment Pipeline
    Overview
    Developer Version
    Control
    Code
    check-in
    query
    check-out
    each check-in triggers a pipeline run
    CI/CD Server (Pipeline Executor)
    Release
    Test
    Deploy
    Build

    View full-size slide

  33. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 33
    The Continuous Delivery Deployment Pipeline
    Overview
    Developer Version
    Control
    Code
    check-in
    query
    check-out
    Business
    push button
    each check-in triggers a pipeline run
    a build advances along the pipeline in stages
    (in case of error, the pipeline is stopped)
    CI/CD Server (Pipeline Executor)
    Release
    Test
    Deploy
    Build

    View full-size slide

  34. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 34
    The Continuous Delivery Deployment Pipeline
    Overview
    Developer Version
    Control
    Production
    Environment
    Code
    check-in
    Application
    release
    query
    check-out
    Business
    push button
    Customer
    use app
    each check-in triggers a pipeline run
    a build advances along the pipeline in stages
    (in case of error, the pipeline is stopped)
    CI/CD Server (Pipeline Executor)
    Release
    Test
    Deploy
    Build

    View full-size slide

  35. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 35
    The Continuous Delivery Deployment Pipeline
    Overview
    Developer
    Business
    Fast Feedback Loops

    View full-size slide

  36. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 36
    The Continuous Delivery Deployment Pipeline
    1. Commit Stage
    Version
    Control
    Local
    Directory
    Code
    retrieve

    View full-size slide

  37. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 37
    The Continuous Delivery Deployment Pipeline
    1. Commit Stage
    Version
    Control
    Local
    Directory
    Code
    retrieve
    Unit Tests
    run
    fast-running, environment agnostic tests

    View full-size slide

  38. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 38
    The Continuous Delivery Deployment Pipeline
    1. Commit Stage
    Version
    Control
    Local
    Directory
    Code
    retrieve
    Unit Tests Code Analyses
    run run
    fast-running, environment agnostic tests

    View full-size slide

  39. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 39
    The Continuous Delivery Deployment Pipeline
    1. Commit Stage
    Version
    Control
    Local
    Directory
    Code
    retrieve
    Unit Tests Release Artifact
    Code Analyses
    run run build
    fast-running, environment agnostic tests

    View full-size slide

  40. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 40
    The Continuous Delivery Deployment Pipeline
    1. Commit Stage
    Version
    Control
    Local
    Directory
    Unit Tests Release Artifact
    Code Analyses Artifact
    Repository
    store
    Code
    retrieve run run build
    fast-running, environment agnostic tests
    artifacts are built exactly once and kept for later stages

    View full-size slide

  41. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 41
    The Continuous Delivery Deployment Pipeline
    2. Acceptance Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory

    View full-size slide

  42. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 42
    The Continuous Delivery Deployment Pipeline
    2. Acceptance Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    configure
    Staging Environment

    View full-size slide

  43. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 43
    The Continuous Delivery Deployment Pipeline
    2. Acceptance Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    Release Artifact
    configure
    deploy
    Staging Environment

    View full-size slide

  44. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 44
    The Continuous Delivery Deployment Pipeline
    2. Acceptance Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    Release Artifact Smoke Tests
    configure
    deploy run
    Staging Environment

    View full-size slide

  45. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 45
    The Continuous Delivery Deployment Pipeline
    2. Acceptance Testing Stage
    Release Artifact Smoke Tests Acceptance Tests
    long-running tests
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    configure
    deploy run run
    Staging Environment

    View full-size slide

  46. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 46
    The Continuous Delivery Deployment Pipeline
    3. Exploratory Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory

    View full-size slide

  47. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 47
    The Continuous Delivery Deployment Pipeline
    3. Exploratory Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    configure
    Staging Environment

    View full-size slide

  48. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 48
    The Continuous Delivery Deployment Pipeline
    3. Exploratory Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    Release Artifact
    configure
    deploy
    Staging Environment

    View full-size slide

  49. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 49
    The Continuous Delivery Deployment Pipeline
    3. Exploratory Testing Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    Release Artifact Smoke Tests
    configure
    deploy run
    Staging Environment

    View full-size slide

  50. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 50
    The Continuous Delivery Deployment Pipeline
    3. Exploratory Testing Stage
    Release Artifact Smoke Tests Exploratory Tests
    manual tests
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    configure
    deploy run run
    Staging Environment

    View full-size slide

  51. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 51
    The Continuous Delivery Deployment Pipeline
    4. Release Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory

    View full-size slide

  52. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 52
    The Continuous Delivery Deployment Pipeline
    4. Release Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    configure
    Production Environment

    View full-size slide

  53. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 53
    The Continuous Delivery Deployment Pipeline
    4. Release Stage
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    Release Artifact
    configure
    deploy
    Production Environment

    View full-size slide

  54. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 54
    The Continuous Delivery Deployment Pipeline
    4. Release Stage
    Release Artifact Smoke Tests
    Release Artifact
    retrieve
    Artifact
    Repository
    Local
    Directory
    configure
    deploy run
    Production Environment

    View full-size slide

  55. MARTIN ETMAJER
    Founder | GetCloudnative e.U. Slide 55
    The Continuous Delivery Deployment Pipeline
    Overview
    Developer Version
    Control
    Production
    Environment
    Code
    check-in
    Application
    release
    query
    check-out
    Business
    push button
    Customer
    use app
    each check-in triggers a pipeline run
    a build advances along the pipeline in stages
    (in case of error, the pipeline is stopped)
    CI/CD Server (Pipeline Executor)
    Release
    Test
    Deploy
    Build

    View full-size slide

  56. What Else is There?

    View full-size slide

  57. Continuous Delivery
    Presenter: Martin Fowler

    View full-size slide

  58. The Rationale for Continuous Delivery – What Does Good Look Like?
    Presenter: Dave Farley

    View full-size slide