What is Database as a Service?
Database as a Service (DBaaS) is a cloud offering that provides users with a managed database. These services enable you to deploy, operate, and scale cloud databases without having to manage hosting or exact configurations. This is because DBaaS enables you to use primitives for management that abstract away the more complicated aspects of database use. These services enable users to manage databases through web user interfaces (UI) or API. Providers typically handle the responsibilities for backup, maintenance, and upgrading, leaving users only responsible for their data and access controls.
Azure Database Services
Azure offers three main managed services to make your database migration easier. These services are SQL Database, Cosmos DB, and Database for PostgreSQL.
Azure SQL Database
Azure SQL Database is a DBaaS that simulates SQL Server. It includes features for data discovery, managed migration, security, machine learning, and hybrid deployments. When using SQL Database, you have the option to deploy single databases, clustered databases with shared resources, or to recreate an entire SQL Server deployment.
Use cases for Azure SQL Database include:
- Software as a service (SaaS) – you can use hyperscaling and elastic pools to create multi-tenant databases with up to 100 TB of storage
- Business continuity – grants 99.995% service availability for mission critical workloads
Azure Cosmos DB
Azure Cosmos DB is a multi-modal DBaaS that supports a range of APIs, including SQL, Cassandra, Spark, and etcd. It grants users access to a globally distributed database with multi-master replication, autoscaling, and low latency operations. When you use Cosmos DB, you can choose between five consistency levels.
Use cases for Cosmos DB include:
- Web and mobile applications – you can use flexible schema and complex data types
- Gaming – can manage large bursts of requests, meet low-latency requirements, and enable social graphs
Azure Database for PostgreSQL
Azure Database for PostgreSQL is a DBaaS designed for use with PostgreSQL. It includes features for performance analysis, horizontal scalability, and built-in security. You can also integrate this service with a variety of tools, including Timescale, PostGIS, and Visual Studio Code. It supports use with Java, Ruby, Python, Node.js, and PHP.
Use cases for Azure Database for PostgreSQL include:
- Digital marketing – enables the storage of personalization data and integration with customer management systems
- Finance management – includes built-in security for financial applications
AWS Databases Services
AWS offers the widest variety of services when it comes to DBaaS offerings. Below are three of the most commonly used services you can choose from. Often, users adopt several of these services in their AWS implementation.
Amazon RDS is a relational database service that you can use as a host for Oracle, PostgreSQL, MariaDB, SQL Server, and Amazon Aurora data. Amazon Aurora is a relational database service that is proprietary to AWS. It is compatible with MySQL and PostgreSQL and is fully managed. RDS includes a centralized management console and also enables management through CLI and API. RDS includes features for automated provisioning, setup, backup, and updates.
Use cases for Amazon RDS include:
- eCommerce applications – supports the security, flexibility, and PCI compliance needed for financial workloads
- Mobile and online games – provides high availability and throughput for massive amounts of distributed, simultaneous connections
Amazon DynamoDB is a DBaaS you can use as a keyvalue and document store database. It includes features for automated backup and restoration, multimasters, in-memory caching, and multi-region use.
Use cases for Amazon DynamoDB include:
- Banking and finance – supports workloads for eventdriven transaction processing, change data capture, and fraud detection
- Software as a service (SaaS) – you can use it for content metadata stores, relationship graph data stores, and metadata caches
Amazon DocumentDB is a document database service. It provides access to a scalable, high-availability database that is MongoDB compatible. DocumentDB enables you to store, index, and query JSON files. It also supports independent scaling of storage and compute resources.
Use cases for Amazon DocumentDB include:
- Mobile and web applications – provides low-latency and high-performance with support for millions of requests per second
- Profile management – enables you to store user preferences, online transactions, and authentication profiles
Google Cloud Database Services
Google Cloud offers some of the easiest to use DBaaS offerings. Below are three popular options you can choose from.
Cloud SQL is a DBaaS that you can use for MySQL, PostgreSQL, and SQL Server-based applications. It includes features for automatic backup, replication, and failover. You can also integrate it with other Google Cloud services, including Google Kubernetes Engine and BigQuery.
Use cases for Cloud SQL include:
- Persistent storage for Microservices – provides a scalable database for containerized workloads.
- Application development and deployment – enables you to build, replicate, and scale databases for the development and testing of Kubernetes-based applications.
Cloud Spanner is a proprietary globally-distributed, enterprise-grade DBaaS. It is designed to enable a relational database structure with the horizontal scaling typical of non-relational databases. It supports strong consistency across rows and distributed resources, a 99.999% availability SLA, and built-in enterprise-grade security.
Use cases for Cloud Spanner include:
- eCommerce applications – offers high-availability with a guaranteed maximum downtime of 5 minutes
- Financial trading – supports global, synchronous replication of transactions for a unified, consistent, global view of data
Cloud Bigtable is a NoSQL DBaaS that you can use for operational and analytical workloads. It includes features for consistent sub-10 ms latency, automatic replication, automatic scaling, and support for machine learning applications. You can integrate it with BigQuery and Apache solutions.
Use cases for Cloud Bigtable include:
- Financial analysis – enables you to build models from historical patterns, store and consolidate market data, and consistently manage transactional data
- IoT applications – supports the ingestion and analysis of large volumes of time series and real-time data
Azure vs AWS vs Google: Who is the fairest of them all?
Selecting the DBaaS provider that is right for you requires carefully assessing your current environment and needs. This includes:
- How critical your workloads are and what uptime requirements you have
- What cloud services or tooling you’re already using
- Whether you are migrating data or starting from scratch
- What your final environment should be
All three providers offer solid services, depending on your needs. However, each does specialize in particular areas. If you are torn between similar services, consider the following strong points.
Azure offers the greatest support for migration with built-in tools for migration assessment, optimization and automation. It offers the most flexibility for both deployment and licensing. Azure also specializes in supporting hybrid resources, making it a good option for industries with strong privacy or compliance concerns.
AWS offers the broadest range of DBaaS offerings and the most cloud services in general. It’s services are high performance and provide innovative solutions that work smoothly in combination with traditional engines.
Google Cloud offers the most user friendly services and provides the best performance for workloads. Additionally, Google is hard to beat if you are operating containers with Kubernetes. It includes built-in tooling for the platform and makes optimization of databases attached to microservices simpler with native support.
Database as a Service cloud offerings can help you leverage cloud services, without having to manage the database. However, before choosing a managed service you should assess your project, to ensure the service fits your project requirements.
If you are interested in Azure, you can check out managed offerings for SQL Database, Cosmos DB, and Database for PostgreSQL. If you are using AWS for your project, you can take a look at Amazon RDS, Amazon DynamoDB, and Amazon DocumentDB. Managed Google Cloud offerings include Cloud SQL, Cloud Spanner, and Cloud Bigtable.
Each of the DBaaS options reviewed in this article offers a unique value, which can help you in a wide variety of applications. When assessing services, inventory your current infrastructure, consider your data privacy and security needs, decide on a budget, and then check if any of the DBaaS you are assessing can meet your requirements.