What is Continuous Delivery?
Alan Parkinson
@alan_parkinson
Hindsight Software
a lean Start-up
Fast feedback
Are we building the right thing?
Software as a
Competitive Advantage
Creating a feature is an
investment
Has no return until it is
being used
The Last Mile: Releasing
Releasing
Software is
Stressful
Are we all Agile?
our highest priority is to satisfy
the customer through early and
continuous delivery
of valuable software
“
”
effective pattern for getting
software from
development to release
if it hurt’s, do it
more often
Low-risk, frequent, cheap, rapid
and predictable process
Continuous Delivery
!=
Continuous Deployment
The Deployment Pipeline
automated implementation of your
build, test, deploy, and release process
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing?
Release
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing?
Release
Small batch sizes
Fail fast and give feedback
released to customers
Cycle Time
commit to release
Pattern 2 - Deployment
one deployment script
to rule them all
CC Attribution-ShareAlike: mendhak
https://flic.kr/p/62WDfS
minimise the differences between
environments
effective pattern for getting
software from
development to release
Pipeline Summary
• Build a installable Binary once
• Pass the built binary through quality gates
• Trigger the pipeline on...
Deployment Summary
• One Deployment Script for all Environments
• Automate everything – Push one button
• Version Control ...
Continuous Delivery:
Reliable Software Releases
Through Build, Test, and
Deployment Automation
By Jez Humble
And Dave Farl...
Build Quality In
Continuous Delivery and
DevOps Experience Reports
70% of author royalties to
Code Club
leanpub.com/buildq...
Questions?
Thank you
@alan_parkinson
Testing in Continuous Delivery
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing
Release
Canary Deployments
Commit
Stage
Automated
Acceptance
Checks
Automated
Capacity
Checks
Manual
Testing
Release
Exploratory Testing
Feature Toggles
What is Continuous Delivery?
What is Continuous Delivery?
What is Continuous Delivery?
Upcoming SlideShare
Loading in …5
×

What is Continuous Delivery?

1,154 views

Published on

Many businesses are adopting Continuous Delivery because the frequent releases and low risk nature of these releases can provide a competitive cost advantage. This is particularly important in a world where many businesses can only exist and survive and are defined by software based systems.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,154
On SlideShare
0
From Embeds
0
Number of Embeds
148
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Start-up

    Follow Learn Start-up

    We pratitice CD during product development and always looking to get feature into customers hands



  • Fast feedback – Are we building the right thing?

  • You see no ROI from a new feature until it’s released to customers

    What cold of the business have done with the money while it waits?
  • Delivering software from Testing to Production is known as the last mile.

    Teams often batch up several sprints worth of changes all to be deployed at the same time
  • Heartbleed bug – How many of you would feel comfortable fixing it a 5pm on a Friday?
  • Manual configuration of system takes a long time

    Many issues found during deployment
    - People working weekends.
    - Emergency fixes from Developers and Testers

    Deployment manual rewritten during deployments for work arounds

    Staging and Production Environments don’t match

    Separate Operations team – They are interested in SLA’s and not getting the latest features into production

    Office of National Statistics can no longer deploy because the system is so brittle.
  • First Principle behind the Agile Manifesto

    Agile methods and implementations focus on requirements to development and test, not getting working software to the customer.
  • The aim of doing releases more frequently
  • It seems so simple that it couldn’t possibly make that big of difference, but it does. And there is historical precedent for it as well. The principle of working is small batches has proved it’s merit in Agile software development and on an even larger stage during the manufacturing revolutions of the 1970s and 1980s.
  • Take a Drink
  • One button push deployment

    Testing, Staging, and Production should all use the same deployment scripts

    Using the same script means it gets checked every time the pipeline is executed
  • First Principle behind the Agile Manifesto

    Agile methods and implementations focus on requirements to development and test, not getting working software to the customer.
  • A book on Continuous Delivery and DevOps Experience Reports
  • Take a Drink
  • Take a Drink
  • What is Continuous Delivery?

    1. 1. What is Continuous Delivery? Alan Parkinson @alan_parkinson
    2. 2. Hindsight Software a lean Start-up
    3. 3. Fast feedback Are we building the right thing?
    4. 4. Software as a Competitive Advantage
    5. 5. Creating a feature is an investment Has no return until it is being used
    6. 6. The Last Mile: Releasing
    7. 7. Releasing Software is Stressful
    8. 8. Are we all Agile?
    9. 9. our highest priority is to satisfy the customer through early and continuous delivery of valuable software “ ”
    10. 10. effective pattern for getting software from development to release
    11. 11. if it hurt’s, do it more often
    12. 12. Low-risk, frequent, cheap, rapid and predictable process
    13. 13. Continuous Delivery != Continuous Deployment
    14. 14. The Deployment Pipeline automated implementation of your build, test, deploy, and release process
    15. 15. Commit Stage Automated Acceptance Checks Automated Capacity Checks Manual Testing? Release
    16. 16. Commit Stage Automated Acceptance Checks Automated Capacity Checks Manual Testing? Release Small batch sizes
    17. 17. Fail fast and give feedback
    18. 18. released to customers
    19. 19. Cycle Time commit to release
    20. 20. Pattern 2 - Deployment
    21. 21. one deployment script to rule them all CC Attribution-ShareAlike: mendhak https://flic.kr/p/62WDfS
    22. 22. minimise the differences between environments
    23. 23. effective pattern for getting software from development to release
    24. 24. Pipeline Summary • Build a installable Binary once • Pass the built binary through quality gates • Trigger the pipeline on every change • Done == Released to Customers • Based on Lean Thinking • Avoid queues in the pipeline • Track cycle time • Business decides when to release
    25. 25. Deployment Summary • One Deployment Script for all Environments • Automate everything – Push one button • Version Control all configuration • Environments should match where practical
    26. 26. Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation By Jez Humble And Dave Farley
    27. 27. Build Quality In Continuous Delivery and DevOps Experience Reports 70% of author royalties to Code Club leanpub.com/buildqualityin @buildqualityin
    28. 28. Questions?
    29. 29. Thank you @alan_parkinson
    30. 30. Testing in Continuous Delivery
    31. 31. Commit Stage Automated Acceptance Checks Automated Capacity Checks Manual Testing Release
    32. 32. Canary Deployments
    33. 33. Commit Stage Automated Acceptance Checks Automated Capacity Checks Manual Testing Release Exploratory Testing
    34. 34. Feature Toggles

    ×