A DBA’s Perspective: What Is DevOps?
If you’ve worked in IT in recent years, you’re no doubt familiar with the term “DevOps.” Accelerating the pace of development and faster delivery of new features is the goal. DevOps involves integrating the development life cycle with Agile methodology. DevOps practices applied to database operations is now commonly referred to as DataOps. DataOps improves and controls the process by which code and schema changes make it from development to testing and ultimately to production environments.
Like many other changes in software development practices, it was originally designed for stateless systems, like web or application servers. It was later modified to support the complexity of stateful systems like relational databases. DevOps methodology involves automating the planning, coding, building, testing, release, deployment, and post-deployment monitoring process. Additionally, it creates a collaborative environment between managers, developers, and database administrators.
Why Should the DBA Care?
As a DBA, why should you care about DevOps? It’s simple: you oversee managing the uptime and performance of the database. As such, code and schema changes occurring within the development lifecycle should matter to you. The database administrator is the gatekeeper, and your careful oversight can prevent the introduction of changes negatively impacting the performance of the database.
For example, did a developer introduce row-by-row processing into a procedure? Or did the index you recommended make it into the last build? Your role is to make sure the database performance is optimal, all environments match, and the deployments don’t have adverse effects with regard to data, performance, and consistency.
The DBA is also the bottleneck at times in legacy workflows. This is especially true for small database teams or the lone DBA managing all the deployments. DevOps can reduce friction created by the DBA’s code reviews by automating tasks.
The role of the DBA in many environments isn’t only to perform code review and execute the change to production, but also to do the final performance load test. With an Agile environment and large application development teams, it’s easy to imagine the backlog of changes that can occur if the DBA is the bottleneck. Rushing to perform those changes can lead to mistakes.
Using DevOps practices and tools, you can create repeatable processes, validate coding practices, and automate an array of different checks and balances DBAs do for new changes to the database. You can also use automation to load test for you. Load test scripts are easily integrated into many of the DevOps tools out there.
Incorporating Continuous Integration (CI) and Continuous Delivery (CD) via DevOps tools also allows you to revert changes seamlessly in the event of a problem. There are times where changes to environments—although the proper tests were performed—wreak havoc on performance. Your job is to make sure you can revert changes or restore data as quickly as possible; DevOps practices help with that.
What If We Don’t Have DevOps?
Here’s a little secret: every organization already uses DevOps in one way or another. The idea of DevOps isn’t just about having DevOps-specific tools to push changes from one environment to another; it’s about the process and methodology of how your organization implements changes. Copying one stored procedure from one database to another is, in fact, DevOps. But there are easier ways to do it than a manual process that relies on the DBA to deploy code or find drifts.
The days of dumping out your schemas to VS Code and looking manually for changes are over. If you’re lucky, you have a tool designed to compare development environments to production and show you the differences. Drifts in objects or schemas such as index differences, foreign keys missing, and incongruent column definitions can easily happen when the DBA is manually doing deployments. Modern tools allow you to push scripts from one environment to another and quickly make changes while keeping environments in sync.
Tool Up to Sync Up
If you aren’t using DevOps tools and have to manage changes through scripts, development and production environments can easily get out of sync. DBA xPress will generate those scripts for you and enable you to easily compare object differences between environments with the Schema Inspector feature.
Get started with a free download of DBA xPress and see for yourself what it can do.
Monica Rathbun is a Consultant at Denny Cherry and Associates Consulting and an ActualTech Media Contributing Expert. She has worked with databases for over 20 years and has been recognized as a Microsoft Data Platform MVP and VMware vExpert.