For the past six months, Thomas Brinkman has been conducting a research assignment at OptimaData. During the assignment, he investigated how a company like OptimaData can deal with the development around databases in the cloud and how they can function efficiently. What are his conclusions?
During my research, I mainly focused on running a database environment in the cloud and mainly how that works technically. I also delivered a technical design and investigated how OptimaData could respond to the developments concerning databases in the cloud.
If we look at the cloud market, we see that there are already quite a few solutions available. You have to think of 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 pros and cons?
Benefits of DBaaS solutions:
1. Fast and easy
It's very easy to try out different dbms solutions or new features in the cloud. It is relatively simple - a test setup is made in no time - inexpensive and the time-to-market is short.
2. Scaling up easily
It 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, that's obviously very convenient.
3. (Initially) lower costs
Choosing a DBaaS solution is initially a lot cheaper than an on-premises 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 pays to deploy in-house, with your own DBA and system administrator. Don't forget to also test whether the performance and price are still as desired.
Easy integration with other cloud products. Note that vendor lock-in can occur more quickly.
Downsides of DBaaS solutions:
1. Limited service
Whether you look at the big three or the smaller providers, all are missing a piece of the service. They offer the infrastructure, but do not have the manpower 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. Edco already wrote a blog about how you can prevent a lot of misery by building and setting up your environment based on your (most ideal and positive) expectations.
2. Cloudspecific features increase the chance of vendor lock-in
Almost all cloud service providers, large and small, can offer specific features. These may seem attractive, but make no mistake. They often integrate seamlessly with other products or services from that same cloud service provider's ecosystem, but then you are stuck with that provider. To avoid vendor lock-in, you need to have a good exit strategy to move quickly to another provider. That 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 slice it, that data has to come through the provider's gates. In certain sectors, such as governments and banks, this is undesirable.
4. 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. Only if the result is positive can you implement the update or bug fix.
5. Noisy neighbour effect
If several users on the same cloud platform use a lot of resources, there is less capacity left over for others. Even though it is not always clearly indicated, there is always a limit to your resources. This can affect the performance of your database.
6. Scalability can lead to 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 needed. But don't forget to monitor your usage. If you don't and your database suddenly gets used a lot, either by a test environment or by customers, you could end up with a huge bill.
What are the needs?
Back to my research. What gaps do I see in the current offerings that a company like OptimaData can address? In particular, proactively looking at how to set up an environment is a gap. 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. But it would also be nice to monitor the storage, for example the number of IOPS - Input/Output Operations Per Second. For example, with a partner like OptimaData, you could be advised to opt for a higher storage class, which would keep the performance of your environment up. 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.
Ever thought about a trusted advisor?
Problems with your DBaaS environment? Feel free to give us a call. We are happy to help and work with you as a trusted advisor who, if desired, will give you advice on a regular basis and grow with your environment so you don't have to put out a fire ad hoc with all its consequences. Call or email us to get acquainted.