For many organizations, the advantages of a cloud-based database are clear. They offer scalability, security, and availability. There can also be cost savings over custom and on-premises database solutions.
However, not all cloud databases are created equal. Terms like IaaS, PaaS and SaaS have traditionally been used to describe various levels of cloud computing, but how do they apply to cloud databases? And what to make of DBaaS (database as a service) offerings?
In this post, we’ll take a look at the main differences between these categories of cloud databases, along with the pros and cons of each, to help you decide which is most appropriate for your organization.
Mapping the Landscape
As Figure 1 shows, the primary difference between software as a service (SaaS), platform as a service (PaaS), infrastructure as a service (IaaS) in the cloud computing contextis the level of abstraction over underlying resources and services. In general, the more that the service provider abstracts away from the user, the simpler and faster it would be for the user to generate value from the cloud service. And the less that the provider handles on behalf of the user, the greater the control and responsibility the user would have over the environment.
Figure 1: Different levels of abstraction in cloud computing (Source: ComputerWeekly.com)
We can apply the principles behind this cloud computing taxonomy to cloud databases as well. As with most cloud-based tools and services, your choice of database will reflect your team’s go-to-market requirements, expertise and skill set, the overhead and administrative burden you’re willing to take on, and the degree of customization your projects require.
Let’s look at a general overview of each type of cloud database, along with their pros and cons.
IaaS: The Most Control, and the Most Work
An IaaS database implementation is one that is self-managed on cloud infrastructure. You would have responsibility for the OS, runtime and database software, along with installation, configuration and ongoing maintenance. The experience would be similar to running on-premises, except for the use of cloud servers and storage. An IaaS database offers the most control over your setup, and that naturally comes with more responsibilities.
No, you don’t have to requisition hardware and operate your own data center with an IaaS database. However, you do need to select a cloud provider infrastructure, and then install and manage the database yourself within the provider’s parameters.
If you’re willing to put in the work, IaaS gives you all the power—and the maintenance burden—of a traditional database. Let’s look more directly at the pros and cons of IaaS.
- With IaaS you have more choices for database(s), since you can choose databases that do not necessarily offer equivalent PaaS or SaaS versions.
- With IaaS, you can configure your database(s) to work precisely as you need them to.
- Like all cloud database options, IaaS offers practically unlimited scalability. If you’re comfortable managing your database but are transitioning to avoid managing your own data center, IaaS may be all you need.
- IaaS makes it easier to reproduce your on-premises database infrastructure in the cloud.
- Finally, if your team has the know-how, IaaS provides more control over database software, OS and other configuration options (should you desire them).
- If you choose an IaaS database, you bear the full responsibility for routine maintenance, including handling backup, scaling, security, and other considerations.
- Compared to PaaS and SaaS, your team members may need more database skills and cloud credentials, specifically as they relate to database operations. Or you will simply need a larger team.
- It may take considerable time to stand up an IaaS database implementation. You will have to weigh this against the urgency of your project.
PaaS: In the Middle, but Is It Your Sweet Spot?
A database offered as PaaS takes the cloud advantage a step further. PaaS databases help automate provisioning, configuration, scaling and other cluster management tasks.PaaS can free your team from setting up and managing infrastructure, which they would need to do with IaaS.
PaaS is the middle option in our IaaS-PaaS-SaaS continuum, and many cloud databases are offered in this manner. They make it easier for teams to manage their databases through cluster automation tools. However, users of PaaS still need to have some awareness of cluster details, such as the number and types of nodes, capacity and sharding.
Let’s look at what this means when it comes to the benefits and drawbacks of a PaaS database.
- You get similar scalability benefits as with an IaaS deployment.
- With PaaS, the vendor provides management tools for provisioning, configuration, scaling, and other common operations, simplifying operations.
- The vendor also handles basic administrative tasks, like patches and updates.
- While there’s less operational burden than with IaaS, you’ll still need to plan the cluster, specify software version as well as number and types of nodes, instance sizes, and perform other tasks.
- There’s also a need for capacity planning, such as peak capacity/usage and headroom to account for growth.
- With PaaS, you may still be responsible for some or all software upgrades.
SaaS: Low Configuration, Immediate Productivity
SaaS is easily the most familiar software delivery model for cloud applications: just log in and start working. We all use SaaS applications, sometimes dozens of them in a given day—ranging from Google Docs to Salesforce CRM. SaaS is far less familiar when it comes to databases, but we’ll use this term to describe databases that take all the responsibility of cluster operations off the user.
SaaS databases are generally the easiest type of database to set up and maintain. That’s because the service provider is responsible for handling all technical issues, planning, provisioning, and other routine tasks. In other words, the database is fully operated by the provider, and all cluster details are abstracted away from the user. However, as you might expect, the tradeoff is you may have fewer deployment and configuration options with a SaaS database.
Let’s look at these pros and cons in more detail.
- SaaS databases take most capacity and cluster planning off your shoulders.
- It also abstracts away any cluster management, so there’s no need to configure nodes, node types, or instance sizes.
- With SaaS, there’s no manual intervention required for operations like provisioning or scaling.
- All of your software upgrades happen transparently in the background.
- A SaaS database is usually priced based on consumption of storage, compute, I/O, or number of queries, rather than the number or size of nodes. This means the ratio of storage and compute is not fixed based on the instance types.
- Estimating costs may be more difficult with this model because fewer options are easily user-configurable. However, with a lower ops burden, this may still be the most affordable option for many teams.
- Most databases offered as SaaS were built specifically for the cloud and have no equivalent self-managed version if users require this option.
DBaaS: Diversity of Solutions
There’s one more term we haven’t addressed so far—Database as a service (DBaaS). It typically refers to databases offered as PaaS or SaaS.
All major cloud platforms now offer DBaaS solutions. Some of these are closer to SaaS; others are slightly closer to PaaS. Popular examples of DBaaS solutions include Amazon Relational Database Service (RDS), Azure SQL Database, MongoDB Atlas and Amazon DynamoDB.
Those closer to PaaS take some ops aspects out of your hands while giving you an experience similar to self-managed versions of those databases. On the other hand, solutions that are closer to SaaS offer an out-of-the-box database solution that makes it easy to add powerful database functionality to your app. This can be an excellent option for organizations looking for the shortest path to get data applications up and running quickly and easily.
We’ve seen that there’s a broad spectrum of cloud database options available. They vary in their ease of use, granularity of control and how they utilize resources.
Figure 2: The range of database solutions relative to their levels of control and ease of use
An easy way to summarize these layers of database solutions is that IaaS provides more control than PaaS, which provides more control than SaaS. This is illustrated in figure 2.
Unsurprisingly, IaaS requires the most effort on the part of your ops team, followed by PaaS, which still requires manual intervention for cluster management tasks. Because of the greater administrative burden that comes with IaaS and PaaS, this also means more effort needs to be put into optimizing for cost and performance at these levels. Finally, SaaS requires the least of your team. A key benefit of databases offered as SaaS is that they let small teams do more without having to grow the team.
When a SaaS database is designed for the cloud, it can take maximum advantage of cloud elasticity and the disaggregation of compute and storage resources. This can actually result in more efficient performance or utilization.
For instance, Rockset is a born-in-the cloud database solution that offers a zero-ops SaaS model. It gives you all of the perks you’ve come to expect from SaaS: ease of configuration, always-on availability, and a high level of support to help your team get their jobs done better and faster.
Try Rockset for free and see how building on a SaaS real-time analytics database can eliminate your ops overhead while getting you to market faster.