Adaptivni Sistemi Avtomatičnogo Upravlinnâ (Dec 2021)
Web-application Architecture for the Kubernetes Cluster at the Google Cloud Platform with Horizontal Automatic Scaling
Abstract
The article is devoted to the development of the Web application architecture with the distribution of the application by components into 2 tiers connected by the messaging system, and using of load balancing by horizontal scaling in the Kubernetes cloud cluster. Queue length in the message broker is used for scaling as critirea. This approach allows to increase resource usage efficiency of the system. The relevance of the topic is due to the widespread use of various web services and web applications. When the load of web applications increases it can lead to delays or even failure of these services. Therefore, the issues of creating reliable, fault-tolerant, and scalable systems become extremely important. If the load is greater than the system or service can withstand, it may result in denial of service or termination of service. Also, the load can be unevenly distributed to services over a period of time, and therefore, even if the system has enough resources to withstand high loads, during periods of low load, these resources will not be used, resulting in problems of inefficient use of resources and overspending. The proposed system was deployed in the Google Cloud environment. The components of the server part of the Web application are grouped into 2 tiers. The microlayer components of the first layer analyze HTTP client requests and transmit messages to the components of the second layer using the Google Pub-Sub messaging system. It is proposed to make all relatively "difficult" operations on the components of the second layer. For the numerical experiment, a system was implemented using an algorithm for horizontal scaling of microservices based on the current number of messages in the queue. Load testing of the system was performed, which showed that the created system is capable of processing more than 2 times more requests for the same period of time compared to the system without scaling. Ref. 6, pic. 7, tabl. 1.
Keywords