continuous delivery antipatterns from the wild - matthew skelton - ipexpo manchester 2016
TRANSCRIPT
Continuous Delivery Anti-patternsfrom the wild
Wednesday 18th May 2016 - #IPEXPO
Matthew SkeltonSkelton Thatcher Consulting
@matthewpskelton
anti-patterns
Matthew Skelton@matthewpskelton
Continuous Delivery / …
30+ organisations
UK, US, EU, India, China
DevOpsTopologies.com
anti-patterns
1. Not reading the‘Continuous Delivery’
book
“What book?”
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
Use the Humble & Farley book on
Continuous Delivery
2. Long and slow deployment pipelines
40+ steps between code commit and release
several weeks’ durationBUT
bug fixes in 4 steps
Short, wide pipelineshttp://continuousdelivery.com/2010/09/deployment-pipeline-anti-patterns/
3. “Continuous Deliveryis not for us”
October 29, 2015
Sarah Goff-Dupont@DevToolSuperFan
“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)
“…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!
Continuous Delivery != Continuous Deployment
(Pull vs Push)
Continuous Delivery does not need deployments straight to
Production systems
Continuous Delivery does not need cloud servers or
containers
Continuous Delivery is not 100 deployments per day
Copyright © O’Reilly Media 2016
Continuous Delivery is a set of excellent practices for building
working software systems
Deliver to a simulationenvironment if not
Production
4. No effective loggingor application metrics
use logging as a channel/vector to make distributed
systems more testable
Aggregated logging + detailed metrics drive
decision-making
5. No investment inbuild & deployment
versioning approachesinterdependencies
evaluation of new techniquessplitting / joining components
infrastructure availability
Approx 1 x FTE per Product Team for
build & deployment
6. Operational aspectsnot addressed well
‘Functional’ ‘Non-functional’
‘Operational Features’(not NFRs)
FEATURES
Visible
Operational Visible
Single backlog forvisible and operational
features
7. Forgetting the database
ApexSQLActiveRecord (and similar)
DbMaestroFluentMigrator
FlywayLiquibase
Redgate toolsVendor-native (e.g. EF, SSDT)
Use a tool for DB changes + drive from
version control
8. “Just plug in adeployment pipeline”
Limited unit testsNo re-architecture
1 Ops person for 25 techiesOpaque component names
No logging or metrics
Re-architect for Continuous Delivery
9. Container envy(aka microservices envy)
No unit or integration testsNo logging or monitoring
200+ ETL jobs only in ProdDB on a single node (no HA!)
Limited Dev+Ops collaboration
Adopt good CD practices before adding
container complexity
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
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
Questions?
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/
Thank you
http://skeltonthatcher.com/[email protected]
@SkeltonThatcher
+44 (0)20 8242 4103
@matthewpskelton