It’s time to add Database Deployments to the Continuous Pipeline
As a DBA, I’m sure you’re not yet intimately involved in building out the Continuous Delivery pipeline. I’m here to tell you that you should be. As you already know, your impact to the software release process is no different than a developer’s. The question you need to ask yourself is, why aren’t my Database Deployments and updates incorporated into the CI/CD pipeline along with all the other changes?
Part of the problem is what you are updating. In the development world, a binary can be easily copied over another older binary, no matter what version they are stomping on. That’s not the case with a database update. With these, you must modify the existing object, the database itself. Instead of a copy, you are running alter scripts, and they need to be changed or backed out of in a specific order.
In other words, it’s the nature of the beast that makes it problematic for you to participate in the CI/CD pipeline. While you certainly can use a CI/CD engine like Jenkins to execute your alter script as part of an automated process, your updates must be applied sequentially. You can’t just stomp over the top of your database like you can a binary. This means that the process must include the ability to track, incrementally, your database updates.
Now I know you knew this. I bring this up as we specifically address this problem. DeployHub is an open source Release Automation solution that performs continuous deployments driven by the CI/CD Pipeline. Included is a free version (based on the open source offering) that can track your incremental updates as part of a software application “package.”
With DeployHub, you create an Application Package based on Components. Components can be anything, including your database updates. When the software is released, the Application Package is interrogated based on the individual Components, and each Component is versioned, which allows DeployHub to track the differences between all Components in a software release.
When you create a database Component, you specify the alter script to move forward and to roll back. And there is more. DeployHub manages updates based on the Component versions and applies your database updates incrementally or rolls them back incrementally in the correct order. This ability is the real secret sauce of DeployHub. With us, you join in the automation game and start driving your database updates as part of the CI/CD pipeline.
To get started, sign up for DeployHub Team and help your developers build out a continuous deployment process that can handle your database updates. And yes, they can use their CI/CD pipeline to call DeployHub to do the important job of software updates with DB changes.
For other blogs on the subject, read more here.