Масштабируемость - ключевой фактор при проектировании системы. Программа корпоративного уровня должна иметь возможность обрабатывать большое количество запросов одновременно и быстро отвечать самой последней информацией.

Реализовать свою следующую идею на миллион долларов на ноутбуке просто не поможет. Пришло время масштабировать. Этого можно добиться двумя способами: масштабированием по вертикали и по горизонтали. Ниже приводится описание каждого из них и анализ их плюсов и минусов.

Вертикальное масштабирование

Вертикальное масштабирование увеличивает масштаб системы за счет увеличения мощности существующей машины. На практике это означало бы добавление более совершенных процессоров, увеличение ОЗУ или другие настройки, повышающие мощность.

Горизонтальное масштабирование

Горизонтальное масштабирование увеличивает масштаб системы за счет добавления дополнительных машин. Это влечет за собой сбор и подключение нескольких машин для обработки большего количества системных запросов.

Сравнение

При выборе вертикального или горизонтального масштабирования необходимо учитывать определенные факторы:

Балансировка нагрузки. Горизонтальное масштабирование требует балансировки нагрузки, что означает, что система также должна включать компонент, который равномерно распределяет трафик между машинами. Очевидно, что этот компонент не нужен в вертикальном решении с одной машиной.

Устойчивость к сбоям. Горизонтальное масштабирование более устойчиво к сбоям системы, поскольку нагрузка распределяется между несколькими компьютерами. В вертикально масштабируемой системе есть только одна точка отказа.

Машинная связь. Для горизонтального масштабирования требуется сетевой обмен или вызовы между машинами. Это будет медленнее и более подвержено сбоям, чем обмен данными между процессами одной вертикальной машины.

Согласованность данных. Горизонтальное масштабирование означает, что разные машины обрабатывают разные запросы, что может привести к рассинхронизации их данных, что необходимо решить. Между тем, вертикально масштабируемая машина не страдает этой проблемой.

Ограничения. На самом деле нет ограничений на горизонтальное масштабирование, помимо бюджета и места. Однако отдельная машина может быть улучшена только до тех пор, пока она не достигнет текущих ограничений вычислительной мощности.

Что используют реальные компании при масштабировании своих систем, если они лучше понимают варианты? Ответ - оба. На самом деле, это горизонтально, но компании извлекают выгоду из преимуществ вертикального масштабирования, добавляя очень мощные машины высшего уровня при горизонтальном масштабировании. Это гибридный подход, сочетающий скорость и согласованность вертикального масштабирования с гибкостью и бесконечной масштабируемостью горизонтального масштабирования.