Why do we need Continuous Database Deployments?

work smarter reminder

Continuous Database Deployments are Needed in the Pipeline

Continuous database deployments are critical to the CI/CD 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 continuous database deployments. 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 microservice configuration management platform that does deployments to perform continuous database deployments using the same incremental processing that is needed by microservices.

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.


Leave a Reply