Ramping Up on Database DevOps: A Sample Get-Started Reading List

Ready to learn more about how to evolve software development for databases? Here's a sample list of resources to get you going.

A partner recently asked which materials we recommend to teams who are considering improving the SDLC for database code.

They asked first for conceptual materials that help explain the essentials to DevOps for the database, and how it adds value. Moving on from that point, they mentioned that resources explaining different options for implementation of version control, data de-identification, and testing would be useful.

What are the essentials for database development, and how do they add value?

Audience: Managers, Engineers, Anyone interested in software development
Topics: What (high level) and Why

I recommend starting with our whitepaper, “Essential practices for high performing Database DevOps teams.” This paper is gives a high level, platform-agnostic view of why dedicated development environments, version control, continuous integration, and automation of deployments enable high performance for database development.

What are the common approaches to implementing Version Control for databases?

Audience: Engineers, possibly some Managers if they are very technically minded
Topics: How (technical implementation)

Across different platforms and vendors, there are two main approaches or “styles” of versioning and deploying database code in version control: a “state-based” approach and a “migrations-based” approach. Each of these approaches has strengths and weaknesses, so vendors like Redgate often provide solutions which combine state and migrations approaches. It can be useful for engineers to become familiar with the state and migrations concepts when evaluating how they prefer to work.

My favorite Redgate resource on this topic is, “Developing and deploying databases with SSMS and Visual Studio: A comparison between Microsoft SSDT Database Projects and Redgate’s Database DevOps Solution.” (Admittedly, I’m a bit biased because I wrote a significant amount of the document, but I think it’s pretty good!)

Note: This document is SQL Server specific, but Redgate is following the same approach and themes in our tooling across Oracle and other database platforms.

How do we de-identify data without struggling with database relationships?

Audience: Engineers
Topics: How (technical implementation)

It might seem easy to write a few scripts to automatically mask the data in your databases, but the reality is generally that it is quite tricky. It is generally worth evaluating tooling that helps manage constraints and relationships in your database, while also providing sample datasets for replacement and options for executing masking rulesets in parallel for performance.

For this topic, I recommend browsing the list of Redgate Product Learning Articles on Data Masker. It’s a great way to get an idea of how it works fairly quickly.

What can we do with Unit Testing for Databases?

Audience: Engineers
Topics: How (technical implementation)

Automated tests are an important part of continuous integration. We do have written articles on unit testing databases, but in this case my favorite getting-started resource is the Redgate University Courses on SQL Test. These courses are all totally free and it’s fun to get to see the tests in action.