Today we’re publishing this interview with one of DevOps Engineers, Marcin Szremski, on the future of cloud. This is the first interview in our series about how we work at Spyrosoft.
How are cloud solutions evolving in 2020?
As a whole, the focus is on serverless, simply due to the fact that the lack of servers takes away the burden of having to manage and maintain data centre infrastructure. Dispersed cloud environments offer flexible solutions that guarantee effectiveness and scalability.
If we have companies offering a certain service and we have multiple data centres placed all over the world, it’s obvious that the time we need to reply to a user from the moment of sending the server request to the response is much shorter. We not only shorten the time needed for this response but also minimise the risk of losing your data. The correct configuration of the backup policy allows us to store the data in various corners of the world. In addition to that, by disperising the architecture among multiple server rooms (zones), we lower the possibility of two big AWS regions crushing and losing access to our data.
There are already native cloud solutions.
Amazon has over 165 ready-to-use services such as chatbot, Polly [the application for text-to-speech conversion], Amazon Recognition for film and image analysis that lets you identify a person and then check in which second of the recording they appear. There’s also a solution for text analysis, called Amazon Comprehend, that allows you to review and define what emotion it conveys.
Instead of writing an application from scratch, you can use a solution component. All that’s left is to add what’s important for your business.
Are there any limits to what cloud solutions can handle?
It’s difficult to find a solution where cloud can’t be applied. Even government institutions are using cloud services, for example – in the US – the CIA has its own server room at Amazon. It’s obviously not a shared location, but a closed-off, undisclosed region. No one knows where it is, but it’s there and it’s used by the largest government agency from one of the biggest countries in the world. That’s something. There are limits to what cloud can do but these are almost non-existent and they are mostly caused by the legislative regulations and policies of each country.
The only problem so far seems to be the lack of standardisation.
I wouldn’t agree. The AWS and Azure management consoles are different, that’s true, but if we use any network device, aren’t we faced with the same problem? The configuration commands are similar but they’re not the same. Plus, all the big players are delivering microservices as Docker clusters and that’s the new standard.
Everyone has their own solutions and everyone tries to deliver ones that are flexible and universal, at the same time as offering something that would make the solution unique.
Hybrid solutions may be the way to go in some cases.
These can be used in certain instances – for example, when we have computing power in our server room on our company premises, but we don’t have enough storage to keep the data that we’re aggregating. We can buy this storage in AWS and using the application called Storage Gateway, connect the storage to our data centre. This way, we have a hybrid solution. We are using the on-premise computing power and the data is sent to the cloud and stored there. We don’t need to buy any additional disc arrays and store the discs to store the data. The cloud guarantees that the data won’t disappear.
There are often opposite solutions when we have storage in a local data centre, but we don’t have enough computing power. Instead of investing money to buy new physical servers, we can buy a service (Lambda or Fargate) and follow the pay-as-you-go rule, where we pay only for the real-time usage of coding.
Another example of using hybrid solutions is setting up test infrastructure for new cloud solutions. If they aren’t right for us, we can quickly get rid of the ‘virtual server room’, and we don’t have to worry about what to do with the equipment we no longer need. On the other hand, if they perform well and we’re able to monetise the app, we may as well add new servers with just a few clicks.
Another excellent solution provided by AWS is AWS Device Farm. It will be particularly useful if we have a team testing mobile applications. Instead of buying all available devices, hundreds if not thousands of phones with various software, we can use the service provided by the AWS that gives us the ability to test the software on multiple mobile devices using the so-called device farm.
Also, why store large databases on your premises, especially if they’re used for large, complicated calculations? It’s possible to have the same databases in the cloud where they would be maintained and backed up regularly without having to spend any money. And if we no longer need this computing power, we may as well free up space. We couldn’t do this with the physical server once it’s no longer needed. In the cloud, we can simply decrease the number or change the type of instances and/or cut them off temporarily, and the data would still be stored.
The hybrid solutions can be perfect for someone who wonders whether and how to use the cloud solutions. Some of the data can be transferred as they are and then we can work out the rest and put them in the cloud as well. That’s the least invasive way to do it.
That was also the strategy we decided to take when we worked on migrating the databases for one of our customers, TakTo, where all of them had been too large to transfer them at once. We started the migration by relocating the elements that couldn’t impact the performance of the application on production. With AWS, we set up the necessary infrastructure as well as the servers, and then we started migrating the app and connecting it to some of the elements of the test environment to verify whether it would be working correctly. The last stage consisted of preparing the main package, and at zero hour connecting the production database and turning the application on.
Do you think that all applications will be transferred to the cloud one day?
I don’t think so, there will always be instances where it’ll be better to have an on-premise server. Let’s imagine that a company has a highly customised server or you need to write low-level software and then the server has to be in your office because you can’t set up this type of environment using the cloud. There will always be situations when the cloud solutions will not be ideal.