Blog

Horizontal scaling: server spacing

When choosing a platform for a corporate system, large companies have at least one common criterion – performance. If the system can handle a maximum of 5,000 simultaneous user sessions, and the company has 20,000 of them, it is unlikely that such a software product will be suitable. In this case, the scalability of the system comes into play.

Scalability is the ability of a system to increase its performance when the number of resources allocated to it increases.

Views of scaling

There are two types of scaling: vertical and horizontal.

  • Vertical scaling is increasing application performance by adding resources within existing hardware. For example, increasing RAM or replacing the processor with a more powerful one. In this case scalability is limited, it is very easy to reach a ceiling.
  • Horizontal scaling – increasing application performance by distributing the load between existing and new hardware. As long as it is possible to increase the number of servers, it is possible to increase performance and provide comfortable work for more users.

In order for an application to support horizontal scaling, the application code must support a mechanism for servers to communicate and synchronize with each other. We have provided opportunities for horizontal scaling, so the SimpleOne platform can be used to implement a project of almost any level of load.

Horizontal scaling of servers is performed on two levels:

  1. Breaking down the system into smaller structural components by functions and distributing them on separate servers.
  2. Scaling within a function:
    • increasing the number of servers performing the same function in parallel;
    • use of modern technologies. For example, database (DB) server scaling utilizes replication, partitioning, and sharding.

In this article, we will discuss how SimpleOne does horizontal scaling at the first level – server spacing.

Server Spacing

The SimpleOne system is divided by functions into four groups: client server, application server, database server and file storage server.

Client Server

The client server is responsible for the primary communication between the user and the application. This server allows the application to run by loading the code needed to run the application: CSS, JS, ReactJS, ConfigJS.

Application Server

After the initial interaction with the client server, all user requests go to the application server. For example, the user wants a sheet or a list of buttons. The application server processes the request, asks for the data, and forwards it to the user.

Database server

The database server maintains and manages the database and is responsible for the integrity and security of the data.

The database server is the performance bottleneck. To reduce the load on it, SimpleOne stores files on a separate server.

File Storage Server

Files are stored in storage accessible via the S3 protocol.

Amazon Simple Storage Service (Amazon S3) is an object storage service offered by cloud service providers. The main advantage of the solution is the ability to store files of any type, any size, with a high level of reliability and availability.

When a file is requested, the application server accesses the file storage, which generates a token and passes it to the browser. Through the token the user gets access to the object in the file storage.

In general, development companies do not place large files (videos, pictures, etc.) on a separate server, but store them on a database server. Spreading data and file storage across different servers has advantages:

  • Reducing the load on the database server.
  • File storage allows you to work with files even when scaling the application server. Due to the use of tokens, downloading files on the client does not significantly increase the load on the application server.

Conclusion

System scalability plays an important role for large companies. Horizontal scaling gives almost infinite possibilities for increasing the performance of ESM-platform SimpleOne, which makes it suitable for the realization of high-load projects of any level.

Do you have any questions?
Contact us and our managers will advise you.
Browsing the website you agree to the use of cookies