Advertisement

Modern Databases Shouldn’t Make You Choose Between Control and Automation

By on
Read more about author Tobias Ternström.

Today’s businesses rely on databases more than ever. Most applications need a database, from customer service and supply chain systems to e-commerce and retail delivery. Modern applications are often made up of multiple microservices that may each require their own database to maintain availability, flexibility, and performance. As a result, the sheer number of databases that organizations are dealing with is growing at an increasing pace. 

Gone are the days of a corporate standard of using a single database engine for all applications; instead, the variety of databases in use is also growing. While most applications running today, especially in enterprise organizations, use commercial databases like Oracle Database and Microsoft SQL Server, organizations are increasingly turning to open-source databases like PostgreSQL, MySQL, and MongoDB to support new products and services. 

The combination of using more and more databases, and more database engines, leaves enterprises with the hard job of managing hundreds to thousands of databases of varying database engines, often across both on-premises and public clouds.

Managing all these databases is a taxing task and makes it harder for organizations to innovate. Varying combinations of IT, database administration (DBA), and development teams end up spending too much of their time on important but tedious database administration tasks like upgrades and backups at the expense of higher-value tasks, such as database design, performance optimizations, and application development. Organizations scramble to roll out security patches while juggling developer requests for new database instances to support software development. As a result, developers end up waiting days, weeks, or even months to access the databases they need to make progress, stifling innovation and lengthening time-to-market for new products.

The good news is that there is a better way.

Database-as-a-Service

Database-as-a-Service (DBaaS) refers to software that enables users to setup, operate, and scale databases without having to know nor care about the exact implementations for the specific database. Typically, DBaaS simplifies and automates many of the day-to-day administrative tasks that today take up too much DBA time – upgrades, patching, cloning, backups, restores, etc. Importantly, leveraging DBaaS allows developers to self-service provisioning or cloning of the databases that they need with just a few clicks or API calls, often integrated into their CI/CD pipelines. No more waiting days and weeks to make progress.

The benefits of DBaaS are as straightforward as they are profound. By automating tedious administration tasks and enabling developers to self-service their database needs, DBAs and IT teams can spend more time on tasks that benefit and differentiate the business. Automation also ensures administrative tasks are run consistently across all databases, reducing the chance of human error. This is especially important for DBAs and IT teams managing hundreds or thousands of databases. 

Trading Control for Automation

However, one drawback to most traditional cloud-provider DBaaS is that they require you to trade control of database servers for automation (and the benefits automation delivers). Specifically, traditional cloud DBaaS offerings do not allow you to choose operating systems, operating system versions, database patch levels, or database extensions. You are stuck with whatever the default OSs, versions, and extensions the DBaaS provider chooses. This is for good reason, from the DBaaS provider’s point of view. The fewer variables at play, the easier to run and manage a DBaaS offering. But it’s limiting for customers.

For database administrators, the ability to choose the right operating systems, database versions, extensions, or simply the ability to login as administrator of the database instance to meet application and compliance requirements is necessary for effective database management. Maintaining control is also critical for ensuring that developers can use the appropriate database configurations or database extensions for a given application or microservice. Managing preferred operating systems, database versions, extensions, and specific security features like access permissions require a level of control that public cloud DBaaS products don’t provide.

Control and Automation

For a DBaaS offering to truly serve customers, it needs to automate administration tasks without sacrificing control of database servers. It must give users the flexibility to choose the right operating systems, versions, and database extensions to meet application and compliance requirements, while at the same time simplifying and automating patching, backups, and other administrative tasks that bog down DBA and IT teams.

Why is this so important? Consider a developer that is building a new microservice. The developer may decide that the best database for this type of service is PostgreSQL 13 and to solve a specific business problem, the best solution for the developer is to build a custom PostgreSQL database extension. If the developer is unable to use this custom PostgreSQL extension, she or he may not be able to build the application and meet, for example, performance objectives, which could be an important differentiator for the company’s product or service.

Of course, this is just one hypothetical example, but it illustrates the importance of maintaining the ability to customize databases to meet the needs of developers and automating administrative database tasks. Whatever DBaaS you consider, be sure to ask vendors if their offerings require you to trade control for automation. Because when it comes to DBaaS, business leaders and IT teams shouldn’t have to choose between the two. 

Leave a Reply