Сегодня горизонтальное масштабирование — довольно частое требование к приложениям. Для легковесных инфраструктур на основе микрослужб предполагается, что оно будет возможно. DC/OS обрабатывает это несколькими способами, причем Marathon отвечает за обработку фактического наращивания емкости. В учебнике по DC/ OS приведен пример скрипта Python (https://dcos.io/docs/1.8/usage/tutorials/autoscaling/cpu-memory), отслеживающего потребление ЦП и памяти службой Marathon. Основываясь на собранной метрике, этот сценарий увеличит количество экземпляров приложений до потолка, когда сочтет, что момент настал.
Немного сложнее расширенная функция Marathon-LB — она масштабирует в зависимости от количества запросов на приложение за данный период времени. Сценарий автомасштабирования опрашивает оконечную точку статистики HAProxy (на которой основан Marathon-LB) и автоматически масштабирует экземпляры приложений на основе входящих запросов, путем деления количества запросов, просматриваемых в секунду, на целевое количество запросов на один экземпляр приложения.
Есть и другие возможности: например, http://bit. ly/MicroscalingQueue дает пример «микроскалинга » на основе количества запросов в очереди Azure Storage Queue, где задания, считающиеся более важными, масштабируются раньше менее важных фоновых задач. Все эти примеры (их можно увидеть на GitHub) предлагают возможность разработки конкретных настроек.
Если Вы используете highload систему, то Вам необходимо задуматься над маштабирование, это достигаться разными способами, мы можем подобрать нужный и реализовать его, [email protected]