Scalability

Scalability in electronic data processing refers to the ability of a hardware or software system to react to changing requirements. In practice, this assumes growth scanrios. But scalability can also mean being able to adapt to shrinking requirements. The adaptation is realized by adding/removing additional components, such as adding more memory or increasing the network capacity.

The capacity of a system can be changed in two ways.

  • Vertical scaling (scale up): If resources are increased or reduced in an existing system (computer/node), this is referred as vertical scaling. Examples of adding more resources are using a more powerful CPU, expanding the existing RAM or installing a more powerful graphics card.

  • Horizontal scaling (scale out): With horizontal scaling, the adaptation of performance is not done by adding/improving individual components. Instead, additional (usually equivalent) computers/nodes are added to the existing system. From a hardware point of view, there are basically no limits to horizontal scaling.

As example of vertical and horizontal scaling, imagine a vehicle. With vertical scaling, you attach a trailer to the vehicle when demand increases, or you remove the trailer again if demand decreases. With horizontal scaling, you have several vehicles at the same time to which the entire load/demand is distributed and use them according to the required resources.

The advantage of vertical scaling is a better coordination as only one system is used. This means that the used software does not usually need to be adapted. However, this one system cannot be expanded/improved at will if the best components are already being used at the time of adaptation. This form of scaling is therefore best suited to small, manageable applications.

The advantage of horizontal scaling is that it allows you to react more flexibly and quickly to the necessary requirements. Nevertheless, with more than one vehicle/system, the need for coordination increases and the efficiency depends very much on the implementation of the software used. Not all software can be parallelized equally well. It is therefore best suited for larger applications where it is already foreseeable that further scaling will have to take place in the future.

We at Engity have decided in favor of horizontal scaling and thus offer our customers a future-proof solution with unlimited scalability.