Ken Rugg, Founder, CEO and Board Member, Tesora
Until recently, IT organizations largely controlled how database technologies were deployed and managed. If a developer needed one to support a new application, they would go to IT for assistance. After a discussion of requirements, capacity planning, and budget, IT would then requisition and configure a machine with the “corporate standard database” for the developer. This process could take anywhere from a few days to a few months. Once the machine was setup, the IT team would manage the server going forward, accounting for things like backups, availability, and disaster recovery.
That’s all changing now. Agile development methods and continuous integration dictate that developers need to provision new systems in minutes or hours, not days or weeks. In addition, the proliferation of new database technologies from NoSQL to NewSQL means that the old “one size fits all” approach to data management where every application is serviced by the same corporate standard data management technology is unacceptable.
In response to this, developers today are actively employing new ways to provision and manage database capacity, often leveraging virtualization and the cloud. In some cases, they are simply going the “do-it-yourself” route and provisioning databases on virtual machines of their own. Of course, this means yet one more technology that they need to master and also leaves them “holding the bag” on all management and administration going forward. A better option is database as a service in the public cloud which offers a wide range of options that are available on-demand with little more than the swipe of a credit card. While this approach allows developers to quickly and easily gain access to a managed database instance, it can also create a host of new governance and security challenges for the enterprise.
To address this, enterprises are now turning to private cloud database as a service technology to allow their developers to “have their cake and eat it too.” IT can ensure that enterprise polices are adhered to while still providing the same simple, self-service access to database capacity that is standard on the public cloud.
To convince developers to use new database services in the enterprise’s private cloud, however, these services need to be competitive with what the public cloud offers. Otherwise the developers will simply revert back to using the services from Amazon and others. The first step in providing a compelling offering is to know the competition. To this end let’s look at what the public cloud currently has to offer.
Public Cloud Options
In the public cloud, the database service is typically operated by the provider of the infrastructure services or by another vendor building on those services. Customers select a specific public cloud provider for their overall infrastructure and then choose from database technologies they support. Some cloud platforms such as Amazon Web Services (AWS), present several options for SQL and NoSQL databases, while others are much more limited. However, those details aside, all of these public cloud DBaaS offerings provide the benefits of DBaaS in terms of having a quick and easy way to access database services.
Even when a variety of database technologies are offered on a particular cloud and supported by a single vendor, the offerings may be quite different. For example, the market leader in public cloud computing, Amazon Web Services, provides five distinct database services:
Amazon Relational Database Service (Amazon RDS) providesthe ability to provision single instances (possibly with replicas) of various relational database servers. The options includeMicrosoft SQL Server, MySQL, Oracle, PostgreSQL and Amazon’s own proprietary MySQL variant, Aurora.
Amazon Redshift lets users create their own petabyte-scale SQL data warehouses across clusters of machines, allowing them to analyze data using existing business intelligence tools.
Amazon DynamoDB is a scalable, multi-tenant NoSQL database service that provides simple key-value lookup access to database capacity within a shared pool of database resources.
Amazon SimpleDB is a very simple non-relational data store that is well-suited to smaller use cases.
Amazon ElastiCache enables information to be retrieved from fast, managed, in-memory caches and is backed by either Memcached or Redis.
While other IaaS providers may not offer the same diversity as Amazon, there are numerous DBaaS options provided by other cloud service providers as shown by the table that accompanies this article.
Private Cloud Alternatives
That’s a lot of great options and a lot of capabilities for a CIO to compete against! The good news is that there is now software available that makes it possible for the IT organization to deliver a competitive database service that can match the capabilities of the public cloud. Let’s look at some of the products available today that allow enterprises to operate a Database as a Service in their own private clouds.
VMware vFabric Data Director for provisioning SQL databases on VMware’s vSphere infrastructure with capabilities for easy cloning, backups, snapshots and restores. Unfortunately, none of the NoSQL database technologies are currently supported.
Oracle Enterprise manager-With the introduction of multi-tenant architecture in Oracle Database 12c, it’s possible to provide on-demand database capacity through the use of “pluggable databases.” Of course, this offering is limited to providing instances of Oracle Database.
Cloudant Local–IBM has recently introduced an on-premise version of its CloudantDBaaS. As with Oracle’s offering, however, it is limited to only supporting a single database technology, the NoSQL database CouchDB.
OpenStack Trove–OpenStack’s DBaaS project, Trove provides an open source platform to deliver a multi-database DBaaS supporting a wide variety of both SQL and NoSQL databases.
All of these options automate common administrative tasks including provisioning, deployment, configuration, tuning, monitoring, backups, and replication for the databases that they support. This automation reduces the need for a large staff of experts on each of databases offered.
When it comes to support for multiple databases, however, OpenStack Trove stands out. OnlyTrove provides a single framework within which it is possible to operate many instances of a variety of different DBMS technologies. Trove currently supports both SQL and NoSQL database technologies that include Cassandra, CouchBase, MariaDB, MongoDB, MySQL, Oracle, Percona Server, PostgreSQL and Redis with several more currently under development.
Trove accomplishes this by utilizing plug-ins, called Guest Agents, which implement the data store specific functionality. For example, backing up a MongoDB instance may use a very different approach than backing up an instance of MySQL, however the developer does not have to concern themself with this detail. This way, administration and operations for a diverse set of database technologies can be unified and simplified through a standard set of RESTful APIs.
In addition to this, OpenStack Trove also offers the following the features and associated benefits:
Self-service provisioning providing on-demand capacity and greater flexibility than other DBaaS platforms.
Simple management interface for many database management systems–a common interface to provision, deploy, monitor and administer databases–that translates to lower training cost.
Fully integrated with open source OpenStack, available under the Apache License.
Clearly, database in the cloud delivered on demand is the future. Developers need to take advantage of new database technologies and they need to do so with ever increasing agility. While the public cloud provides many great options in this area, there are now ways for enterprises to provide similar capabilities within their own private clouds. With the agility and choice of the public cloud combined with the economics and control of traditional data center, private cloud DBaaS platforms can deliver the best of both worlds.
There is a better tomorrow where databases are far easier and quicker to set up, get running and manage. The time is ripe for you to pick the one that works best for you.