Feedback Loops, DevOps and Database Continuous Delivery: What you should know
“Fool me once, shame on you; fool me twice, shame on me.”
How do you learn?
By making mistakes.
How do you learn faster?
By learning about your mistakes earlier.
We apply this lesson to development very easily with Continuous Builds (“You broke the build!!!”) and Unit Tests (“You broke the build again!!!”). For our code, we can identify mistakes rapidly and maybe, just maybe…before they are even a problem (SonarQube).
All of these things shorten the Feedback Loop that is a key component to DevOps. After all, how are you going to get better if you don’t learn where you need to improve? (SPOILER: you won’t.)
So, we have all sorts of goodies to give us feedback on our code, our builds, our testing, our performance in production. And, we have a mechanism to deliver the feedback to the right people. Or, even better, we just dump it into a chat room and let anyone that wants to subscribe and see it. Loop that feedback, yo!
But, once again, when it comes to Devops Feedback Loops we have neglected the database. We have no way to analyze our database changes; we have no way to validate their correctness in production without skinning our knees, thus making the goal of creating a continuous delivery database a much more difficult proposition.
Sure, we can scan the SQL with static code analysis tools. Maybe we’ll find the cyclomatic complexity of certain stored procedures is too high. Or, we can have performance tools identify queries in code that are sub-optimal. But, we will never be able to enforce naming conventions (“All tables start with ‘t_’.”) or enforce that all foreign keys have indexes on the columns they reference or no more than three indexes to a table. Instead we rely on humans to not only identify these issues, they must make sure they are corrected, and then enforce they never happen again.
Time and time again, Datical customers seeking to provide Database Continuous Delivery find that their Mean Time to Resolution plummets for database deployment issues. Furthermore, over time, their issues in production asymptotically approach zero. The reason is that issues are identified far earlier in the development process with Datical than any other solution on the market.
There is a hidden benefit to enforcing a Devops Feedback Loop for the database. Once these issues in production decrease to almost zero, database professionals are able to tackle more strategic and valuable tasks. Things like the move to the Cloud, exploring Big Data, creating on-demand ephemeral testing infrastructure are no longer impossible pipe dreams. These become attainable, real world goals that Datical users reach on a daily basis.
To learn more about DevOps Feedback Loops and Database Continuous Delivery read our white paper, How to Create the Continuous Delivery Database.