Press "Enter" to skip to content

Automating Database Deployments: Why Not?

Grant Fritchey asks a question:

Building out processes and mechanisms for automated code deployments and testing can be quite a lot of work and isn’t easy. Now, try the same thing with data, and the challenges just shot through the roof. Anything from the simple fact that you must maintain the persistence of the data to data size to up time, and you have real problems in front of you.

However, adopting database deployment automation and testing has enormous benefits. Faster, safer, production deployment enhances the protection built around your production systems. Whether we want to use the loaded term of DevOps or not, the benefits of this style of development and deployment are easily documented and measured.

So, why are so few people doing it?

Grant gives some of the outline and lays out one response. I am seeing a lot more automation over time, but one underappreciated facet in this is a lack of trust for automated processes from humans. I think a good percentage of DBAs don’t trust that the automated process will get things correct, especially when dealing with complex chains of dependencies. An automated process may be less likely to make a mistake in a step, but it will also be unable to reason through an ambiguity and could perform an undesirable action in the event of unexpected circumstances. That’s a pretty big risk for DBAs who are concerned about their data. I can see a few other reasons as well, but this is one which I don’t hear often enough in these discussions.

Also, Grant asks people to fill out the State of Database DevOps survey, especially those people who are not automating database deployments.

One Comment

  1. Jane Doe
    Jane Doe2020-11-24

    One of the reasons we are not doing it because there is no documentation from MS on how to use Pipelines for Azure SQL.
    What is the Input? An SSDT Database Model Solution?
    Where do you upload that solution to a Devops “thing” and publish it?
    What is the deliverable? A SQL script? An updated SQL instance?
    Where do you setup all the moving parts of a pipeline?
    That is what is killing adoption of Devops
    And since 99% of our database are on-prem…

Comments are closed.