May 31, 2019

Inviting the Database Team to the DevOps Party

So, you use Git for app code check in. Check.

You’ve already taken advantage of continuous integration and delivery thanks to Jenkins. Check.

You’re even using a tool like Artifactory as a repository. Check.

Have you invited your database team to the DevOps party?

No? Let’s remedy that.

Your app developers are reaping the benefits of DevOps. They can’t even imagine a world without automated builds, tests, and deployments of their application code. Why not invite the developers that work on database code to the party? A recent report reveals that manual rework is the norm when it comes to database schema and stored procedure changes, even in organizations that have adopted DevOps. In fact, the faster the application release cycle, the more database professionals had to rework database changes.

With Continuous Integration and Delivery, All Code Matters

Given the amount of time that’s wasted on task switching, applying DevOps makes sense! It’s important to provide an effective process and the right tools to address this costly issue.

If your company isn’t using a database release automation process, you’re not alone. Many companies that implement continuous delivery for their application code aren’t doing the same for their database code. Yet. More companies are discovering that DRA eliminates bottlenecks and speeds application delivery.

Implementing a fully automated, continuous delivery process requires ALL code, including database code, be checked in to version control and deployed as part of the application release process. Good news! You can use the same version control tool and deployment tool for both.

A Typical Application Release Process

In order to understand how Datical’s database release automation tool fits into your application release toolchain, first, let’s set the stage with a typical application release process that we see from customers and the tools they are leveraging.

Let’s assume you’re currently using the following tools in your application development and release toolchain:

  • Visual Studio for application code and database code development
  • Git for source control
  • ServiceNow for IT ticket tracking
  • Jenkins for CI/CD
  • Artifactory for artifact repository

Process Without Database Release Automation

A Manual Database Change Process

As you can see in the diagram above, the app code side is automated and the database code side is not. Notice how manual it is. The full stack developer in this case needs to hand off database code to the DBA and then the DBA has to manually review the database code in each environment. For example, when developers write their code in Java and have a JAR file, they can just drop it into any app server and it will work. The same is not true for database code. It is very common that a database change script will deploy successfully in a DEV environment, but then it won’t work in Test, and may not work in Production.

The environments are often not in sync. This happens because people are making database changes manually in these environments, often without a defined process or tooling. This makes life difficult for operational DBA teams. They have to take the time to write custom scripts for each environment. This rework takes extra time. It also makes it challenging to know and track exactly what was run in each of the different environments as these reworked scripts and manual tweaks often don’t find their way into source control or change management systems.

When a bad database script gets put into production, bad things can happen. In fact, this just happened (May 17, 2019) to Salesforce.

The Application Release Process with Database Release Automation

The way to eliminate unnecessary risk and speed up the whole application release process? Automate the review, validation, testing and deployment of database schema and stored procedure changes. Database Release Automation (DRA) makes it possible and you’ve probably already have most of the tools you need in place already.

  • Visual Studio for application code and database code development
  • Git for source control
  • ServiceNow for IT ticket tracking
  • Jenkins for CI/CD
  • Artifactory for artifact repository
  • Liquibase Enteprise for database change and release automation

Process with Database Release Automation

As you can see in the diagram above, both the app code side and database code side is now automated.

With database release automation, your developers aren’t waiting around for the database code they wrote a week ago to blow up. Instead, the developers get automated reports on their database code once it has been committed to source control and evaluated by Liquibase Rules Engine. Liquibase Enterprise also simulates the database changes so there are no surprises.

DBAs are no longer constantly cleaning up bad scripts. Instead, they’re focused on important tasks, like performance tuning, capacity planning, security, data architecture, disaster recovery and all of the other important things the DBA team needs to do besides reviewing and deploying SQL scripts.

Want your company to reap the benefits of database release automation?

Sign up for a demo. We’ll show you exactly how your team can apply DevOps to your database process.

Erika Kalar
Erika Kalar
Share on: