Bart Digital Products Bart Digital Products

Why (not to) migrate to the cloud?

“We’ll throw it in the cloud,” has already become a saying in our company (@marek, @miso). Cloud alone can’t solve many problems, but it can solve some very nicely. One by one, I would like to introduce some interesting options for cloud services that we currently use on our projects and commend them. Let’s start with one at a time. Even though the word cloud is for developers, managers and analysts like a little axe for a Viking (Cloud here, Cloud there, Throw him a cloud…), lately I’ve come across the fact that we use it in different meanings. Wise people at Red Hat wrote:

How does cloud infrastructure work?

An abstraction technology or process—like virtualization—is used to seperate resources from physical hardware and pool them into clouds; automation software and management tools allocate these resources and provision new environments so users can access what they need—when they need it.

It simply means that the infrastructure we use in-house at bart.sk is cloud-based. The company, like many others, buys hardware (disks, RAM, CPU…) and then, using a technology called virtualization, turns one ‘machine’ into many environments that share the hardware. Otherwise, however, they are independent from each other. Plus a little automation and networking work and we have a textbook cloud available. So we often hear: ‘We also have a cloud! Why move it somewhere else?’
So there must be something like a more advanced cloud and a basic cloud. Something like a stratocumulus cloud and an altocumulus cloud, one higher, the other one lower. Like clouds in the sky, get it? Ha.
So let’s look at what we mean by a more advanced cloud service, where we are currently moving part of our projects.

KBeautiful examples are the Google Cloud Platform (GCP) or AWS (Amazon Web Service) and Microsoft Azure.

When I first turned on the GCP and skimmed the list of items in the left menu, I felt like when I first visited the Hamleys toy store. As their motto says: ‘The fun begins now!’ ?. Huge possibilities, a real discovery developer expedition. It was no longer a single VPS with access to SSH, but a world of its own full of features.

Beware! This little menu is even longer and has various subheadings.

When you look at the picture above, then what I usually understand as a cloud (or a lower cloud, like we called it above) is the Compute Engine ‘feature’. I would like to highlight its advantages for our projects first.

Compute Engine

When you have your own hardware, one has to think a lot about how and where to allocate resources. We need a 100 GB disk for this virtual, 1000 GB for that one, for some 1 GB of RAM is enough, sometimes we even need 4, 6 or 256 GB. Sooner or later, one encounters a hardware limit. The disk is full, the RAM is full, not to mention that it would be good to replace older disks with newer, faster ones and switch part of the infrastructure to SSD. Buying hardware is a serious decision as it is not a small investment. We can argue here, but in my opinion, the option to rent the hardware and use it as needed is much better. Cloud providers allow us to do this. As a technology giant, Google has unlimited resources for our needs. When we need 100 GB of RAM, we can take it.

The amount of system resources is one thing. We can also choose different types of system resources, for example in the case of disks (local, HDD, SSD, etc.) or CPUs. We can choose the types of machines themselves, according to the purpose, for example ones optimized for performance or for memory. There is also the possibility of using the GPU.

In addition, the whole process is quick and easy. Creating a new virtual or deleting an old one is just as quick and easy, literally just a few clicks. When these capabilities are combined with automated installation and configuration of applications on the server itself, it makes for extremely good chemistry. GCP and other providers allow you to monitor the server, we have decided to habitually stick to monitoring through Nagios, which we know intimately and which is sufficient for our purposes.

Conclusion

In conclusion, I would just say that there is no need to worry about migrating to a cloud machine. I often get a question related to the speed of response from a server that is not located in Slovakia, but in Frankfurt. We do not feel any differences in our projects and primarily, the slowdown of the web occurs most often only in the application itself. Personally, I look at migrating the web to Google as the first step that will unlock the gateway to other options, such as CloudSQL or App Engine, Cloud Run and Cloud Functions, which are tools I will write about next time.

EDIT: You can see the GCP price list at https://cloud.google.com/products/calculator