database devops anti-patterns
TRANSCRIPT
Database DevOpsanti-patterns
DLM ConsultantsAlex Yates
(How to screw up your ability to deliver schema changes in 15
simple steps)DLM Consultants
Alex Yates
@_AlexYates_ | #sqlinthecity
@_AlexYates_#sqlinthecity
“10,000 releases per day”
Alistair Hann, SkyScanner
@_AlexYates_#sqlinthecity
Step 1: Fear every change
@_AlexYates_#sqlinthecity
Step 2: Wait until you are already screwed
@_AlexYates_#sqlinthecity
Step 3: Build a tangled web of databases
@_AlexYates_#sqlinthecity
Step 4: Customize each production instance
@_AlexYates_#sqlinthecity
Step 5: Don’t use a standard source control process
@_AlexYates_#sqlinthecity
Step 6: Impose new process on underlings
@_AlexYates_#sqlinthecity
Step 7: Don’t provide any training
@_AlexYates_#sqlinthecity
Step 8: Use the wrong model/migration approach
@_AlexYates_#sqlinthecity
“There's nothing more reliable than keeping track of exactly the scripts you
intend to run, and running them, without trying to compare state and
guess.”
Paul Stovell, Octopus Deploy
@_AlexYates_#sqlinthecity
“As soon as you have multiple changes on a single aspect of an object, ordering and the ability to detect which change needs
to be made gets very complicated.”
Gert Drapers, built Data Dude
@_AlexYates_#sqlinthecity
“Small teams who make few changes and have few programmable objects
are well suited to migrations.
Otherwise declarative models scale better.”
Alex Yates, DLM Consultants
@_AlexYates_#sqlinthecity
Step 8: Use the wrong model/migration approach
@_AlexYates_#sqlinthecity
Step 9: Hot-fix all the problems in production
@_AlexYates_#sqlinthecity
Step 10: Don’t use branching or tagging
@_AlexYates_#sqlinthecity
Step 11: Use branches to solve every problem
@_AlexYates_#sqlinthecity
Step 12: Re-invent the wheel
@_AlexYates_#sqlinthecity
Step 13: Have a functional stand-off
@_AlexYates_#sqlinthecity
Step 14: Create a DevOps teams/rolehttp://devopstopologies.com/
@_AlexYates_#sqlinthecity
Step 15: Give up. (You are too big, small, broken, not broken, greenfield, brownfield, agile, waterfall, complicated, simple, inexperienced, experienced, regulated or unregulated anyway. It’ll never work.)
@_AlexYates_#sqlinthecity
http://devopstopologies.com
Fear every changeWait until you are already screwedBuild a tangled web of databases
Customize each production instanceDon’t use a standard source control process
Impose new process on underlingsDon’t provide any training
Use the wrong model/migration approachHot-fix all the problems in production
Don’t use branching or taggingUse branches to solve every problem
Re-invent the wheelHave a functional stand-offCreate a DevOps teams/role
Give up.
DON’T…
http://devopstopologies.com
Embrace change, carefullyAdopt DevOps early
Avoid cross-database dependenciesStandardize production instances
Use a standard source control processInvolve everyoneProvide training
Use the right model/migration approachAvoid production hotfixes
Use branching when appropriateUse branches sparingly
Use industry standard solutionsWork collaboratively across silos
Structure for successPersevere.
DO
E: [email protected]: @_AlexYates_W: www.dlmconsultants.com
Author Name Source Licence
Chiltepinster Mocking Bird Argument Wikimedia Commons Creative Commons Attribution-Share Alike 3.0 Unported
Nils Rinaldi Hippo Fight 2/3 Flickr Creative Commons Attribution 2.0 Generic license
boeingboeing2 We still have enough duct tape Deviant Art Creative Commons Attribution-NonCommercial 3.0 Unported
PDTillman Mini monster truck Wikimedia Commons Creative Commons Attribution 2.0 Generic license
foshie Stretched ini – Flickr - foshie Wikimedia Commons Creative Commons Attribution 2.0 Generic license
Julian Burgess Double decker mini Flickr Creative Commons Attribution 2.0 Generic license
Charbel Akhras Pimped Mini Convertible Mini Cooper Flickr Attribution-NoDerivs 2.0 Generic
Watchduck Sheet weaver spider web Wikimedia Commons GNU Free Documentation Licence
Linnaea Mallette Old Wagon Wheel Public Domain Pictures CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
Unsplash Train tracks Pixabay CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
Arne Hückelheim Sunset Tracks Crop Wikimedia Commons Creative Commons Attribution-Share Alike 3.0 Unported + GNU Free Documentation Licence
Jan Jacobsen White Flag Wikimedia Commons Creative Commons Attribution-Share Alike 3.0 Unported
Image sources
References:
www.dlmconsultants.com/sitc