4 basic points that every cloud web application must comply with

One of the biggest advantages that cloud environments offer us is elasticity. This is thanks to the fact that we can start more servers when the application has more users or stop them when traffic decreases. In this way, we are guaranteed to offer an optimal service at the lowest cost. In addition, with the possibility of providing the service from multiple datacenters around the world to ensure the high availability of our web application in the cloud.

Many people think that by placing a LAMP server on an EC2 instance in AWS or on a virtual machine in Azure, they have already migrated to the Cloud and can take advantage of the benefits. They quickly realize that this is not the case.

The benefits that this scenario can bring us are almost non-existent. The power of the cloud lies in the multitude of services that providers make available to us, and the use that our application makes of them.

At Geko Cloud we have helped many clients to migrate their applications to the cloud, analysing their performance and advising on how to adapt them to the different services to achieve the most optimal performance and maximum uptime at the lowest cost.

There are many points to take into account in order to carry out a successful migration, but we consider that there are 4 basic points that every web application in the Cloud must comply with in order to get the most out of this type of solution:

Keys to a web application in the cloud: not working with local data

Elasticity implies the creation and destruction of machines/instances dynamically. Therefore, it must be kept in mind that the data on a server will be destroyed when it stops. Our cloud web application has to be prepared for such an eventuality. For example, if our application allows users to upload files so that they can be consulted by other users, we cannot place them in a local directory on the server that handles the request.

The different providers offer us solutions where we can host our files so that they can be accessed by the different instances of our application and even, if necessary, other services.

An example would be AWS’s Elastic File System or Azure’s File Storage.

Do not use data in a user session on the server.

Session data is useful information about each user that can be stored on the server. They are usually necessary for the correct functioning of the application. We are in the same situation as the previous point. For our web application in the cloud to benefit from elasticity we need to stop depending on the environment in which our application is running. Therefore, we need a service that allows this information to be stored and can be accessed quickly.

To manage these situations, Cloud environments offer in-memory database solutions such as ElastiCache in AWS or Azure Redis Cache in Azure.

Use cache for static content

The use of cache frees our application from managing those requests in which the content is not modified (e.g. an image). If we add to this the fact that this response is offered from different parts of the world depending on the geographical location of the origin, this improves speed and reduces the consumption of resources on our servers. However, the web application in the cloud has to be aware of this fact to be able to manage these requests and control when it has or does not have, to update content.

Services such as AWS Cloud Front or Azure’s Content Delivery Network are designed for this purpose.

Deploying new functionalities without loss of service

The last point that, in our opinion, a web application in the cloud must fulfill is to deploy without loss of service. Then, test with an identical environment to the productive one and guarantee, in case of problems, a rollback to the previous version. This should be done quickly and transparently for users.

Designing and building such processes can be complicated, as it requires extensive knowledge of the infrastructure as well as the technology used by each vendor. We can only implement them successfully if we establish automated systems for change control, deployment, and infrastructure management.

If you have in mind, or you are considering migrating your web application to the cloud, and you need someone to help you or guide you through the whole process do not hesitate to contact us.

Leave a Reply

Your email address will not be published. Required fields are marked *