Slide 1

Slide 1 text

Small Batch Deployments Sean Sullivan April 2, 2019

Slide 2

Slide 2 text

Principles of Continuous Delivery continuousdelivery.com

Slide 3

Slide 3 text

2003: Poppendieck * book published May 2003 Remember the rule of small batches: If you integrate changes in small batches, it will be infinitely easier to detect and fix problems.

Slide 4

Slide 4 text

2006: Poppendieck * book published September 2006 Work in small batches Reduce project size. Shorten release cycles. Stabilize. Repeat.

Slide 5

Slide 5 text

http://www.startuplessonslearned.com/2009/02/work-in-small-batches.html software should be designed, written, and deployed in small batches 2009: Eric Ries * February 2009

Slide 6

Slide 6 text

2009: Flickr * Velocity Conference, June 2009 https://www.youtube.com/watch?v=LdOe18KhtT4

Slide 7

Slide 7 text

2009: Flickr * Velocity Conference, June 2009 https://www.youtube.com/watch?v=LdOe18KhtT4

Slide 8

Slide 8 text

https://omniti.com/seeds/online-application-deployment-reducing-risk.html 2010: Theo Schlossnagle * published March 2010 micro-releases: releases must never get too large instead amortize risk with small, controlled releases

Slide 9

Slide 9 text

2010: Facebook * Velocity Conference, June 2010 a culture of making very frequent small changes if you've only changed one thing at a time, it is really easy to figure out what broke the site https://www.youtube.com/watch?v=nEmJ_5UHs1g Robert Johnson

Slide 10

Slide 10 text

2010: Etsy * Velocity Conference, June 2010 https://www.kitchensoap.com/2010/06/24/ops-meta-metrics-velocity-2010-slides/ John Allspaw

Slide 11

Slide 11 text

2010: Etsy * Velocity Conference, June 2010 https://www.kitchensoap.com/2010/06/24/ops-meta-metrics-velocity-2010-slides/ John Allspaw

Slide 12

Slide 12 text

* book published August 2010 2010: Continuous Delivery Imagine that you released frequently, so the delta between what is currently in production and the new release is small. If that were true, the risk of release would be greatly diminished

Slide 13

Slide 13 text

incremental deployment 2012: gilt.com deploy early, deploy often * Portland Oregon, January 2012

Slide 14

Slide 14 text

Work in small batches. With a small batch size, you are reducing the amount of complexity that has to be dealt with at any one time by the people working on the batch. Break down large releases into small units of deployment 2012: Damon Edwards http://dev2ops.org/2012/03/devops-lessons-from-lean-small-batches-improve-flow/ * published March 2012

Slide 15

Slide 15 text

each release is a rollback point small incremental releases actually help reduce risk 2012: Sam Newman * GeeCon, May 2012

Slide 16

Slide 16 text

https://www.joelonsoftware.com/2012/07/09/software-inventory/ * published July 2012 2012: Joel Spolsky If you’re already shipping monthly, figure out how to ship weekly. Keep pushing the bar on more and more frequent deployment of smaller and smaller changes.

Slide 17

Slide 17 text

2012: PuppetConf https://twitter.com/RealGeneKim/status/251457175128530944 * tweet, September 2012

Slide 18

Slide 18 text

How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis? * October 2012 2012: Jez Humble

Slide 19

Slide 19 text

2012: Don Reinertsen https://www.youtube.com/watch?v=cAMyGVSj9m4 * December 2012

Slide 20

Slide 20 text

2012: Don Reinertsen https://www.youtube.com/watch?v=cAMyGVSj9m4 * December 2012

Slide 21

Slide 21 text

2013: gilt.com continuous delivery is critical Every release is small. You know what's changed in production. If it doesn't work, rollback is simple * Surge conference, September 2013

Slide 22

Slide 22 text

We love to deploy new code incrementally hundreds of times a day. And there's good reason for that: it's safer overall. Incremental deploys are easier to understand and fix than one gigantic deploy once a year. https://zachholman.com/talk/move-fast-break-nothing/ 2014: Github * published October 2014

Slide 23

Slide 23 text

