Микросервисная архитектура - масштабирование
Масштабирование - это процесс разделения программного обеспечения на различные единицы. Масштабирование также определяет масштабируемость. Масштабируемость - это возможность реализовать более продвинутые функции приложения. Это помогает повысить безопасность, долговечность и ремонтопригодность приложения. У нас есть три типа процедур масштабирования, которые используются в отраслях. Ниже приведены различные методики масштабирования с соответствующими примерами из реальной жизни.
Масштабирование по оси X
Масштабирование по оси X также называется горизонтальным масштабированием. В этой процедуре все приложение делится на разные горизонтальные части. Обычно любое приложение веб-сервера может иметь этот тип масштабирования. Рассмотрим обычную архитектуру MVC, которая следует горизонтальному масштабированию, как показано на следующем рисунке.
В качестве примера можно рассмотреть любое приложение-сервлет JSP. В этом приложении контроллер управляет каждым запросом и будет генерировать представление, связываясь с моделью всякий раз, когда это необходимо. Обычно этому методу масштабирования следуют монолитные приложения. Масштабирование по оси X очень простое и требует меньше времени. В этой методологии одно программное обеспечение будет масштабироваться в зависимости от различных задач, за которые отвечает подразделение. Например, контроллер отвечает за управление входящим и исходящим запросами, представление отвечает за представление бизнес-функций пользователям в браузере, а модель отвечает за хранение наших данных и работает как база данных.
Масштабирование по оси Y
Масштабирование по оси Y также называется вертикальным масштабированием, которое включает масштабирование любого уровня ресурсов. Любую систему DBaaS или Hadoop можно рассматривать как масштабируемую по оси Y. В этом типе масштабирования запросы пользователей перенаправляются и ограничиваются путем реализации некоторой логики.
Давайте рассмотрим Facebook в качестве примера. Facebook необходимо обрабатывать 1,79 миллиона пользователей каждую секунду; следовательно, управление трафиком - огромная ответственность сетевых инженеров Facebook. Чтобы избежать любой опасности, они следуют масштабированию по оси Y, которое включает одновременную работу нескольких серверов с одним и тем же приложением. Теперь, чтобы контролировать этот огромный уровень трафика, Facebook перенаправляет весь трафик из одного региона на определенный сервер, как показано на рисунке. Такая передача трафика на основе региона называется на архитектурном языке балансировкой нагрузки.
Этот метод разделения ресурсов на небольшие независимые бизнес-единицы известен как масштабирование по оси Y.
Масштабирование по оси Z
Масштабирование по осям X и Y намного легче понять. Однако одно приложение также можно масштабировать на бизнес-уровне, что называется масштабированием по оси Z. Ниже приведен пример масштабирования приложения службы такси в различных вертикалях бизнес-единиц.
Преимущества масштабирования
Cost - Правильное масштабирование программного обеспечения снизит стоимость обслуживания.
Performance - Из-за слабой связи производительность правильно масштабируемого программного обеспечения всегда лучше, чем немасштабируемого программного обеспечения.
Load distribution - Используя различные технологии, мы легко можем поддерживать нагрузку на наш сервер.
Reuse - Масштабируемость программного обеспечения также увеличивает удобство использования программного обеспечения.