Cloud computing introduced many new concepts that nowadays it is pretty common to hear in all companies like IaaS (Infrastructure as a Service), SaaS (Software as a Service), or DBaaS (Database as a Service), and sometimes we acquire those concepts without really knowing the differences between them or which one is the best option for us. In this blog, we will see what each of these new concepts are and let’s focus on one of the most important of them in the database world, DBaaS.
Cloud Service Models
There are several cloud service models depending on the level of access needed.
- On-prem (On-premises): It is installed and runs on computers on the premises of the person or organization using the system. In fact, this is not a cloud service, but it is useful to see the difference.
- IaaS (Infrastructure as a Service): It is an online service that provides high-level APIs used to access various low-level details of underlying network infrastructure like physical computing resources, location, data partitioning, scaling, security, backup, etc.
- PaaS (Platform as a Service): It provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure associated with developing and launching an app.
- SaaS (Software as a Service): It is accessed by users over the Internet using a client (browser). It doesn’t require any installation on the client side.
What is DBaaS?
Database as a Service (DBaaS), more commonly known as “Managed Databases”, is a cloud computing service that provides users with some access to a database without the need for setting up physical hardware, installing software, or configuring it. All of these administrative tasks and maintenance are taken care of by the cloud provider so that all the user needs to do is use the database.
These managed databases provide the same functionality as a standard relational or non-relational database, and the payment model is per-usage. The cloud provider gives you a management console to deploy, modify, or even delete database instances.
According to the cloud service models that we mentioned above, we can place DBaaS somewhere between a PaaS and a SaaS, as you don’t have all the options of a PaaS but it is not as limited as a SaaS.
In a normal scenario, deploying a database involves provisioning a VM where to run it, install the software, and configure it according to the requirements or hardware, so you will need the knowledge and the time to do the job, which could take hours or even days.
By using a DBaaS, you just need to specify a few options to have your database instance in place in just some minutes. Once a database has been deployed, the cloud provider platform is responsible for all the backend operations to maintain it healthy, including configuration management, backups, patches, upgrades, service monitoring, and more, providing a user-friendly UI to handle it.
In the same way, you are also able to scale up (or down) your database topology manually or automatically, and failover if needed.
The Advantages of DBaaS
Well, actually, we mentioned some of the advantages of this cloud service in the previous section, but let’s see it more in detail.
Tasks like configuration, performance tuning, monitoring, upgrading, backups, were things to do after deploying a new database node, and all these tasks are time-consuming but necessary to make it work in a safe way.
DBaaS helps with this by having these things in place after deploying a new database. In this way, you can focus on other activities and improve your productivity.
Easy to Use
After deploying your DBaaS, the cloud provider will give you access to a UI console to monitor your database or take a new backup, so you don’t need to worry about creating a new monitoring system or integrating it to an existing one.
As we mentioned, deploying a database is a process that includes provisioning hardware (or virtual resources), configuring them properly, and installing the database software.
DBaaS improves this task by automating the process described above and making this agiler.
High Availability and Scalability
To have a high availability environment in a normal scenario, you should deploy different replicas in different datacenters or cloud providers, repeating the deploy process many times and configuring everything to work together.
Using DBaaS, you just need to make a couple of clicks to have your database deployed in a different redundant place, or you can create many replicas and scale up or down when you wish (or in an automatic way), which is really useful for a production database.
In a local environment, or even using a classic cloud service model, security is a must, but a time-consuming task, as you must protect your data to unauthorized access or thief, but at the same time, you should be careful about the performance and make sure you won’t affect anything else when you are securing your data.
The usage of a DBaaS, delegates this point to the cloud provider (almost all, as you should be careful about the remote access anyway). You can also configure different security features, like VPN, isolate network, encryption, and even more.
Until this point, all the things that we mentioned above are positive things, but… we should mention an important point to take into account if you want to use this cloud service model. Costs.
In general, the pricing model of this product is per usage, and the final cost differs depending on the features and usage itself.
Let’s see an example of this using the RDS product on AWS, one of the most used cloud providers nowadays.
Product: RDS Engine type: PostgreSQL Version: 12.3-R1 (most recent version) DB Instance size: db.m5.xlarge - 4vCPUs - 16GiB RAM - EBS 3500Mbps Storage: Provisioned IOPS (SSD) - 100 GiB - Provisioned IOPS 1000 Storage autoscaling enabled Maximum storage threshold: 1000 GiB Multi-AZ deployment: Creates a standby instance VPC: Default VPC Publicly accessible Automatic backups enabled Encryption enabled Monitoring enabled Auto minor upgrades enabled
So, the cost of this database instance will be around USD $672/month. This cost is estimated, and if something unexpected happens, you can receive a surprise when you receive the invoice.
The DBaaS solves a lot of IT problems and reduces the time used to deploy a new database instance, but it is not a cheap solution. Depending on the requirements, you should analyze if it is a real solution instead of an on-prem or another cloud provider solution.