Эта модель определяет три направления для масштабирования приложений: X, Y, Z.
![](cfac08bc-c9b0-4894-ab40-7e319c5bc13b.jpg)
## Масштабирование по оси Х
Масштабирование по оси X часто применяют в монолитных приложениях. Запускаются несколько экземпляров программы, размещенных за балансировщиком нагрузки. Балансировщик распределяет запросы между N одинаковыми экземплярами. Это отличный способ улучшить мощность и доступность приложения. Это [горизонтальное масштабирование](Горизонтальное%20масштабирование.md).
![](df56a7dd-ec73-4188-9502-8b6db06762f6.jpg)
## Масштабирование по оси Z
Масштабирование по оси Z тоже предусматривает запуск нескольких экземпляров монолитного приложения, но в этом случае, в отличие от масштабирования по оси X, каждый экземпляр отвечает за определенное подмножество данных.
Маршрутизатор, выставленный впереди, задействует атрибут запроса, чтобы на править его к подходящему экземпляру. Для этого, к примеру, можно использовать поле userid.
Масштабирование по осям X и Z увеличивает мощность и доступность приложения. Но ни один из этих подходов не решает проблем с усложнением кода и процесса раз работки. Чтобы справиться с ними, следует применить масштабирование по оси У, или функциональную декомпозицию (разбиение). Монолитное приложение разбивается на отдельные сервисы.