Lots of people tell you how to do things properly. Here are some things I’ve inherited in our Ansible that break things in horrible ways.
Coupling is (roughly) how interconnected different components of a system are. One of the most common patterns in modern software engineering is loose coupling.
The idea of separating things across an API so that you can change things behind the API without having to change other components is very powerful.
I am a great fan of the DBRE book, and an avid follower of the authors’ podcasts, videos and blog posts.
But there is one glaring omission that I can’t find discussed properly anywhere: upgrades.
You need to patch to fix bugs or address vulnerabilities. You need to upgrade for support and new features that developers want.
I understand that site-specific needs make it hard to proclaim detailed edicts. But the DBRE book isn’t about detailed edicts. It’s about principles and a way of working.