The document outlines 15 steps to screw up the ability to deliver database schema changes. It describes anti-patterns such as fearing every change, not using source control processes, imposing new processes without training, and hot-fixing problems in production. It also provides alternatives such as embracing change carefully, adopting DevOps early, using standard source control processes, providing training, and avoiding production hotfixes. The document is authored by Alex Yates of DLM Consultants.
9. Step 3: Build a tangled web of databases
@_AlexYates_
#sqlinthecity
10. Step 4: Customize each production instance
@_AlexYates_
#sqlinthecity
11. Step 5: Don’t use a standard source control process
@_AlexYates_
#sqlinthecity
12. Step 6: Impose new process on underlings
@_AlexYates_
#sqlinthecity
13. Step 7: Don’t provide any training
@_AlexYates_
#sqlinthecity
14. Step 8: Use the wrong model/migration approach
@_AlexYates_
#sqlinthecity
15. “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
16. “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
17. “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
18. Step 8: Use the wrong model/migration approach
@_AlexYates_
#sqlinthecity
19. Step 9: Hot-fix all the problems in production
@_AlexYates_
#sqlinthecity
20. Step 10: Don’t use branching or tagging
@_AlexYates_
#sqlinthecity
21. Step 11: Use branches to solve every problem
@_AlexYates_
#sqlinthecity
23. Step 13: Have a functional stand-off
@_AlexYates_
#sqlinthecity
24. Step 14: Create a DevOps teams/role
http://devopstopologies.com/
@_AlexYates_
#sqlinthecity
25. 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
26. http://devopstopologies.co
Fear every change
Wait until you are already screwed
Build a tangled web of databases
Customize each production instance
Don’t use a standard source control process
Impose new process on underlings
Don’t provide any training
Use the wrong model/migration approach
Hot-fix all the problems in production
Don’t use branching or tagging
Use branches to solve every problem
Re-invent the wheel
Have a functional stand-off
Create a DevOps teams/role
Give up.
DON’T
…
27. http://devopstopologies.co
Embrace change, carefully
Adopt DevOps early
Avoid cross-database dependencies
Standardize production instances
Use a standard source control process
Involve everyone
Provide training
Use the right model/migration approach
Avoid production hotfixes
Use branching when appropriate
Use branches sparingly
Use industry standard solutions
Work collaboratively across silos
Structure for success
Persevere.
DO