The cloud is popular, very popular. But the cloud does not exist: there are different cloud models – public, private and hybrid – and there are roughly three main types of cloud computing: SaaS, IaaS and PaaS. Part of PaaS is DBaaS. What is DBaaS, what are the pros and cons, and does DBaaS make a DBA obsolete? We give you the answers in this blog.
DBaaS in a nutshell
With DBaaS, you rent a fully configured database from the cloud provider. The cloud provider is responsible for management, updates and performance. This service is most similar to PaaS, but there is an important difference. With DBaaS, developers have access to the underlying database, allowing them to choose a database technology that fits the application. Later we will zoom in on the advantages and disadvantages of DBaaS, but in short, the advantage of DBaaS is that you can get started immediately and can continue even without database expertise. In addition, you can quickly scale up resources. A disadvantage of DBaaS is that you have little control over the configuration and you can barely tune. Examples are SQL Azure, AWS RDS Postgres.
Moving everything to the cloud is impossible, simply because the cloud does not exist. There are different models such as private, public and hybrid cloud. Moreover, it is not always necessary to move everything to the cloud. By making smart combinations with the forms and models and even multiple cloud providers, you can create a mix that ensures maximum quality, flexibility and cost control.
In a public cloud, your environment or server on which your application runs in the data center of the cloud provider is shared with other customers of this cloud provider. Pay close attention to what happens to your privacy-sensitive data in connection with the GDPR. In the public cloud, security is an issue, but most cloud providers pay a lot of attention to this themselves.
In a private cloud, all the servers, components and services you use in the data center are yours exclusively. You are the only customer and you are not part of a shared environment. You have more exclusive control over the resources. If you’re smart, this could even be profitable.
This is a combination of public and private cloud. Software containing sensitive information is located in the private cloud. Applications that need to be fast or flexible, for example when it comes to scaling up or down, are in the public cloud. Essentially, you are choosing the best of both worlds.
Databases in the cloud
If you decide to run your database in the cloud, there are a number of things you need to pay attention to. Which things exactly depends on your goal, the application, the budget and your conditions. In short, we can mention the following points of interest:
The advantage of DBaaS is that it is fast, flexible and configured by default, with unlimited resources. Virtually no DBA expertise is required. A potential disadvantage is that costs add up fairly quickly if you want to purchase services or scale up resources. There is no efficient database management and the ability to apply custom configurations is non-existent or limited. Tuning is not possible and when using open source database technology, many community extensions cannot be used.
With PaaS you have to take into account the use of existing software. Not all existing software is suitable to function in a PaaS environment. For example, in a PaaS environment you do not have access to the root of the hard disk. Not all CPU power and memory is allocated to the cloud application. This is because it is often hosted on a shared platform, so other applications (and databases) may be using the same resources. As for the database, you have the same advantages and disadvantages as with DBaaS.
IaaS is most similar to an on-premise implementation. In particular, it involves the use of virtual servers. It is important to investigate the possible limitations, for example in I/O, which can cause the database performance to be different in practice than in a protected local environment. As customer you are responsible for arranging security and backup. The advantage is that you can influence which database technology is used. So, you can tune your database to your application. You can standardize the design for your own organization. However, deployment of databases is more complex and you have to ‘invent’ and build it yourself, which requires some expertise.
The advantage of SaaS is that the supplier takes care of all management and maintenance, so you don’t have to worry about that. On the other hand, you also have no opportunity to modify the software.
Popular Public DBaaS Models
On our website, we have published an overview of the most frequently applied DBaaS models, along with their strengths and challenges. The most well-known and applied public DBaaS models are:
- Amazon RDS
- Azure database for (PostgreSQL, MySQL, MariaDB)
- Azure SQL
- Google Cloud SQL
- IBM Cloud Databases
And then there are a number of cloud-native DBaaS models such as:
- MongoDB Atlas
- Amazon Aurora
- Google Cloud Spanner and Bigtable
- BigAnimal (newbee from EDB, specifically for PostgreSQL)
The GigaOm Radar Report for Cloud Databases published the following overview.
Dealing efficiently with database environments in the cloud
As database experts, we have extensively researched the best way to deal with the developments around databases in the cloud and how they can function efficiently. What are the areas of interest?
To begin with, there are many solutions available. For example, the mature platforms of the big three – Microsoft Azure, Amazon Web Services and Google Cloud Platform – where you can choose different DataBase-as-a-Service solutions. There are also numerous smaller providers of DBaaS solutions, with unique functionality and flexibility (which can be migrated to various public cloud service providers). But what are the advantages and disadvantages?
Benefits of DBaaS solutions
DBaaS has quite a few advantages.
Quick and easy
It is very easy to quickly try out different dbms solutions or new features in the cloud. It is relatively simple – a test setup is built in no time –, inexpensive, and the time-to-market is short. Security, patching, High Availability (HA) setup and management, backups, performance tuning, it’s all taken care of for you. You no longer need a DBA to help you or to give permission to kick off a database. The developer can choose the specific database that they feel fits the application best and then trust the cloud provider to keep things up and running and performing well.
Scaling up easily
Choosing a DBaaS solution benefits a DevOps culture. The continuous process of steps within this process model means that code is constantly being deployed, tested and released. If you do that in an environment that you can easily scale up, this is of course very convenient.
(Initially) lower costs
Choosing a DBaaS solution is initially a lot cheaper than an on-premise solution. However, organizations with a large database reach a tipping point at some point. It is therefore advisable to periodically test whether that tipping point has already been reached. From then on, it is more profitable to deploy it internally, with your own DBA and system administrator. Don't forget to also test whether the performance and price are still satisfactory.
A DBaaS solution integrates easily with other cloud solutions. On a side note, there is a higher chance of vendor lock-in occurring.
Differences between DBaaS solutions
However, there are major differences between the various solutions. There are differences in optimization for memory I/O, or performance and scalability of storage. In some cases, even a fork of the open-source software is created to achieve better performance at the expense of core features (such as Aurora of AWS). There are also cloud-native solutions and DBaaS models that are derived from existing on-prem applications. The basic configurations are generally good for most database instances. This allows developers and engineers to get the most out of the service without being a full DBA or Database Expert.
Disadvantages of DBaaS solutions
Whether you look at the big three or the smaller providers, all lack a bit of service. They offer the environment, but don’t have the staff to proactively, or even reactively, check with you whether you as a customer have set up your database environment as efficiently as possible. However, there is a need for this. You can prevent a lot of trouble by building and setting up your environment based on your most ideal and positive expectations.
Cloud-specific features increase risk of vendor lock-in
Almost every cloud service provider, large or small, can offer specific features. These may seem appealing, but make no mistake. They often integrate seamlessly with other products or services from the same ecosystem of that cloud service provider, but then you are stuck with that provider. The extent to which the purchased database is set up, the API that is used, the way monitoring is done and High Availability is arranged, makes moving to another provider or even to your own (rented) server very difficult and very expensive. To prevent vendor lock-in, you need to have a good exit strategy to be able to move quickly to another provider. This makes you more independent.
Of course, you can also encrypt your data – both in-transit and at-rest – in the cloud, but your data will always be stored on the cloud service provider’s systems anyway. No matter how you look at it, that data has to come through the provider’s gates. In certain sectors, such as governments and banks, this is undesirable.
Waiting for updates
If the manufacturer of your DBMS software releases a new update or bug fix, it must first be tested on the infrastructure of the cloud provider. You can only implement the update or bug fix if the result is positive.
Noisy neighbour effect
If several users on the same cloud platform use a lot of resources, there remains less capacity for others. Even though this is not always clearly indicated, your resources are always limited. This can affect the performance of your database.
Scalability can cause unpleasant surprises
A big advantage of the cloud is that it is very elastic; you pay according to consumption and can scale up or down as necessary. But don’t forget to monitor your usage. If you don’t do that and your database suddenly gets used a lot, by a test environment or by customers, you could be faced with a huge bill.
Percona published a survey in 2020 on the use and application of open source and cloud databases. In practice, 69% of the companies surveyed now use some form of DBaaS solution. Of this group, 22% indicated that the cost of these managed database services in the cloud is much higher than previously estimated. In practice, when the platform and database grow in size, they simply add more and more storage. If the increasing use of the application causes the database performance to deteriorate, they simply add CPUs or some extra memory. But everything has its price and DBaaS is designed precisely to facilitate this. The revenue model is also designed for this. The monthly bill will grow rapidly with the database and the quality of the application, data model and/or queries. Not to mention clusters and redundancy, because then a number of servers will be added and the costs will grow exponentially.
All DBaaS solutions are designed for the common denominator, the big average. Customization is almost impossible. Of course, with some tinkering, expert cloud knowledge, and making miraculous combinations you can gain some performance. But fundamentally, the chosen DBaaS will not be customized to meet specific needs. In addition, they are huge shared instances, and the revenue model of DBaaS is also designed for this. As a result, the performance of your databases is partly dependent on the use of this shared space by other customers. In short: we are all on the same boat, someone jumps up and down and you get seasick.
What are the needs?
What lacunae do we see in the current offerings that you, as a database expert, can respond to? In particular, there is a lack of proactive involvement in designing the environment. There is a clear need for a cloud DBA. But there are also needs in terms of monitoring and autotuning. The monitoring of the infrastructure could be a lot more extensive. Monitoring of the storage, for example of the number of IOPS (Input/Output Operations Per Second) would also be a welcome addition. Thus, with a good partner, you could be advised to opt for a higher storage class, thus maintaining the performance of your environment. Finally, there is also a greater need for financial governance (cost control, monitoring and optimization), especially as each cloud service provider has different pricing models.
Does DBaaS mean the end of the database administrator?
There has been a growing interest in DBaaS. At the same time, we are only on the eve when it comes to quality and capabilities. There are now countless variations available from different cloud providers where databases can be deployed in the cloud with apparent simplicity. If the marketing stories are to be believed, you no longer need a database administrator and developers can get straight to work with off-the-shelf building blocks – containers. But is that really the case?
Modern development methods
Since the rise of DevOps and CI/CD methods of development and deployment, a wealth of possibilities has opened up for developers. Speed of development has become key and so has the need to make progress independently of others. We see a clear trend where suppliers and providers try to make everything as easy as possible. Today’s development teams can pick ready-to-use building blocks and APIs from the Internet. Setting up an application or even environment or platform from scratch is no longer necessary. You could say that (Public) DBaaS has prevailed as the way to deploy databases in the cloud.
DBaaS can still be a good option in experimental and analytical environments. Or in small and fast development teams where a database is ‘just needed’. But when considering renting databases structurally in the cloud and setting them up as a DBaaS solution? Then make a good assessment and do not forget to hire a DBA as a database expert, supervisor and trusted advisor. Not only from a cost perspective, but also to ensure the best possible performance.
OptimaData has already helped several clients with, but also from, a DBaaS situation. We know the intricacies of the business like no other and always know how to find the best options and optimal setup. From experience, because we do it every day. Want to discuss your options? Feel free to contact us, we would love to get to know you.