Two-thirty in the morning and you’re dreaming about using DevOps tools for your database development. Because you’re in tech.
Suddenly you sit bolt upright in bed. Epiphany strikes.
“That’s it!” you exclaim. “We’d be completely agile if our database weren’t holding us back. Our database teams need to adopt DevOps methodology!”
Database change management — Living the dream
You sit down at your computer and hammer out a transition plan for integrating databases into your DevOps infrastructure. Your plan covers automated monitoring, database development, automated build and deployment, automated performance testing, database replication, data preparation, continuous integration and continuous delivery (CI/CD) — in short, everything needed for database DevOps.
The sun comes up. You shower, eat breakfast and send an invitation to Developers.All for a high-priority meeting at 10:00 a.m. Everyone shows up, and by 10:15 you’ve convinced them that your plan is the giant-killer that will future-proof your development efforts.
By noon you’ve acquired all the tools your database team needs. By 3:00 p.m. your application development and database development teams are banging out releases in perfect sync.
At 5:00 p.m. the CFO accelerates the vesting of your stock options. Your company goes public the following month and a few weeks after that you’re signing into Microsoft Teams from your hut on Bora Bora.
And then you wake up.
Moving to DevOps for database development and change management
We don’t have all of that for you — certainly not the stock options or the hut — but we do have a white paper called Future proof your databases. It covers the topics that are essential for integrating databases to your DevOps process, the same ones as in the transition plan you dreamed about. Except that ours is a real-life PDF, which is much better than a dream.
If database releases were like application releases, then you could easily go back to an earlier version in case of problems. But right now, if you reverted your changes to schemas and code, you could also lose transactions in your production database and compromise the integrity of your data.
In the DevOps model, an effective database pipeline requires automated database performance monitoring so that your DBAs can detect any performance issues or inconsistencies. Because they can visualize the details of an issue the instant they receive an alert, DBAs can quickly identify problems like poor-performing SQL statements. They point them out to the database developers, who make any necessary changes in the next build cycle.
To address problems that require schema or code changes, database developers use source control tools to enable controlled access to the code repository. They measure the impact each alternative fix has on overall performance and apply the most effective one. Automated regression testing and code reviews help reduce technical debt and shorten the turnaround time for bug fixes.
After developers check their code in to source control, they can include unit tests and code reviews as steps in their automated build and deployment tools. Pass/fail notifications indicate whether the changes are ready for promotion. Because the agile DevOps process emphasizes correcting errors before deployment, automated performance testing ensures that SQL code changes will scale up in production.
Once your database changes are in production, use database replication to update any target databases that need to be in sync (on-premises or in the cloud), such as the ones your organization uses for reporting and analytics.
Finally, it’s as important to keep a database accessible as it is to keep it up to date. To enable your analysts to see the effects of any improvements to database performance, implement a single data preparation tool that gives them access to all your data sources, from relational databases and non-database sources to noSQL systems and the cloud.
Wake up and smell the DevOps
Learn more about the case for integrating database development with your DevOps culture in our new white paper, Future proof your databases. It walks you through the same scenario I’ve described here, from discovering database performance problems to keeping your databases accessible to the entire organization. And be sure to check out our new Database DevOps Solutions page on quest.com. You will be able to see how Quest can help you solve some of the challenges identified in our white paper so that you can develop and deploy your software faster.