Adoption of agile DevOps development techniques is racing ahead. Well over three-fourths of IT decision-makers (83%) are planning to take advantage of its speed, quality, and security advantages, according to Puppet’s 2021 State of DevOps Report.
But processes for provisioning, maintaining, and delivering database management systems to developers haven’t kept pace with the high levels of automation inherent in DevOps. In the days of “waterfall” development, IT organizations typically measured the time needed to provision database instances for developers in days or weeks. Some still do.
“When the modern software development movement began, the database was not included in the conversation,” said Jeff Kelly, senior product marketing manager for Nutanix’s Database Service.
There’s a reason for caution. Databases manage data. Sometimes critical or even regulated data, like financial data and personally identifiable information. It is the database administrator’s job to ensure all databases – whether used for development purposes and production use cases, deployed on-premises or in the public cloud, relational and non-relational in nature – are performant, scalable, available, secure and backed up.
Explosion of Choices
But performing all those tasks manually is no longer realistic. Not only does software development move faster today, but there are also many more databases to choose from.
Not long ago most applications were built for relational engines like Oracle or MySQL. But in recent years a profusion of NoSQL databases like key-value stores, document databases, graph engines, spatial and time-series databases have created myriad new options.
“There’s been an explosion of databases, and developers have more choices than ever,” Kelly said. “They want to use the ones that make the most sense for their applications.”
It isn’t uncommon for even a small mobile application to touch three or four databases. In a microservices environment, each service has a database, and there can be thousands of them loosely coupled together.
And it’s not uncommon for even mid-sized organizations to have hundreds, even thousands of databases running across on-premises data centers and one or more public clouds. Database automation makes it possible to manage that growing complexity.
Essentials to Ease Database Bottlenecks
Traditional approaches to database provisioning and maintenance have become a bottleneck for agile software operations. The high levels of automation that DevOps teams enjoy need to trickle down to the database layer, according to Kelly.
He pointed out four essential features developers need.
1. Self-provisioning – Developers have been provisioning compute instances for years. However, this option is only now becoming available for databases. Developers should be able to launch a database as quickly as they spin up a virtual machine or container.
2. Automated patching and backups - Patching is a mundane but necessary task that no DBA enjoys. Patching a dozen different database instances takes hours and often must be done late at night or on weekends to minimize downtime. And for e-commerce companies, any downtime is a problem.
An automated patching solution should not only keep fixes up to date, said Kelly, but track change histories and provide an audit trail for quality control and compliance purposes.
Backups are another necessary evil. Depending on whether they’re created locally or in the cloud, a 100-GB database backup can take up to 48 hours and require human oversight to monitor for failures. Restarts can significantly increase these times.
3. Database customization - Developers need access to many different types and configurations of databases depending on the applications and microservices they are building. It is important that automating database administrative tasks doesn’t come at the expense of the ability to customize database servers. DBAs and developers need to retain the flexibility to choose the right operating systems, database versions, and database extensions to meet application and compliance requirements.
4. Hybrid multicloud support - Most enterprises and midsize organizations today are operating in or plan to move to a hybrid multicloud model. That means they have applications and databases running on-premises, in one or more public clouds, and sometimes in colocation facilities as well. To be effective, any database automation solution needs to run across all these environments, ideally with a single control plane.
The Database-as-a-Service Option
Many of the capabilities just described are now available in a new class of cloud applications called database-as-a-service (DBaaS). These are fully managed services with automated patching, updates, backups, version control, and self-provisioning.
Cloud DBaaS is a good option if developers are working only with applications and databases running in a single cloud. However, the reality is that most organizations run applications and databases across more than one cloud, including private cloud and on-premises datacenters.
“Customers will have some workloads that stay on-prem, some that go to the cloud, and some that may run in colocation facilities or edge locations,” Kelly said. “A DBaaS that works with only one cloud has limited value.”
For DBAs and developers running databases in two or more public clouds, they will need to work with two or more cloud DBaaS. A limitation of working with multiple cloud DBaaS is that each provider has its own administrative dashboard and provisioning features. Each also has its collection of plug-ins for tasks such as monitoring agents that must be enabled and configured individually.
Furthermore, on-premises applications aren’t going away anytime soon. In some highly regulated industries, for the foreseeable future, most applications will be deployed on local infrastructure. Cloud DBaaS is of no help there.
In addition, most organizations today run multiple types of databases. Many enterprise applications use commercial databases like Oracle and SQL Server, while developers often choose open source databases like PostgreSQL and MongoDB to support new, modern applications. For organizations running multiple databases, this can add up to significant complexity. A better option is to use a DBaaS solution that is independent of the underlying infrastructure, meaning it can be used both on-premises and on public clouds.
Support for multiple database types is also critical. This enables fleets of relational and NoSQL engines to be managed from a single console and application program interface. However, DBAs still have the flexibility to define custom services and install extensions on individual databases. Kelly said a hybrid multicloud DBaaS not only simplifies the DBA’s job but provides developers with a self-service option to provision, recover or clone databases from production and test environments, no matter where their applications and databases are deployed.
“The goal of automation is to reduce the administrative burden on DBAs, so they can focus on higher-value tasks – things like database architecture and performance optimization – that have an impact on the customer experience or otherwise deliver real value to the business,” said Kelly.
Interest and investment is moving in this direction. By some estimates, the global cloud database and DBaaS market is expected to grow from about $12 billion in 2020 to $24.8 billion by 2025, at a CAGR of 15.7%.
Paul Gillin is a Forecast contributing writer and B2B content marketing strategist. He was founding editor-in-chief of B2B technology publisher TechTarget and editor-in-chief and executive editor of Computerworld, a tech newsweekly, for 12 years.
© 2022 Nutanix, Inc. All rights reserved. For additional legal information, please go here.