🧊 Куб масштабирования
Куб масштабирования (Scale Cube) — модель, которая указывает три принципиально возможных направления (аспекта) для масштабирования IT-систем.
Модель была разработана Мартином Фаулером и Джеймсом Льюисом, хотя одним из основных её популяризаторов по праву считается небезызвестный Крис Ричардсон. Экскурс в историю закончен, теперь перейдём к сути.
Модель куба масштабирования включает три типа масштабирования: по осям X, Y и Z.
🔤 Масштабирование по оси X
Запускается несколько одинаковых экземпляров приложения за балансировщиком нагрузки. Недостатки: увеличенное потребление памяти и отсутствие решения проблем, обусловленных сложностью приложения.
🔤 Масштабирование по оси Y
Приложение делится на отдельные независимые сервисы, каждый из которых отвечает за свою область функциональности. Возможны разные подходы к декомпозиции: на основе действий ("глаголы") или объектов ("существительные"). Недостатки: сложность управления множеством сервисов и рост зависимости от сетевой инфраструктуры.
🔤 Масштабирование по оси Z
Каждому серверу выделяется своя часть данных (разделение может выполняться по географическому признаку, по идентификационным номерам клиентов и т.д.), запросы автоматически направляются на нужный сервер. Недостатком является сложность реализации маршрутизации и потенциальная неравномерность распределения нагрузки.
Более подробно про плюсы и минусы каждого подхода можно прочитать в статье К. Ричардсона, доступной по ссылке.
💡 При этом важно отметить, что на практике масштабирование крупных систем часто выполняется сразу по нескольким осям.
#архитектура #интеграции #сервисы
Post #266
214

- 🔥 3