Encoding a web application and bringing it to the stage of production is an important achievement. Although this success is important, what is important is the sustainability of it. For this reason, our application must continue to provide service without experiencing a loss in performance, under heavy load.
Why We Should Operate Our Applications?
As Medianova, we aim to serve our customers with the least error possible. Therefore, the need for back-up operation of the products that our customers receive service is emerging. At the same time, due to these back-ups in case of intense requests, possible attacks, and failures, our service will continue to work without any pause.
Why Should We Scale Our Applications?
All applications that serve the end user experience performance problems as the number of users increases, the concentration of requests or the operational load increases. In this case, service end-users are not able to execute the service they receive in full and will be unavailable after a certain point. Therefore, we need to scale our services.
How to Scale Our Web Application?
Let us first examine how a simple web application works.
In the above diagram, we see a classic web application. The application, which is not under heavy traffic, is operated and managed as such. However, as the number of users and operational weight begin to increase, the load to our application server will increase and in this case, it will be unable to make healthy turns to the end user.
In this case, we can scale our application and distribute the load in a way like this.
In the diagram above, the user first comes to a Load Balancer, then the Load Balancer directs it to one of the defined web application servers. Web servers are connected to the Cache-Database servers to answer this request as the normal process is doing the return. In this way, our Web application can grow in proportion to the increasing number of users.
Are We Not Backed Up By Scaling Our Applications?
Unfortunately no. Multi-site back-up comes into play here. When we examined the above diagrams, the scaling operation was done in a data center only. Because they are all within the same data center, we can be out of service because we cannot direct the user to a different location in any network failure or hardware failures. What do we do? Let’s examine the diagram below.
As you can see in the diagram, unlike the previous diagrams, there are application servers, databases and cache servers that are identical to each other in two different data centers.
There is also GeoDNS Loadbalancer instead of Loadbalancer servers located in front of application servers. The key point is exactly this place. Thanks to GeoDNS Loadbalancer, we can direct the users to the servers that are closest to their location and get the fastest answers without having to use a normal load balancer.
With this method, we have both load balancing and multiple site back-up. When there is a problem with accessing any data center, GeoDNS load balancer provides alternative and working data center traffic and enables users to continue to receive services.
Another important point in this diagram is that the database and cache servers serve as a mirror between data centers. In this way, a location entered into the record can be read from the other location. This ensures data integrity.
Our Backed-Up Medianova Services
As mentioned above, our services are locally backed up and backed up according to possible out-of-service situations. The Medianova API and panel services, which serve Medianova customers, are currently in service.