Database
as a Service

MySQL and NoSQL

Read more

Database as a Service

Database-as-a-Service (DaaS) is a service that is managed by a cloud operator (public or private) that supports applications, without the application team assuming responsibility for traditional database administration functions. With a DaaS, the application developers should not need to be database experts, nor should they have to hire a database administrator (DBA) to maintain the database. True DaaS nirvana will be achieved when application developers can simply call a database service and it works without even having to consider the database. This would mean that the database would seamlessly scale and it would be maintained, upgraded, backed-up and handle server failure, all without impacting the developer in any way. From the developer’s perspective, this is the definition of DaaS.

How is DaaS Implemented

In order to provide a complete DaaS solution across large numbers of customers, the cloud providers need a high-degree of automation. unctions that have a regular time-based interval, like backups, can be scheduled and batched. Many o ther functions, such as elastic scale-out can be automated based on certain business rules. For example, providing a certain quality of service (QoS) according to the service level agreement (SLA) might require limiting databases to a certain number of connections or a peak level of CPU utilization, or some other criteria. When this criterion is exceeded, the DaaS might automatically add a new database instance to share the load. The cloud provider also needs the ability to automate the creation and configuration of database instances. Much of the database administration process can be automated in this fashion, but in order to achieve this level of automation, the database management system (DBMS) underlying the DaaS must expose these functions via an application programming interface (API).

DaaS: Automating Database Administration

Cloud operators must work on hundreds, thousands or even tens of thousands of databases at the same time. This requires automation. In order to automate these functions in a flexible manner, the DaaS solution must provide an API to the cloud operator. The standard API model used for cloud functions is REST (representational state transfer). One such interface that is starting to gain popularity is Trove for OpenStack, based on RedDwarf from Brian Aker’s team at HPCloud. Trove is still evolving, but it provides a standard mechanism for OpenStack cloud providers to automate many of the DaaS functions exposed via MySQL.

The DBMS for DaaS

The ultimate DaaS requires full virtualization of the database and 100% compatibility with MySQL. There is only one solution that accomplishes both of these goals: ScaleDB. Because ScaleDB plugs into MySQL via the standard storage engine API, it exploits the entire MySQL ecosystem, without modification. ScaleDB also enables database nodes to scale elastically, while enabling them to operate over shared data under the guidance of a distributed lock manager. In order to provide true DaaS capabilities, the underlying database must also support the following capabilities: 1, The ability to move database instances on the fly: Whether you need to move a database instance because of a busy server or network segment—to provide QoS—or to move to a larger or smaller instance, this is a core requirement of the DBMS upon which a DaaS is built. 2, High-Availability: A DaaS must simply work, it cannot fail, or users will start to lose faith in having someone else run their database and they’ll start running their own database. 3, Elasticity: The database must be able to scale onto additional servers. If the database cannot burst onto other servers, then the cloud is forced to dedicate servers to each database and run them at low utilization. This undermines the core business model of the cloud. 4, No Change to Applications: If the DaaS requires modifications to the application, as is required with sharding to handle routing and cross-shard functions like joins, then scaling is not seamless. Seamless scaling is a requirement for a DaaS solution.

DaaS: The Ultimate Goal

Cloud providers want to offer the DaaS nirvana” described above. In order to provide a complete DaaS solution across large numbers of customers, the cloud providers need a high-degree of automation. unctions that have a regular time-based interval, like backups, can be scheduled and batched. Many o ther functions, such as elastic scThe ultimate goal of a DaaS is that the customer doesn’t have to think about the database. Today, cloud users don’t have to think about server instances, storage and networking, they just work. Virtualization enables clouds to provide these services to customers while automating much of the traditional pain of buying, installing, configuring and managing these capabilities. Now database virtualization is doing the same thing for the cloud database and it is being provided as Database as a Service (DaaS).

Contact us to discuss how we can assist to build your new system.