Get started on your path to becoming a ScyllaDB NoSQL database expert.Take a Course
Database as a service (DBaaS) is a managed database service that offers database access without demanding software installation, configuration, or the setup of physical hardware.
Traditionally databases were installed in on-premises environments. But with the advent of the public cloud, many of these traditional databases simply underwent a “lift-and-shift” to public cloud servers. They were not significantly rearchitected to take advantage of the cloud. They were merely deployed there instead. Cloud databases could be deployed to private, public, hybrid cloud or multi-cloud environments. Today, the term cloud database usually refers to a database offered via the database-as-a-service model.
DBaaS software or services enable users to quickly benefit as the database as a service (DBaaS) provider handles most administrative tasks and maintenance. Under the DBaaS model, the DBaaS companies delivers a private cloud service and maintains the physical infrastructure and database. The user retains control over the contents and usage.
Both relational and NoSQL database DBaaS offerings are available. Relational DBaaS services make use of an SQL database for traditional database management systems (DBMS) such as Db2, MySQL, Oracle, and SQL Server as well as cloud-only database systems such as Azure and Amazon RDS. NoSQL DBaaS offerings include various types of DBMS, including document, graph, key/value, and wide column stores.
DBaaS providers host data and database infrastructure while enabling access through API endpoints. They follow DBaaS best practices and operate the databases, handling backup, failover, rapid provisioning, resiliency, scalability, and restoration.
Most DBaaS providers also typically offer features such as alerts and notifications, monitoring, constant support, and geo-replication for backups and availability. The service provider manages all administrative tasks and maintenance, so users benefit from the database without overhead.
The DBaaS database engine functions after transferring/ingesting the data in nearly the same way as an self-managed installation.
The database as a service (DBaaS) model allows the development team to deploy and access a database without worrying about hardware purchase/setup, database installation and configuration, or database maintenance and administration. The database runs on the service provider’s cloud infrastructure (or the user’s own cloud infrastructure) and the service provider offers administrative, database management, maintenance, and operational tasks to the end-user.
DBaaS offerings generally provide automation for backup and restores, health and high availability monitoring, patching and upgrading, provisioning, scaling, and security. By optimizing and outsourcing infrastructure management, the DBaaS model enables development teams to focus on their applications and leave database management to the vendor, who provides expert 24/7 services and support.
There are various models for database as a service architecture or DBaaS architecture. They can run on the service provider’s cloud infrastructure or the user’s own cloud infrastructure. The latter is sometimes referred to as a Bring Your Own Account (BYOA) model.
Understanding basic and premium database as a service features is critical to selecting the best option for your organization. At its most basic, database as a service in cloud computing is an offering of managed services and database access that does not require software installation, configuration, or the setup of physical hardware. And while the service provider handles most administrative tasks and maintenance, the other details in structure and options can vary.
Here are a few important issues to consider:
Many teams prefer to adopt a DBaaS because it relieves teams from the time and hassle of dealing with their database, enabling them to focus on their product. The graphic below explains what teams should plan to continue managing, and what they can expect a DBaaS vendor to handle.
What you are responsible for with a cloud-hosted self-managed database (left) versus with a database-as-a-service (right).
As a result, cloud database management is typically much simpler. The major difference between DBaaS and self-managed deployments is the amount of time-consuming back-end administration required.
Types of DBaaS solutions
DBaaS offerings are available based on both open source and commercial databases. The latest Gartner Magic Quadrant for Cloud Database Management Systems features many of the DBaaS offerings provided by the largest vendors in the space (Gartner clients). This includes DBaaS solutions by Microsoft, Amazon, Oracle, and Google. Other notable database-as-a-service offerings include:
For NoSQL (wide column, document, key-value…):
For distributed SQL/”NewSQL”:
The DBaaS model is ideal for fast-moving teams that do not want to worry about their database. Relying on DBaaS providers for database maintenance and service allows organizations of any size to build and support systems and applications that they otherwise could not afford to implement. DBaaS is also a popular option for teams that need to design and deploy databases for complex, scaling, distributed apps.
The DBaaS model may be less than ideal for workloads involving data with strict regulatory requirements or mission-critical applications that demand 99.999% uptime and optimal performance. In these cases, self-managed implementation may be optimal.
There are several advantages of a database as a service approach. The DBaaS model enables companies of all kinds to implement applications and systems that they otherwise could not afford to build and support without a traditional self-managed database.
DBaaS benefits include the following:
The DBaaS model enables your team to get started fast and evolve as your projects grow. You can choose an option that fits your current workload and purchasing preferences, then seamlessly evolve it over time. You can select from a range of servers as well as monthly or annual pricing options. You can start small with a cluster for development and then increase the size of the cluster for full-scale testing and QA, and then even further as you scale to meet your production deployment requirements.
Expert database management
A primary benefit of using a DBaaS solution is that a team of experts from the DBaaS vendor manage your cluster. The DBaaS vendor will perform monitoring, backup, restore, node repairs, cluster resize operations, nodes management, apply hotfixes and upgrades. You are only responsible for managing your application and application-specific database requirements such as schema design, database sizing, infrastructure selection, and capacity planning.
Reduced hassle and overhead
With a DBaaS solution, your team does not need to develop or hire specialized resources, such as database administrators, DevOps, and security personnel to manage the database. You also don’t need to select hardware, purchase it, wait for it to arrive, install it, or set it up, or maintain it, thus saving on hardware datacenter techs.
All of the best DBaaS vendors make significant investments in security. Most cloud based database as a service vendors have a far more secure way to protect sensitive data than an in-house team. This might include single-tenant hardened security, encrypted backups, key management, hot fixes for the latest security updates, as well as Virtual Private Cloud (VPC) peering.
Distributed DBaaS usually replicate your data across multiple availability zones within a region so there’s no single point of failure. They also allow you to more replicas and expand your cluster to multiple data centers, as you wish. Centralized DBaaS secure data through remote server backups in the event of an equipment failure, a natural disaster, or a power outage.
Disadvantages of DBaaS include the following:
Cost at Scale
The most commonly cited challenge is finding affordable DBaaS solutions and achieving cost at scale.
No matter where you are today, it’s important to anticipate future growth and plan how you can cost-effectively scale your applications to support business growth without causing an exponential increase in costs.
Most Cloud DBaaS pricing models are based on operations per second, storage, and actual traffic in the cluster. Items such as secondary indexes, if available at all, come at a premium. If you need fast reads, you need to deploy dedicated hardware to support these reads from a specialized cache, which is usually sold at a premium by the DBaaS provider. If your application needs to serve multiple geographical regions, the replication comes at a premium. If you scale beyond a certain workload, the DBaaS vendor might start to limit your available capacity in certain regions or charge you a premium for having high load on certain regions.
Many DBaaS solutions charge you per write and read units. While these initial charges might seem small in comparison to your storage costs, storage costs are actually the least costly part of the system. For example, assume that one read unit will cost you one-millionth of a cent. When your customer base grows to 10,000 active users per second — each reading one block per second — a year of just those reads will cost you over $3,200 (and that’s for only the 10,000 operations per second that occur on that specific cluster). What happens if your user application requires more than one block of reads per second? At that point, just start multiplying those thousands of dollars every time. These read and write operations can become quite expensive over time.
Another common DBaaS challenge is vendor lock-in. Make sure you’re not dependent on a DBaaS solution that prevents you from easily migrating when your needs change or you decide it’s time for a different approach. Consider the ability to change cloud platform providers as well as cloud database service providers — or even to move from a cloud to on-premises deployment (a process known as cloud repatriation). You might also consider running across multiple public clouds (known as multi-cloud deployments) or span your workload on both public cloud and on-premises deployments (known as hybrid cloud). If these options are important to you, investigate whether you can migrate without changing your application or increasing your total cost of ownership.
If you have large partitions, huge payloads, multi-terabytes or petabytes of data, you should ensure that a potential cloud database solution will not limit you to a narrow scope of workload or payloads.
Different DBaaS solutions have different read and write characteristics and capabilities. Some even limit the size of your data items or the total storage you’re allowed. Can your application work effectively within those boundaries?
Ensure that your DBaaS solution provides operational continuity and scale under the extreme throughput, latency, and storage requirements that you’ll see as your application grows and grows.
With users now expecting instantaneous experiences — all the time — the performance of your database is critical. If response speeds matter for your business, look for a DBaaS solution that can consistently deliver low-single-digit millisecond latencies. Check benchmarks, user experiences, Jepsen test shakedowns, and so forth.
Selecting a DBaaS solution that provides reliable latency guarantees under the maximum throughput load is especially critical when your business is experiencing record-high transactions and activity. So is making throughput and latency metrics available to your operations team. These metrics will help you perform accurate capacity planning… and plan for future growth as well.
Teams often move to the DBaaS model to guarantee business continuity. Organizations want to ensure zero downtime and rest assured that customers and users can reliably interact with the application 24/7, 365 days a year. To ensure this, look for a cloud database that’s purpose-built for high availability and disaster recovery.
DBaaS solutions that use a peer-to-peer architecture have high resiliency because there’s no single point of failure that can bring down the cluster. A peer-to-peer architecture helps even out the workload on the different servers that are deployed underneath the DBaaS solution — without creating bottlenecks or requiring a complex and expensive load balancing system to ensure that the load is well distributed and failover is smooth and fast.
Select a DBaaS solution that delivers built-in resiliency, a solution that does not force you to purchase premium auxiliary products just for the simple task of having high availability, some type of a connection between the different data centers, and so on. These extra costs can add up fast.
Look for a DBaaS solution with a complete ecosystem behind it. This involves support for your preferred programming environment as well as your complete data ecosystem. If you need to build one-off solutions to satisfy your specific use cases, that’s going to drain your resources and inhibit agility as your needs evolve and the ecosystem advances.
First, review all of your application’s data ingress and egress requirements and select a DBaaS solution that supports well-known and established solutions for these data pipelines (Kafka, Spark, Pulsar, Redpanda, etc.). This will result in significant productivity gains and cost savings down the road.
Second, ensure there’s native support for your programming environment. Check if your DBaaS vendor publishes a performant, reliable, actively-maintained driver for your specific application languages; this will increase both the client and the DBaaS efficiency.
To help teams quickly approximate what they might expect in terms of DBaaS costs, we built a DBaaS pricing calculator that compares popular DBaaS services for data-intensive applications: Amazon DynamoDB, Amazon Keyspaces, DataStax Astra, and ScyllaDB Cloud.
If you already have a rough estimate of your read and write op/sec, average item size, and data set size, you can enter those values as pricing calculator inputs and get fast pricing estimates across multiple DBaaS solutions, including some based on open source databases.
Many DBaaS vendors, such as Amazon and DataStax, base their DBaaS pricing on the volume of data and the number of operations. Writes cost more than reads. Others, such as ScyllaDB (the fastest NoSQL Database), base their DBaaS pricing on vCPU and per TB (storage capacity, not storage consumed). Reads vs writes do not impact price.
DBaaS prices do not always include support. Some DBaaS solutions also charge for options such as:
It is important to note that cost is just one consideration when selecting a DBaaS. Latency, throughput, compatibility, ease-of-migration, and flexibility are also critical factors. A DBaaS decision should ultimately involve in-depth cost analysis as well as benchmarking.
The term “cloud database” or “cloud-based database” is typically used interchangeable with DBaaS to refer to a managed service offering where a database vendor is responsible for database provisioning, support, and maintenance. However, the term “cloud database” could also (less commonly) refer:
A cloud-hosted database: Any database built and accessed through a public, private, or hybrid cloud platform. These might be run using a virtual machine (VM) or on bare metal.
A cloud-native database: A database designed from the ground up to operate in a public cloud environment. This means that it will take advantage of distributed cloud architectures, providing global distribution of data and workloads, high availability, scalability, and elasticity available in the public cloud, as well as integration with cloud-native services such as orchestration and observability. Both cloud-hosted databases and DBaaS services can be implemented as cloud-native offerings.
Check out this list of resources on important DBaaS topics: