To make sure that we are all starting from the same point, I thought it would be prudent to clearly define the term “Database as a Service” (DbaaS), at least as I see it. As of the time that I wrote this post, there were no related pages at Wikipedia about Database as a Service or DbaaS. So I guess that means my options are wide open. But rather than coin my definition of Database as a Service at the beginning of this post, I’d prefer to explain some of my initial thoughts around DbaaS and then end the post with a concise definition. And I’d very much like to hear feedback from you to shape further discussions going forward.
The Principles of Database as a Service
Software as a Service (SaaS) has become all the rage in recent years for many reasons. For example, SaaS is attractive to the customer because it shifts the onus and cost of hardware and software deployment and maintenance from the customer to the vendor. SaaS also provides many benefits to the vendor, who can now develop and maintain the application on a single platform and see instantly how customers use features of their application. For a more thorough definition of SaaS and its benefits, try starting with Wikipedia’s page on SaaS.
DbaaS is nothing more than a focused realm within the greater field known as SaaS — it’s the delivery of database software and related physical database storage as a service. For something to be categorized as “Database as a Service,” I believe that it must meet the following three requirements.
- The service must be available to the customer on-demand, without any requirement for the installation and configuration of any hardware or software up-front.
- The service must be paid for by the customer on an as-used basis, without any requirement for a long-term contract or up-front payment. Examples of this might be monthly subscriptions per user, CPU usage, transactions, or storage (or some combination of the these).
- The provider is responsible for managing the service, without any requirement for the customer to maintain, upgrade, or otherwise administer their database.
Disagree? Did I miss any? Please give me your feedback.
Other Features of DbaaS
As future posts will detail, the DbaaS offerings that are starting to appear from various vendors provide many features that, while useful, are not necessarily core requirements for something to be classified as “Database as a Service.” For example, some DbaaS offerings are part of a bigger platform that’s delivered as a service (Platform as a Service, or PaaS), including an integrated development environment (IDE) for building and deploying co-located applications. In contrast, other service providers deliver just the database (without the platform) and expect that you will use your preferred language (Java, .NET, PHP, whatever) and toolset to build applications that are executed completely independent of the database service. One DbaaS might be based on a relational database management system (RDBMS) and expect your applications to use SQL for database access, while another might be based on some other type of database technology and have it’s own proprietary application programming interface (API). These few examples are just a smattering of features that I’m seeing today from emerging DbaaS. To help you understand this new technology space, I intend to produce future posts and eventually a set of comparative summaries that explain and contrast the features of various DbaaS offerings.
My Definition of Database as a Service
So, to end this post, let me give you my concise definition of Database as a Service.
Again, I welcome everyone’s feedback.