While developers increasingly employ new “purpose-built” database management systems (DBMS), such as Cassandra, Couchbase, MongoDB, MySQL, and Redis that are often a better fit for a specific application, IT faces the challenges of managing all these systems. While the advent of private cloud technologies has helped dramatically improve enterprise IT’s responsiveness, this new, higher level of efficiency has not been fully realized for database management. Each database has its own unique functionality, configuration and management requirements. As a result, enterprise IT can find themselves spending an inordinate amount of time managing a diverse mix of SQL and NoSQL database technologies.
Database as a Service (DBaaS) is an emerging DBMS paradigm that delivers on the efficiency of the cloud and provides a scalable framework for managing disparate databases. DBaaS allows IT, developers and DevOps to administer a wide range of database technologies using a single, common management infrastructure. The result is that routine tasks like provisioning, and managing regular administrative tasks like clustering, replication, backup and restore are handled in a simple, unified way.
The article will look at how this is accomplished using OpenStack’s approach to DBaaS, Trove. OpenStack is emerging as the dominant private cloud operating system, and OpenStack Trove is rapidly becoming the solution for provisioning and managing all of the relational and non-relational database resources within an enterprise.
Getting Started with OpenStack
There are three easy ways to get started with OpenStack.
- Try one of the many OpenStack public clouds in production around the world listed here.
- Run an OpenStack cloud on your laptop (or even inside a virtual machine) using devstack. This is ideal for seeing what OpenStack looks like from an admin or user perspective.
- Installing OpenStack through a commercial software distribution. You can find those listed here.
All of these options, along with additional information and links, can be found on the “How To Get Started With OpenStack” page.
Database as a Service with OpenStack Trove
The OpenStack approach to DBaaS (Trove) is fundamentally different from other attempts at DBaaS in that it treats all DBMS technologies in the same manner. The platform supports a variety of relational and NoSQL databases, allowing developers to choose the best database for their application rather than being locked into a particular technology.
OpenStack Trove is an open source implementation of a DBaaS platform, backed by an active and diverse development community that continues to expand its capabilities. With Trove, user get access to a common management and provisioning API for a heterogeneous collection of DBMS data stores and software products, utilizing a mechanism of plug-ins. Administrators can quickly provision and operate databases through a Web-based UI (Horizon), a command line interface, or a REST API.
OpenStack highlights include:
- Self-service provisioning for users, providing on-demand database capacity
- Rapid provisioning so admins can offer a diverse mix of database technologies with various configurations that can be replicated on demand
- Common administrative tasks like clustering, replication, backup and restore are managed in a simple, unified way
- Integration as part of OpenStack and its other components like Nova (compute), Swift (object storage) and Cinder (block storage)
Provisioning a Database
When a database is provisioned in OpenStack Trove, it is launched from a pre-configured guest image. Guest images encapsulate database administration best practices, helping to ensure that the system is operated and managed properly without requiring the IT staff to be experts on every database technology.
Trove orchestrates the provisioning process by calling on underlying OpenStack services such as Nova (compute) and Cinder (storage).
Beyond basic provisioning, Trove automates the lifecycle management of the database instances it provisions. When a backup is requested, Trove initiates the process and stores the backup on the Swift object store. Similarly, Trove will provision and manage data backup, clustering and replication when requested.
When a user wishes to “resize” the database, either by changing the storage or compute resources assigned to it, Trove orchestrates the entire process including the migration of data.
Also, a step-by-step guide for installing and getting started with Trove is available here.
Database management systems remain vitally important to enterprise computing while the diversity of database types employed by enterprises is increasing. We believe that Database as a Service provides a scalable framework for cost-effectively managing these disparate databases.
The end result is that developers can use the DBMS that best fits a specific application, while the administration and management of routine tasks like provisioning, configuring and monitoring is handled via the database as a service. This is the logical progression we see as cloud computing becomes more prevalent.