When you’ve been involved in data management for as long as I have, things are definitely bound to change. And things have changed, quite a lot, in fact.
Back when I started in IT, IMS was the primary database system used at most big enterprises and most of the computing was done on mainframe systems. Then, DB2 rose up and became the dominant mainframe database system, and it still is today. But enterprise computing has grown to encompass much more than the mainframe.
Things are much more heterogeneous today. Due to the advent of client/server computing in the 1990s, then internet and web-connectivity driving development, and the more recent growth of NoSQL databases, we are now managing more types of data on more platforms than we ever have before. And that means that managing data is a lot more complex.
This also means that DBAs need to possess expertise in cross-platform management and administration. “Cross-platform” implies both the computing environment, which can span the spectrum from mainframe to Linux to Windows to the cloud but also the DBMS in use, which can be RDBMSs such as Oracle, SQL Server, DB2, and PostgreSQL, as well as NoSQL knowledge and skills for platforms such as MongoDB, Cassandra, Neo4j, and many others.
To do that successfully requires automated solutions for change management, performance, and data movement, organization—and really all DBA tasks. Automation will be key as we move forward for many reasons. As the amount of data we must manage grows—and it is growing by leaps and bounds—we must be able to expand our capability to administer that data. Organizations are also not adding to their DBA staff. This means that we must automate or fail.
And speaking of automation, I’d be remiss if I did not mention the impact of DevOps on data management and DBAs. The processes performed by DBAs are part of the Ops in DevOps. It is my observation that Dev gets emphasized more than Ops when DevOps is implemented, but you can’t omit the Ops … at least not if you want to have functional, performing applications.
When DevOps is embraced by an organization, it should mean that DBAs get aligned more closely with development and applications than in the past. By deploying agile development, with DBAs participating in teams along with the developers, you get increased cooperation and communication between the folks coding the application (that’s Dev) and the folks developing and managing the database (that’s Ops, or the DBAs).
So, another overarching change has been that DBAs are working in teams with developers instead of in teams of other DBAs, at least for periods of time when development projects are very active. For some applications, a permanent DBA, or team of DBAs, may be assigned. For others, the DBA may rotate back and forth between the development team and a centralized DBA team.
Regardless of the pattern, DBAs are becoming more application-savvy. That’s a good thing because with improved application knowledge the DBA will be better able to administer the database for an application’s needs as the app moves from development to test to production.
Tooling and Automation
So far, so good, right? But I have to mention tooling and automation. DevOps works for developing code because of all the integrated DevOps tooling that automates and simplifies the development pipeline. By this I mean approaches such as Jenkins for coordinating and orchestrating the SDLC, Ansible for configuration and resource management, GitHub for source control, Docker to containerize the platform, and many more.
DBAs need the same type of tools to automate and integrate data management tasks into the DevOps pipeline. And no, it isn’t just using GitHub for Data Definition Language! It is more complex than that.
We need to automate and integrate change management, database and SQL performance, backup and recovery, data movement, and all the things that DBAs do, to succeed with DevOps for applications that require database access. And in today’s modern environment, that is most applications.
Summing It Up
To adapt to the changing database landscape, and ensure that we have modern data management practices and procedures, DBAs must be flexible, adaptable, and resilient as they work in an integrated way with a team. Today’s data professionals have to move faster and more nimbly than ever before.
A modern DBA cannot be one of those “curmudgeons in the corner” that all the developers avoided. Today’s modern DBA participates in development teams and integrates DBA tasks and procedures into the DevOps pipeline. DBAs need to understand the organization’s databases inside-and-out, but they also need application knowledge, management and communication skills, and a diverse set of tools to automate DBA and system administration processes and procedures.