This week I had an interesting discussion with a colleague. I showed him this blog and he claimed there is no such thing as a DevOps DBA. According to him a DevOps team is a single team with different disciplines, which is responsible for delivering software and the systems they run on. They do the dev and the ops, and system engineers become obsolete this way. But, he argued, a DBA is different – it’s a specialist function, and hence doesn’t fit in a devops team.
I can agree on that, but do you need to be in a DevOps team to call yourself DevOps DBA? What is the definition of a DevOps DBA, anyway? If you search the Internet you’ll find a handful of vacancies for DevOps DBA Engineers (about 3500 results) and if you search for “SQL Server DevOps DBA”, you’ll find even less (about 750 results). It’s hard to find a definition for a DevOps DBA, which means it’s time to take a quick dive into the world of DevOps.
The place we need to go to is the DevOps Wiki page, which defines DevOps as:
“DevOps (a blend of “development” and “operations”) is a software development method that stresses communication, collaboration (information sharing and web service usage), integration, automation and measurement between software developers and Information Technology (IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services and to improve operations performance – quality assurance.”
In short: DevOps is a set of practices arising in response to the interdependencies between software development and IT operations, with the aim to rapidly produce software products and services. But what are those practices? Well, the next section on the Wiki talks about goals of a DevOps approach, starting with improved deployment frequency. Furthermore, it says that very often automation supports this objective. Ah, there you have it: the essential practice that lies at the heart of DevOps is automation! But wait, there’s more. The section also says: “DevOps aids in software application release management for an organization by standardizing development environments.” So DevOps is also about standardization. That makes sense: standardization comes hand-in-hand with automation.
Reading further, the section that talks about the role of DevOps in Continuous Deployment says that Continuous Deployment or Continuous Delivery may require a DevOps awareness or orientation program (although it need not be described as such). Since we now know DevOps is a method to automate and standardize, this makes sense as, to achieve Continuous Deployment or Continuous Delivery, you better automate your Software/Database Delivery Pipeline.
The Visual Model shows DevOps as the intersection of development, technology operations and quality assurance. If you strictly look at it this way, there is no exact place in DevOps for DBA’s. But as a good DBA you already collaborate with the different departments, right? RIGHT? In a sense, DBAs who collaborate closely with the different departments are already ‘doing’ DevOps (or at least aspects of it, and probably without even knowing it!).
To wrap up my musings, was my colleague right or wrong? It depends from which angle you look at it. Looking at DevOps as the visual model does, there is no place for a DBA in a team with a developer, a test engineer and a system engineer. If a DBA builds and maintains an automated Database Deployment Pipeline, collaborating closely with development, technology operations and quality assurance, I think you can label them as a DevOps DBA.