Database DevOps - Redgate · Nils Rinaldi Hippo Fight 2/3 Flickr Creative Commons Attribution 2.0...

30

Transcript of Database DevOps - Redgate · Nils Rinaldi Hippo Fight 2/3 Flickr Creative Commons Attribution 2.0...

Database DevOps

anti-patterns

DLM Consultants

Alex Yates

(How to screw up your ability to deliver

schema changes in 15 simple steps)

DLM Consultants

Alex Yates

workingwithdevs.com

[email protected]

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 14: Create a DevOps teams/role

http://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