You can’t buy DevOps. Just as you can’t be a carpenter simply by swinging a hammer, DevOps is a process by which we identify and streamline our application development and release process. The process part of DevOps begins with identifying the parts of the development and release process that are taking too long and creating a bottleneck.
Time and time again, the database change process is often the biggest bottleneck in the process. That’s not surprising as there are fewer tools to support DevOps for the database than DevOps for the application. That doesn’t mean they don’t exist, it’s just more important than ever to pick the right tools for the job.
Let’s look at why we absolutely can’t live (or get our jobs done!) without database development tools, application release automation (ARA), test data management, and database release automation.
1. Database Development Tools
When you think of DevOps tools, it’s unlikely you will consider database development tools as part of that category. However, it’s important that ALL of your tooling is DevOps-y.
I will always make the argument that Agile begat DevOps. Without the speed and efficiency we received from Agile software development, we wouldn’t have needed to create DevOps. Thus, bringing Agile to the database is key for DevOps for the database. Quest Software’s Toad has some great features for supporting Agile development. The first is its Team Coding functionality. Databases are different than the application and have state. Thus, having a database instance we can develop against as part of a team is key. Toad’s Team Coding allows users to leverage existing Source Code Control (like Git, Subversion, others) and a live database to support database developers. Not only can they check in and out their SQL scripts, but they can do so with the database objects like tables and stored procedures, as well.
2. Application Release Automation
Our applications today are complex and have a large number of components. As we move to adopt microservices, containers, and other technologies that allow us to provide functional isolation and avoid single points of failure, orchestrating this complex process requires application release automation. As we moved from “tribal knowledge” to scripts to deploy our applications, the next step is ARA to tie all these steps together and make sure they are completed successfully.
ARA DevOps Tools like CA’s Release Automation, IBM’s UrbanCode Deploy, Serena’s Deployment Automation from MicroFocus, and Xebia Lab’s XL Deploy are an absolute necessity for DevOps.
3. Test Data Management
Now that you’re deploying your application at the speed of thought, you are new free to make certain that your testing efforts are valid. The biggest problem with application testing today is that lack of real-world data. Today’s applications change functionality based on the data stored in the database. Thus, providing data that mirrors (or actually is) production data is key to having valid testing efforts. After all, your entire testing cycle could be invalidated by testing against improper data. If that’s the case, there is no point in testing at all!
DevOps Tools like CA’s TDM, Delphix Data Virtualization, and IBM’s Optim allow you to populate your test databases with data. (In some cases, like Delphix, you can self-service request copies of production databases for integrated testing environments.) You are adopting DevOps for a reason and that is to improve your software; a huge part of that is enabling more and more testing.
4. Database Release Automation
Quick! Sketch a simple diagram of your application. I bet there are three boxes and one is the application and one is the database. You will not be successful with your DevOps initiative if you neglect that database. In fact, several DevOps leaders who have successfully implemented DevOps, point to the database as a key post-mortem learning. “In retrospect, I wish we had automated database deployments first,” is very common to hear.
Thus, as you evaluate your DevOps tooling, database release automation will be key. A herd can only move as fast as its slowest member. For companies that use databases (all of them!), the database deployment process is that slowest member.
You have a whole host of DevOps tools to choose from. Finding the ones that work for you will require evaluation and consultation with all team members. Remember: DevOps is a process to constantly improve and move faster. If you make a bad tool decision or simply forget key parts of your release process, you will not be able to improve nor accelerate your application release process – and if the going is slow, why go at all?