https://codeascraft.com/2015/02/20/re-introducing-deployinator-now-as-a-gem/ 2015: Etsy We deploy code about 40 times per day. This allows us to push smaller changes we are confident about and experiment at a fast rate. Jayson Paul * published February 2015

Slide 24

Slide 24 text

in practice, large-impact, high- risk deployments end up happening infrequently due to understandable fear unfortunately, this means that our changes build up between releases 2015: Building Microservices * book published February 2015

Slide 25

Slide 25 text

the bigger the delta between releases, the higher the risk that we’ll get something wrong! * book published February 2015 2015: Building Microservices

Slide 26

Slide 26 text

throughout the book, I promote the need to make small, incremental changes one of the key drivers is to understand the impact of each alteration * book published February 2015 2015: Building Microservices

Slide 27

Slide 27 text

2015: gilt.com * QCon London, July 2015 simpler and easier deployments and rollbacks Yoni Goldberg teams can decide when they want to deploy deploy multiple times per day

Slide 28

Slide 28 text

2015: gilt.com * QCon London, July 2015 database schema changes are required to be incremental Yoni Goldberg database schema changes are released separately from service code

Slide 29

Slide 29 text

2016: Instagram * SREcon, April 2016 Michael Gorven https://www.youtube.com/watch?v=XNJ30Vy5xSg

Slide 30

Slide 30 text

2016: Instagram * SREcon, April 2016 Michael Gorven https://www.youtube.com/watch?v=XNJ30Vy5xSg

Slide 31

Slide 31 text

2016: Instagram * SREcon, April 2016 Michael Gorven https://www.youtube.com/watch?v=XNJ30Vy5xSg

Slide 32

Slide 32 text

* book published June 2016 2016: Microservice Architecture reducing the size of the deployment unit a notion we call “batch size reduction” reducing the size or scope of the problem

Slide 33

Slide 33 text

emphasis on small batch sizes 2016: DevOps Handbook the principle of small batch sizes also applies to code reviews * book published October 2016

Slide 34

Slide 34 text

the heart of doing evolutionary architecture is to make small changes * book published September 2017 2017: Building Evolutionary Architectures

Slide 35

Slide 35 text

an architecture that allows small, incremental changes is easier to evolve because developers have a smaller scope of change 2017: Building Evolutionary Architectures * book published September 2017

Slide 36

Slide 36 text

with improved engineering practices comes decreased risk 2017: Building Evolutionary Architectures * book published September 2017

Slide 37

Slide 37 text

* second edition, published January 2018 designing for deployment gives you the ability to make large changes in small steps 2018: Release It!

Slide 38

Slide 38 text

* second edition, published January 2018 to be successful, your software will be deployed early and often smaller, easier deployments mean you can make big changes over a series of small steps 2018: Release It!

Slide 39

Slide 39 text

2018: Accelerate * book published March 2018

Slide 40

Slide 40 text

* tweet, April 2018 https://twitter.com/bridgetkromhout/status/983739341074845697 2018: Bridget Kromhout

Slide 41

Slide 41 text

2018: Michele Titolo Microservice deployments should be small. If you have small services, you are probably making small changes. * QCon New York, June 2018

Slide 42

Slide 42 text

2018: Michele Titolo One of the benefits of small changes is that you can release frequently * QCon New York, June 2018

Slide 43

Slide 43 text

2018: Flow Commerce * QCon New York, June 2018 Mike Bryzek

Slide 44

Slide 44 text

2018: Flow Commerce * QCon New York, June 2018 Mike Bryzek

Slide 45

Slide 45 text

2018: Charity Majors https://charity.wtf/2018/08/19/shipping-software-should-not-be-scary/ * published August 2018 suffice it to say that we now know that smaller and more frequent changes are much safer than larger and less frequent changes ship early, ship often, ship smaller change sets

Slide 46

Slide 46 text

2019: Financial Times * QCon London, March 2019 https://www.infoq.com/presentations/microservices-financial-times Sarah Wells

Slide 47

Slide 47 text

2019: Jez Humble * tweet, March 2019 https://twitter.com/jezhumble/status/1106297185119797248

Slide 48

Slide 48 text

Make It So small batches of work frequent deployments