Webinar
ITGLOBAL.COM events

Horizontal scaling: server distribution

Blog Hardware
Horizontal scaling: server distribution

In large companies, the performance of corporate systems directly affects the efficiency of business processes. When a system designed for 5,000 simultaneous user sessions cannot handle a real load of 20,000 users, the question of infrastructure scaling arises.

Scalability determines the system’s ability to increase performance by adding resources. In practice, two fundamentally different approaches are used: vertical and horizontal scaling.

Vertical scaling involves increasing the capacity of existing hardware by adding more RAM or replacing processors with more powerful models. However, this method has natural limitations due to the maximum performance of a single server.

Horizontal scaling, on the other hand, involves distributing the workload across multiple servers. This approach enables virtually unlimited performance growth by adding new servers to the infrastructure.

Successful implementation of horizontal scaling requires a special approach to the application architecture. The code must support mechanisms for communication and synchronization between servers. With proper implementation of these mechanisms, the system can operate efficiently at any load level.

 Horizontal scaling is implemented at two levels. The first level involves dividing the system into functional components and distributing them across separate servers. The second level involves scaling within each function by increasing the number of servers and utilizing modern load distribution technologies.

 

Functional separation of servers

A rational division of the system by function involves the allocation of four main components: a client server, an application server, a database server, and a file storage server.

 Client Server

The client server provides the primary interaction of the user with the system. It is responsible for launching the application and loading the necessary components – CSS styles, JavaScript scripts, React libraries, and configuration files.

Application Server

After initialization, all user requests are processed by the application server. If a user needs to retrieve a list of items or perform a specific action, the application server processes the request, interacts with the database, and generates a response.

 Database Server

The database server manages the storage and processing of structured data, ensuring its integrity and security. This component often becomes a bottleneck in system performance, making it crucial to properly manage data operations and minimize load.

File storage Server

To optimize performance, large files – images, videos, and documents – are placed in a separate storage, accessible via the S3 protocol. This approach has several advantages: the load on the database server is reduced, and the work with files can be scaled independently of the rest of the system components.

When a file is requested, the application server retrieves it from storage, obtains a temporary access token, and sends it to the browser. The user then accesses the file directly via this token, which significantly reduces the load on the application server.

Conclusion

Proper application of horizontal scaling allows you to create highly loaded systems that can effectively process almost any volume of requests. The key to success is the correct division of functions between servers and the use of modern load distribution technologies.Horizontal scaling: server distribution

 If you are interested in purchasing server equipment or want to get advice on choosing the optimal solution for your business tasks, ITGLOBAL.COM specialists are ready to help.

Request a consultation

We use cookies to optimise website functionality and improve our services. To find out more, please read our Privacy Policy.
Cookies settings
Strictly necessary cookies
Analytics cookies