30

Database DevOps Anti-patterns

Embed Size (px)

Citation preview

Page 1: Database DevOps Anti-patterns
Page 2: Database DevOps Anti-patterns

Database DevOpsanti-patterns

DLM ConsultantsAlex Yates

Page 3: Database DevOps Anti-patterns

(How to screw up your ability to deliver schema changes in 15

simple steps)DLM Consultants

Alex Yates

Page 4: Database DevOps Anti-patterns

[email protected]

om

DLM ConsultantsAlex Yates

Page 5: Database DevOps Anti-patterns

@_AlexYates_ | #sqlinthecity

@_AlexYates_#sqlinthecity

Page 6: Database DevOps Anti-patterns

“10,000 releases per day”

Alistair Hann, SkyScanner

@_AlexYates_#sqlinthecity

Page 7: Database DevOps Anti-patterns

Step 1: Fear every change

@_AlexYates_#sqlinthecity

Page 8: Database DevOps Anti-patterns

Step 2: Wait until you are already screwed

@_AlexYates_#sqlinthecity

Page 9: Database DevOps Anti-patterns

Step 3: Build a tangled web of databases

@_AlexYates_#sqlinthecity

Page 10: Database DevOps Anti-patterns

Step 4: Customize each production instance

@_AlexYates_#sqlinthecity

Page 11: Database DevOps Anti-patterns

Step 5: Don’t use a standard source control process

@_AlexYates_#sqlinthecity

Page 12: Database DevOps Anti-patterns

Step 6: Impose new process on underlings

@_AlexYates_#sqlinthecity

Page 13: Database DevOps Anti-patterns

Step 7: Don’t provide any training

@_AlexYates_#sqlinthecity

Page 14: Database DevOps Anti-patterns

Step 8: Use the wrong model/migration approach

@_AlexYates_#sqlinthecity

Page 15: Database DevOps Anti-patterns

“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

Page 16: Database DevOps Anti-patterns

“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

Page 17: Database DevOps Anti-patterns

“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

Page 18: Database DevOps Anti-patterns

Step 8: Use the wrong model/migration approach

@_AlexYates_#sqlinthecity

Page 19: Database DevOps Anti-patterns

Step 9: Hot-fix all the problems in production

@_AlexYates_#sqlinthecity

Page 20: Database DevOps Anti-patterns

Step 10: Don’t use branching or tagging

@_AlexYates_#sqlinthecity

Page 21: Database DevOps Anti-patterns

Step 11: Use branches to solve every problem

@_AlexYates_#sqlinthecity

Page 22: Database DevOps Anti-patterns

Step 12: Re-invent the wheel

@_AlexYates_#sqlinthecity

Page 23: Database DevOps Anti-patterns

Step 13: Have a functional stand-off

@_AlexYates_#sqlinthecity

Page 24: Database DevOps Anti-patterns

Step 14: Create a DevOps teams/rolehttp://devopstopologies.com/

@_AlexYates_#sqlinthecity

Page 25: Database DevOps Anti-patterns

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

Page 26: Database DevOps Anti-patterns

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…

Page 27: Database DevOps Anti-patterns

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

Page 28: Database DevOps Anti-patterns

E: [email protected]: @_AlexYates_W: www.dlmconsultants.com

Page 29: Database DevOps Anti-patterns

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

Page 30: Database DevOps Anti-patterns

References:

www.dlmconsultants.com/sitc