Lately we've been writing regularly about cloud solutions and points of consideration of different variants of cloud solutions lately. But what exactly is the difference between all those variants? With which form are you the most carefree and with which model do you mainly have control over the performance? Can you still see the wood for the trees?
What is cloud computing?
Let's start with the definition of cloud computing. This includes offering services via the internet i.e. via the cloud. Think of storage, software, servers, databases, etcetera. These services are provided by a cloud provider. You don't have to buy software, you pay for how much you use. Do you need extra resources for the application to function properly? In that case you can scale the application or the environment both horizontally and vertically. Horizontal scaling is comparable to adding an extra server, scaling in breadth. Vertical scaling is the scaling of the server with extra hardware, extra CPU power or memory is added, scaling in height.
Types of cloud computing
Roughly speaking, there are three main types of cloud computing: SaaS, IaaS and PaaS. Because it is part of our core business, we also include the specific database cloud services: DBaaS (part of PaaS).
1. SaaS - Software as a Service
You purchase applications via the cloud, based on a subscription. The provider is responsible for managing the infrastructure, patches and updates. A SaaS solution is directly ready for use, and you benefit immediately from the added value such as fast up and down scaling and payment according to use. Some examples are Office365, Sharepoint Online, SalesForce, Exact Online.
2. IaaS - Infrastructure as a Service
You rent an infrastructure from a cloud provider. Such as network, operating systems, (virtual) machines, servers and storage. You have full control over the virtual machine. Software that cannot be installed in a PaaS environment can be installed here. While you set up your own server space, you do have the advantages of specific cloud aspects such as scalability and pay according to use or resources. Some examples are AWS, GCP, Azure.
3. PaaS - Platform as a Service
Your software developer or your software vendor uses a complete development and deployment environment in the cloud to develop, test, offer and manage software applications. In order to do this you have a rich platform with microservices at your disposal that gives you a lot of control over your cloud applications. When you purchase a PaaS, the provider takes care of the setup of the server room. For example, taking care of the operating system (such as Linux) and middleware (such as IIS, .NET, Apache, MySQL). The provider configures, manages and monitors the server room, and thus actually offers an out-of-the-box platform. Some examples are Azure AppService, Google App Engine, AWS, Mendix.
4. DBaaS - Database as a Service (part of PaaS)
You rent a completely configured database from the cloud provider. The cloud provider is responsible for the management, updates and performance. This service is the most similar to PaaS, but there is an important difference. With a DBaaS, developers have access to the underlying database so they can choose a database technology that matches the application. The advantage is that you can immediately get started and even continue without database expertise. What's more, you can quickly switch resources. The disadvantage is that you have little control over the configuration and hardly have the possibility to tune. Some examples are SQL Azure, AWS RDS Postgres.
Putting everything in the cloud is not possible because the cloud does not exist. There are different models such as private, public and hybrid cloud. Moreover, it is not necessarily required to put everything in the cloud. By making smart combinations with the forms and models and even multiple cloud providers, you create a mix that ensures maximum quality, flexibility, and cost control.
a Public cloud
In a public cloud, you share the environment or server on which your application runs in the datacenter of the cloud provider with other customers of this cloud provider. Pay close attention to what happens to your privacy-sensitive data in relation to the GDPR. Security is an issue in the public cloud, but most cloud providers already pay a lot of attention to this themselves.
b Private cloud
In a private cloud, all the servers, components and services you use in the data center are just for you. You are the only customer and you are not part of a shared environment. You have more exclusive control over resources. If you do it smartly, this could even turn out to be advantageous.
c Hybrid cloud
This is a combination of public and private cloud. Software with sensitive information is in the private cloud. Applications that need to be fast or flexible, for example when it comes to scaling up and down, are in the public cloud. Here you choose actually the best of two worlds.
Databases in the cloud
What should you pay attention to when choosing to run your database in the cloud or even to purchase it? That depends entirely on your goal, application, budget and conditions. In short, we can mention the following points of consideration:
Fast, flexible, standard configured, unlimited resources. Virtually no DBA expertise needed. One possible drawback is that costs increase quite quickly with the purchase of services or scaling up of resources. There is no efficient database management and the ability to apply custom configurations is limited or non-existent. Tuning is not possible and when using open source database technology many community extensions cannot be used.
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 assigned to the cloud application. This is because it is often hosted on a shared platform, so other applications (and databases) may use the same resources. As far as the database is concerned, you have the same advantages and disadvantages as with DBaaS.
IaaS looks most like an on-premise implementation. It mainly concerns the use of virtual servers. Here it is important to investigate the possible limitations, for example in I/O, as a result of which the database performance can be different in practice than in a shielded local environment. As a customer, you are responsible for setting up security and backup. The advantage is that you have influence on the choice of the database technology used. So you can tune your database to your application. You can standardize the setup to your own organization. Rolling out and deploying databases is more complex and you have to 'invent' and build it yourself, which requires some expertise.
The supplier takes care of all the management and maintenance, so you don't have to worry about that, but you also don't have the possibility to modify the software.
Want to know more or need advice?
There are many possibilities or, as the saying goes: all roads lead to Rome. But what is the shortest, simplest or quickest way? OptimaData is working on databases in cloud solutions on a daily basis. It is part of our core business and this is our strength and expertise. Because we are independent, we can help you find out which database, cloud model or cloud service best fits your goals and how you can achieve it in the fastest and best way. Already made a choice but need help or a third hand to assess the configuration? Feel free to contact us, we are happy to help you.
Other blogs about databases in the cloud:
Database performance cloudproviders, Cloudreport 2020 Determine better indexing with HypoPG