continuous delivery anti-patterns from the wild - matthew skelton- ipexpo europe
TRANSCRIPT
![Page 1: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/1.jpg)
Continuous Delivery Anti-patternsfrom the wild
Thursday 6th October 2016 - #IPEXPO
Matthew SkeltonSkelton Thatcher Consulting
@matthewpskelton
![Page 2: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/2.jpg)
![Page 3: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/3.jpg)
anti-patterns
![Page 4: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/4.jpg)
Matthew Skelton@matthewpskelton
![Page 5: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/5.jpg)
Continuous Delivery / …
30+ organisations
UK, US, EU, India, China
![Page 6: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/6.jpg)
![Page 7: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/7.jpg)
DevOpsTopologies.com
![Page 8: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/8.jpg)
![Page 9: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/9.jpg)
anti-patterns
![Page 10: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/10.jpg)
1. Not reading the‘Continuous Delivery’
book
![Page 11: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/11.jpg)
“What book?”
![Page 12: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/12.jpg)
Keep Everything in Version Control
Done Means Released
Don’t Check In on a Broken Build
Never Go Home on a Broken Build
Fail the Build for Slow Tests
Only Build Your Binaries Once
Deploy the Same Way to Every Environment
![Page 13: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/13.jpg)
![Page 14: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/14.jpg)
Use the Humble & Farley book on
Continuous Delivery
![Page 15: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/15.jpg)
2. Long and slow deployment pipelines
![Page 16: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/16.jpg)
![Page 17: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/17.jpg)
40+ steps between code commit and release
several weeks’ durationBUT
bug fixes in 4 steps
![Page 18: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/18.jpg)
![Page 19: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/19.jpg)
![Page 20: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/20.jpg)
![Page 21: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/21.jpg)
Short, wide pipelineshttp://continuousdelivery.com/2010/09/deployment-pipeline-anti-patterns/
![Page 22: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/22.jpg)
3. “Continuous Deliveryis not for us”
![Page 23: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/23.jpg)
![Page 24: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/24.jpg)
October 29, 2015
Sarah Goff-Dupont@DevToolSuperFan
![Page 25: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/25.jpg)
“Nope.
CD is fine for some systems/teams/software, but each company should make their own business decisions about how often to release code.”
(Why every development team needs continuous delivery)
![Page 26: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/26.jpg)
“…each company should make their own business decisions about how often to release code…”
err, this is exactly what we get with Continuous Delivery practices!
![Page 27: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/27.jpg)
Continuous Delivery != Continuous Deployment
(Pull vs Push)
![Page 28: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/28.jpg)
Continuous Delivery does not need deployments straight to
Production systems
![Page 29: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/29.jpg)
Continuous Delivery does not need cloud servers or
containers
![Page 30: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/30.jpg)
Continuous Delivery is not 100 deployments per day
![Page 31: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/31.jpg)
![Page 32: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/32.jpg)
Copyright © O’Reilly Media 2016
![Page 33: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/33.jpg)
Continuous Delivery is a set of excellent practices for building
working software systems
![Page 34: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/34.jpg)
Deliver to a simulationenvironment if not
Production
![Page 35: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/35.jpg)
4. No effective loggingor application metrics
![Page 36: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/36.jpg)
![Page 37: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/37.jpg)
![Page 38: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/38.jpg)
![Page 39: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/39.jpg)
![Page 40: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/40.jpg)
use logging as a channel/vector to make distributed
systems more testable
![Page 41: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/41.jpg)
Aggregated logging + detailed metrics drive
decision-making
![Page 42: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/42.jpg)
5. No investment inbuild & deployment
![Page 43: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/43.jpg)
![Page 44: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/44.jpg)
![Page 45: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/45.jpg)
![Page 46: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/46.jpg)
![Page 47: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/47.jpg)
versioning approachesinterdependencies
evaluation of new techniquessplitting / joining components
infrastructure availability
![Page 48: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/48.jpg)
Approx 1 x FTE per Product Team for
build & deployment
![Page 49: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/49.jpg)
6. Operational aspectsnot addressed well
![Page 50: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/50.jpg)
‘Functional’ ‘Non-functional’
![Page 51: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/51.jpg)
![Page 52: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/52.jpg)
‘Operational Features’(not NFRs)
![Page 53: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/53.jpg)
FEATURES
Visible
Operational Visible
![Page 54: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/54.jpg)
Single backlog forvisible and operational
features
![Page 55: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/55.jpg)
7. Forgetting the database
![Page 56: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/56.jpg)
![Page 57: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/57.jpg)
![Page 58: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/58.jpg)
![Page 59: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/59.jpg)
![Page 60: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/60.jpg)
![Page 61: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/61.jpg)
ApexSQLActiveRecord (and similar)
DbMaestroFluentMigrator
FlywayLiquibase
Redgate toolsVendor-native (e.g. EF, SSDT)
![Page 62: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/62.jpg)
Use a tool for DB changes + drive from
version control
![Page 63: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/63.jpg)
8. “Just plug in adeployment pipeline”
![Page 64: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/64.jpg)
![Page 65: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/65.jpg)
Limited unit testsNo re-architecture
1 Ops person for 25 techiesOpaque component names
No logging or metrics
![Page 66: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/66.jpg)
Re-architect for Continuous Delivery
![Page 67: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/67.jpg)
9. Container envy(aka microservices envy)
![Page 68: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/68.jpg)
![Page 69: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/69.jpg)
No unit or integration testsNo logging or monitoring
200+ ETL jobs only in ProdDB on a single node (no HA!)
Limited Dev+Ops collaboration
![Page 70: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/70.jpg)
![Page 71: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/71.jpg)
Adopt good CD practices before adding
container complexity
![Page 72: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/72.jpg)
Not reading any of ‘Continuous Delivery’ bookLong and slow deployment pipelines
“Continuous Delivery is not for us”No effective logging or application metrics
No investment in build & deploymentOperational aspects not addressed well
Forgetting the database“Just plug in a deployment pipeline”
Container envy
![Page 73: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/73.jpg)
Use the CD bookShort, wide pipelines
Deliver to a simulation environmentAggregated logging + metrics
Explicitly fund build & deploymentSingle backlog for all features
Use a tool for DB changes + version controlRe-architect for Continuous Delivery
Adopt good practices before using containers
![Page 74: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/74.jpg)
Questions?
![Page 75: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/75.jpg)
References‘Continuous Delivery’ by Jez Humble & Dave Farley, 2010 https://www.amazon.co.uk/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912/
‘Deployment Pipeline anti-patterns’ by Jez Humblehttp://continuousdelivery.com/2010/09/deployment-pipeline-anti-patterns/
‘Why every development team needs continuous delivery’ by Sarah Goff-Dupont [Atlassian] http://blogs.atlassian.com/2015/10/why-continuous-delivery-for-every-development-team/
‘Continuous Delivery with Windows and .NET’ by Chris O’Dell & Matthew Skelton, O’Reilly, 2016http://cdwithwindows.net/
‘Database Lifecycle Management’ by Grant Fritchey and Matthew Skelton, Redgate, 2016http://thedlmbook.com/
![Page 76: Continuous Delivery Anti-patterns from the wild - Matthew Skelton- IPEXPO Europe](https://reader031.vdocument.in/reader031/viewer/2022030309/58f1177d1a28ab77058b45f7/html5/thumbnails/76.jpg)
Thank you
http://skeltonthatcher.com/[email protected]
@SkeltonThatcher
+44 (0)20 8242 4103
@matthewpskelton