The Role of a DBA has Changed
Lessons From Postgres Vision 2018
Some months back now, I gave a presentation to my co-workers covering what I took away from Postgres Vision 2018. This series will cover changes I have made and actions I have implemented following the conference, in my own words (potentially borrowing some from my co-worker Aaron Gilmore).
Today, I will be sharing what I took away from Ken Rugg's (Chief Product and Strategy Officer at EnterpriseDB) talk: Postgres Vision Keynote | The Changing Role of the DBA in the Cloud
Amazon Web Services automated my job!
It's a dirty little secret; the days of DBA's tweaking Database Server configuration to optimize performance are quickly fading. These tasks are not dead yet, there's a long tail with infrastructure needs in many organizations, but outside of employment with cloud providers for a few select individuals the future of these tasks doesn't look bright.
Database Administrators now need to understand, benefits, costs, security, and scalability of both on site solutions as well as cloud platform offerings.
Truth be told, I have never worked in the sole capacity of "Server Jockey". I like optimizing processes as well as systems. I always seem to find a way to script automation, write code, review application code, improve monitoring, documentation, etcetera. Still, this message hit home, the reality is there is so much more I all could be doing to reduce implementation and education times for others within my company.
"You're a Database Administrator, but we NEED a Data Strategist."
This may have been the biggest gem I took away from the conference. The lightbulb turned on and I immediately started plotting improvements I could make. Organizations need their data professionals to better align with Engineering, Development Operations and other teams. Databases are only one small part of maximizing throughput and driving value. It is vital to reduce development friction, streamline processes, and proactively provide expertise to help avoid problems.
Let's face it, very few people spend much time thinking about Relational Algebra, how data is accessed/persisted (IO optimization), the minutiae of a particular RDBMS' (Relational Database Management System) Query Optimization Engine, MapReduce, or even the order of operations of a query. I should still bring the value this knowledge provides to the organization in a timely manner with an efficient and repeatable manner that ensures smooth deployment and maintenance.
Actions taken:
- Embed DBA's in Product Engineering Teams as a resource. DBA's now attend each team's daily standup and work with product / development to improve current systems and develop new features.
- Improve Git Flow and Repositories to setup for Infrastructure as Code, Automated Deployment and enable local development environments to be quickly setup without necessitating assistance.
- Seed data added to repositories containing migration scripts to build what is needed for the project. Specific data for running tests exists on appropriate environment branches.
- Provide localized project documentation to provide clarity from schema, server configuration and hardware. This documentation includes relational models, any code snippets for common DBA tasks, naming guidelines/ standards, external dependencies such as tools / extensions, DDL code per object, an overview of environments (hardware, who the primary administrator is, what uses it) as well as standard README and Contribute Guide for the project. We used a standard format for all of the repositories so it is easy for developers and DBA's to change teams as needed.
- (Work in Progress) Provide a Pattern Library - Evaluate other cloud based Data System offerings establishing plans in place to quickly provision, secure and monitor new systems. Provide developers information on when it is appropriate to select a particular Data System, what problems the service addresses (Data Patterns), Best Practices and boiler plate pattern specific examples.
What actions are you taking?
Thanks for reading! I will be posting more lessons learned from this conference and throughout my career going forward. I enjoy learning and would like to hear from you.
What are you doing to improve the development pipeline?
How are you keeping up with industry trends and changes?
How can I improve future articles to bring more value to you?