DBaaS Deployment Times - Amazing Differences
In the course of our benchmark measurements of Database-as-a-Service (DBaaS) for client projects and our DBaaS Navigator another interesting metric drops - deployment time.
Here you can find the measurement results and some background on deployment time.
Key Insights on DBaaS Deplyoment Time
- The deployment time is the time required by the DBaaS service to deploy a database so that it can be used productively.
- Even though DBaaS is a Software-as-a-Service service, the databases are of course not available within a few seconds, but usually require several minutes.
Number of measured DBaaS products | 14 |
---|---|
Fastest DBaaS deployment time | 8.14 sec |
Slowest DBaaS deployment time | 22 min 36 sec |
Average DBaaS deployment time | 10 min 35 sec |
Maximum standard deviation | 1 min 43 sec |
Average standard deviation | 23.4 sec |
The performance measurements were repeated 3x to obtain meaningful results. The full results for MongoDB Atlas, AWS RDS and many other DBaaS services can be found in the sections below.
What is the deployment time for DBaaS services?
We define the DBaaS deployment time as the time required to create a productive DB instance with a DBaaS provider. The prerequisite for this is, of course, an existing account with the necessary authorizations.
Thus, the deployment time includes the period between the DBaaS deployment request via API or web interface and the achievement of a "ready-to-use" state of the database, i.e. configured firewall rules and an admin user.
What services are performed during DBaaS deployment?
Reaching the "ready-to-use" state of the database may require one or more API calls/Web interface calls depending on the DBaaS provider, which can be classified as follows:
- DB instance deployment for resource provisioning, deployment and configuration of the DB.
- Configuration of the default admin user
- Firewall configuration
When is deployment time important?
DBaaS deployment time is certainly not a key performance metric, yet it is more important for some use cases than others. In the past, some of our clients have been interested in this metric as an additional decision support tool.
For the classic use case of a production database, which once started runs for several months or years at a time, the initial deployment time of the database is rather unimportant.
The situation is different for the following purposes:
- When new DBaaS instances need to be deployed as a test database for developers.
- When DBaaS deployments take place in the CI/CD pipeline for different test cases.
- When the application dynamically creates new DBaaS instances for new customers, for example in a SaaS process
- For live demos of specific SaaS products that rely internally on a DBaaS instance.
In these cases, you certainly don't want to wait several hours for the new DBaaS instance, but rather have it available within a few minutes if possible.
Measurement Results DBaaS Deployment Times
For better illustration, the measurement results are broken down according to the data model or the underlying database technology. Based on 3 independent measurements per DBaaS, a mean deployment time including standard deviation was calculated.
PostgreSQL
The number of DBaaS services for the most popular relational database PostgreSQL is huge. We measured the data for 3 very popular DBaaS products.
While the deployment time of both hyperscalers MS Azure and AWS is 12 and 15 minutes respectively, DBaaS provider Aiven deploys the PostgreSQL instance in just under 3 minutes.
The PostgreSQL instance consists of a primary-secondary setup with 8x 64 GB RAM and 2x 1000 GB SSD storage.
DBaaS Service | Duration [min] | Standard Deviation [min] |
---|---|---|
Aiven PostgreSQL @AWS | 02:49 | 00:09 |
Azure PostgreSQL @MS Azure | 12:11 | 01:01 |
AWS RDS PostgreSQL @AWS | 15:26 | 00:49 |
MySQL/MariaDB
We group MySQL and MariaDB together since both are built on the same DBMS technology. Here we can see that the AWS RDS service delivers almost identical values of 15-16 minutes for MySQL as well as for MariaDB and PostgreSQL (compare previous chart).
This is not the case for MS Azure Database service, here we see a very fast value for MariaDB with just under 3.5 minutes and over 20 minutes deployment time for MySQL DBaaS service. The background is that the MS Azure MariaDB can only be deployed as a single-node, while all other DBaaS services were deployed in the same setup as the PostgreSQL DBaaS.
Scalegrid as a DBaaS-only service takes over 22.5 minutes to create the MySQL instance.
DBaaS Service | Duration [min] | Standard Deviation [min] |
---|---|---|
Azure MariaDB @MS Azure | 03:23 | 00:02 |
AWS RDS MariaDB @AWS | 16:07 | 00:28 |
Azure MySQL @MS Azure | 20:36 | 01:44 |
AWS RDS MySQL @AWS | 15:47 | 00:28 |
Scalegrid MySQL @AWS | 22:36 | 00:02 |
MongoDB / Document
The deployment time of the 3-best-known document-oriented DBaaS products ranges between 5 and 12 minutes.
While the cloud-native DBaaS service CosmosDB from MS Azure with its MongoDB API creates the database cluster within 5 minutes, the cloud-native DocumentDB service from AWS needs more than double that. MongoDB Atlas is in the same range.
The measurement results refer to a 3-node cluster with 8x32 GB RAM and approx. 2 TB SSD storage.
DBaaS Service | Duration [min] | Standard Deviation [min] |
---|---|---|
MongoDB Atlas @AWS | 11:33 | 00:00 |
CosmosDB (MongoDB-API) @MS Azure | 05:08 | 00:02 |
AWS DocumentDB @AWS | 12:05 | 00:22 |
Cassandra
Another popular NoSQL database is Apache Cassandra.
AWS Keyspaces, a cloud-native DBaaS service from AWS that is Cassandra-compatible, takes only 8 seconds to deploy the instance. In contrast, MS CosmosDB with the Cassandra API takes over 4 minutes and Instaclustr's DBaaS service for Cassandra takes 6 minutes and 23 seconds.
The measurement results refer to a comparable setup of 3 nodes with 8x64GB RAM and 3x 2.4 TB SSD storage.
DBaaS Service | Duration [min] | Standard Deviation [min] |
---|---|---|
CosmosDB (Cassandra-API) @MS Azure | 04:11 | 00:16 |
Instaclustr Cassandra @AWS | 06:23 | 00:00 |
AWS Keyspaces @AWS | 00:08 | 00:00 |
Conclusion
- DBaaS deployment times range from a few seconds to over 20 minutes. These differences are significant.
- The DBaaS setup with number of nodes probably has an impact on deployment time.
- The AWS RDS services deliver similar DBaaS deployment times around 15 minutes.
- Unfortunately, it is not transparent to see which services are deployed to which DBaaS service or when this happens.
- For applications where DBaaS deployment time is relevant, DBaaS services should be tested at the outset, times measured and compared. Especially for popular open source databases there are a variety and DBaaS offerings.