Few Thoughts about Scalability
Back to Articles
Software Telecom Whitepaper

Few Thoughts about Scalability

March 13, 2018 2 min
Aivis Olsteins

Aivis Olsteins

Nowadays it is difficult to find a piece of software which is not scalable by some measure. That is perhaps not only due to the fact that it was originally designed to be scalable in the first place, but rather in a larger context systems operate nowadays. As an example lets take a popular webserver, say Apache. It was of course designed with some scalability in mind, in terms of adding more worker processes when number of requests increases, and can do it in very intelligent and effective way. However, at some point the system resources would be exhausted and that can put the limits to the maximum number the server can handle. But if you look it at larger context - a webserver does not have to be a single standalone machine anymore: it can be a set of identical webservers, server by a load balancer, which distributes load between individual servers. In such way the capacity can increase far beyond limits of what single server can do. And this functionality was not necessary designed and buit in by Apache designers in the first place.

The definition of scalabilty says that there are two dimensions of scalability: horizontal, where adding more similar nodes increases system performance. That is the case described above in the example of webserver. The other dimension is vertical, where adding more resources (usually hardware) to the same node will add more capacity. But maybe in a wider system context there is another dimension, which is neither vertical nor horizontal: splitting different tasks to different nodes. if we take an example of webserver, that would be taking apart work of processing an individual request, and delegating these tasks to different nodes. That, of course, is not new concept: the proxy in front of webserver can do TLS negotiation and decoding, pass unencrypted traffic to webserver, therefore reducing the load. In the larger setups database are split on the separate servers, further reducing loads etc.

The scalability of this third mode (neither vertical nor horizontal) is a task of system architects. That mostly boils down to designing the system in a way that it can be separated in small, "atomic" tasks which can eventually run on their own, on a separate server, a.k.a. microservices. They are easier to manage, profile their performance, and debug. They can be initially set to operate to share single resource , i. e. single server and later, based on each process performance decided either to move to the separate hardware or not. And besides that, two of the other scalability dimensions apply as well.

To sum up, in the context of the system, not a single application, there are more than 2 dimensions of scalability. The system architects as well as developers should be aware of it.

 

Share this article

Aivis Olsteins

Aivis Olsteins

An experienced telecommunications professional with expertise in network architecture, cloud communications, and emerging technologies. Passionate about helping businesses leverage modern telecom solutions to drive growth and innovation.

Related Articles

Case Study: Global Communications Company

Case Study: Global Communications Company

A leading communications company used our cloud Voice platform to send 30 million OTP calls per month to their customers, resulting in cost reduction and incrased conversion

Read Article
Bridging The Delay Gap in Conversational AI: The Backpressure Analogy

Bridging The Delay Gap in Conversational AI: The Backpressure Analogy

Conversational AI struggles with the time gap between text generation and speech synthesis. A “backpressure” mechanism, akin to network data flow control, could slow text generation to match speech synthesis speed, improving user interaction.

Read Article
How Voice AI Agents Can Automate Outbound Calls and Unlock New Opportunities for Businesses: A Deeper Dive

How Voice AI Agents Can Automate Outbound Calls and Unlock New Opportunities for Businesses: A Deeper Dive

AI voice agents transform healthcare scheduling by reducing costs, administrative tasks, and no-shows. They offer 24/7 service, multilingual support, proactive reminders, and valuable insights, improving efficiency and patient experiences.

Read Article
How to Fix Your Context: Mitigating and Avoiding Context Failures in LLMs

How to Fix Your Context: Mitigating and Avoiding Context Failures in LLMs

Larger context windows in LLMs cause poisoning, distraction, confusion, and clash. Effective context management (RAG, pruning, quarantine, summarization, tool loadouts, offloading) remains essential for high-quality outputs.

Read Article

SUBSCRIBE TO OUR NEWSLETTER

Stay up to date with the latest news and updates from our telecom experts