When searching for a suitable Database-as-a-Service offering, sometimes one can’t see the wood for the trees. Nearly all of the big players in public cloud business offer some kind of database service. Besides there exist plenty of smaller providers, most of them offering specific database implementations.
The above picture is far away from being complete, but it kind of shows how many players are out there offering database as a service. I picked some vendors to look at different Database-as-a-Service offerings.
When talking about DBaaS most people think about traditional relational database management systems. In contrast to traditional IT, the use of NoSQL databases is pretty popular in cloud environments to overcome the limitations of relational database technology for use with modern web applications. Basically NoSQL databases have the following advantages over classic RDBMS when it comes to running databases in a cloud:
- Horizontally scalable (scaling out).
- Bigger Data Handling Capability (e.g. for big data)
- Many NoSQL stores compromise consistency in favor of availability, partition tolerance, and speed.
Examples for popular NoSQL databases are Apache CouchDB, MongoDB, redis and Apache Cassandra. If you are interested in NoSQL topic, take a look at https://www.mongodb.com/nosql-explained for a detailed explanation of this technology.
Most Database-as-a-Service providers offer classic RDBMS as well as NoSQL databases. All offerings have different characteristics. Some are based on publicly available, others on proprietary technology.
In the sections below you will find several tables which describe available DBaaS offerings by service provider. I only looked at offerings which are part of “official” DBaaS offerings of the cloud service provider. I did not cover offerings which may be purchased from kind of a given marketplace run by the cloud service provider. Also since cloud offerings change at a rapid pace, it may already be outdated at time of publishing 🙂
Relational database offerings
Most of the big players offer some kind of relational database as a service. Exceptions are specialized companies like redislab which do offer a cloud service for their own product redis cache in this case
Technologies used by most of the companies are either MySQL or PostgreSQL. For those of you which are searching for a vendor specific database technology such as Microsoft SQL, IBM DB2 or Oracle DB, this is kind of a no-brainer. For the big players in cloud business, so far only the owners of the respective technology are also providing corresponding offerings. With the exception of Amazon AWS whose Amazon RDS service offers quite a variety of technologies to choose from. Of course other vendors do also offer various technologies through their marketplaces. However these offerings are mainly provided by a smaller 3rd parties like clearDB or elephantSQL.
All the above mentioned technologies have in common that they are also available for on premise environments which can be kind of relevant depending on your use case.
In contrast to that, Amazon as well as Google provide kind of proprietary cloud-only relational database solutions to their customers. Google SQL as well as Amazon RDS for Aurora are only available as public cloud offerings. These products are highly optimized for use in public cloud and it may be the best choice depending on the specific use case. However one has to mention that using such an offering may result in a vendor lock-in.
|Microsoft Azure||SQL Database, MySQL Database1|
|Amazon AWS||RDS (MySQL, PostgreSQL, Oracle, Microsoft SQL)|
|Google Cloud||Cloud SQL|
|RedHat OpenShift||PostgreSQL, MySQL, SQLite|
|IBM Bluemix||DB2, MySQL1, PostgreSQL1|
1 Provided by 3rd party cloud service provider (either ClearDB or elephantSQL)
NoSQL database offerings
NoSQL database as a service offerings are mostly found with big players in cloud business. Microsoft, Amazon and Google all provide NoSQL databases for customers. However one has to be aware of the fact that all these offerings are based on a proprietary technology. These database offerings are highly optimized for use with cloud native applications and are probably first choice when creating new, elastic web applications in the cloud.
But making use of these database offerings can be kind of a point of no return to an on premise environment since technology is not available outside the cloud. And since moving to another cloud provider is nearly impossible because all of them use other proprietary technology, one need to migrate from one technology to another which can cost quite some money. One has to be aware that using such proprietary NoSQL offerings results in a pretty strong vendor lock-in.
There exist also some providers which heavily rely on publicly available technology for their NoSQL offerings. Mostly smaller players such as Iris Couch (for Apache CouchDB) or MongoLab (for MongoDB) are offering DBaaS based on open technology. But also the bigger cloud service providers sometimes offer NoSQL database solutions based on publicly available technology. Most of them are using MongoDB as underlying technology. However, usually these offerings are provided through marketplace and a 3rd party provider like MongoLab. But The exception proves the rule: IBM Cloudant is available directly from IBM and based on CouchDB.
In any case, if you like to make use of an NoSQL DBaaS offering, make sure you think about choosing the right technology and provider. To prevent vendor lock-in, it may be an option to prefer DBaaS offerings of smaller cloud service providers which are based on open, widely available technology.
|Microsoft Azure||Azure DocumentDB, MongoDB1|
|Google Cloud||Cloud Datastore, Cloud Bigtable|
|IBM Bluemix||Cloudant, MongoDB1|
1 Provided by 3rd party cloud service provider (MongoLab)
2 Coming soon
Particular database offerings and NoSQL variants
Besides common relational and NoSQL database offerings, there exist other database offerings for specific workloads like data warehouse / big data and in-memory caching. For the data warehouse offerings the same is true as for NoSQL database offerings: most of them are only available as public cloud offerings. The big vendors like Google, Amazon as well as IBM already provide services for data warehouse implementations. Microsoft announced its SQL data warehouse service back in April but this one is still in preview.
Besides Redislab who offer their own product redis cache as a service, in memory caches are also available from Amazon, Google, Microsoft and IBM whereas Microsoft and IBM offer a redis cache implementation to their customers. Amazon as well as Google have their own implementations.
|Provider||Data Warehouse and In-Memory Cache Offerings
|Microsoft Azure||SQL Data Warehouse2, RedisCache, Managed Cache Service|
|Amazon AWS||Redshift, ElastiCache|
|Google Cloud||Cloud BigQuery, Memcache|
|IBM Bluemix||dashDB, Redis1|
1 Provided by 3rd party cloud service provider (redislab)
2 Coming soon
Most big players in cloud business offer database as a service. However the mostly rely on their own implementations for RDBMS and NoSQL. Customers have to keep in mind that this fact leads to a vendor lock in and that the investment may be higher when switching to another cloud provider or technology.
Some of the big vendors also offer open source database technology, like Microsoft and IBM with MySQL and MongoDB. However one has to be aware that these offerings are not provided by the vendors itself but by a 3rd party instead. Mostly these offerings are based on services provided by smaller players, like ClearDB, Mongolab or redislab, which specialize in one database technology. If there is a need for a very specific database technology, it may make sense to choose a smaller provider over one of the big players to make use of their knowledge and their service in this particular area.
Pricing can be very difficult to compare between different providers. Most of the time, there is a free plan which can be chosen but price range goes up to several 1000$ per month of course depending on performance. Also performance can be very hard to compare between different vendors. Some use kind of proprietary units to measure performance others specify ram, storage and concurrent connections to differ their plans.
One has to keep in mind, that although the database is running in the cloud, high availability is not necessarily provided. Often only higher priced plans offer high availability and redundancy or it may be available as an option.