Масштабируемость — это способность системы, процесса или сети расти и управлять растущим спросом. Распределенная система для поддержки постоянного роста должна быть масштабируема.
Примеры причин, по которым архитектура потребует масштабирования: увеличение объема данных или объема работы, как например, количество транзакций. Предпочтительно добиваться такого масштабирования без потери производительности.
Даже если архитектура спроектирована (или заявлена) как масштабируемая, как правило, производительность системы снижается с ростом из-за управленческих или инфраструктурных затрат. Например, скорость сети может снизиться из-за того, что сервера находятся далеко друг от друга. Так же некоторые задачи не могут быть распределены либо из-за их атомарной природы. Однако, масштабируемая архитектура помогает избегать такие ситуации и дает возможность равномерно сбалансировать нагрузку на узлы системы.
Горизонтальное (Horizontal) и вертикальное (Vertical) масштабирование. Горизонтальное масштабирование - масштабирование за счет добавления большего количества серверов в пул ресурсов, тогда как вертикальное масштабирование означает, масштабирование за счет увеличения мощности (ЦП, ОЗУ, хранилище и т. д.) у существующего сервера. Вертикальное масштабирование ограничено емкостью одного сервера, а масштабирование сверх этой емкости часто связано с простоем и имеет верхний предел.
Для наглядности сравним вертикальное масштабирование с работой грузчика - даже если станет сильнее и будет обслуживать грузы тяжелее, физический предел неизбежен. В то же время, если нанять большее количество грузчиков, которые обслужат большее количество грузов. Это пример горизонтального масштабирования.
Примерами горизонтального масштабирования являются Cassandra и MongoDB, поскольку они масштабируются путем добавления дополнительных машин для удовлетворения растущих потребностей. В свою очередь, MySQL - пример вертикального масштабирования, поскольку легко масштабируется вертикально, переключаясь с меньших машин на большие. Однако, как уже было сказано, этот процесс имеет простои.