Масштабирование сервисов с помощью Apache Mesos Введение в систему управления пулом ресурсов Mesos и ее использование для создания масштабируемых приложений с помощью фреймворков Marathon, Chronos, Singularity Автор: Иван А. Кудрявцев mailto: [email protected]www: http://bw-sw.com/
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Масштабирование сервисов с помощью Apache MesosВведение в систему управления пулом ресурсов Mesos и ее использование для создания масштабируемых приложений с помощью фреймворков Marathon, Chronos, Singularity
Автор: Иван А. Кудрявцев mailto: [email protected]: http://bw-sw.com/
b. 10 серверов Supermicro дешевле чем 5 серверов HP при равной мощности (STSS.ru):i. HP ProLiant DL60 Gen9 2xE5-2603v3 / 128 GB RAM = 425 000ii. Supermicro 2xE5-2603v3 / 128 GB RAM = 220 000
Тренд: построение систем за счет избыточного масштабирования на обычных компонентах
Источники проблемы (2)
1. Архитектура, основанная на микросервисах
дизайн подразумевает запуск и контроль множества разнородных сервисов и организацию взаимодействия между ними с использованием открытых интерфейсов
2. Широкое изменение рабочей нагрузки на сервис в течение дня:a. ядро сервиса на собственной инфраструктуре
b. арендованная инфраструктура (Cloud) по запросу (автоматизированное подключение и отключение мощностей внешних поставщиков по API)
Проблемы управления инфраструктурой
1. Добавление и удаление новых ресурсов инфраструктуры2. Аккаунтинг использования ресурсов3. Планирование использования ресурсов4. Справедливое распределение ресурсов между задачами5. Мониторинг задач и обеспечение их работоспособности6. Обнаружение в комплексных сервисах (Discovery)7. Обеспечение безопасности и множественного доступа к пулу
ресурсов
Методы управления инфраструктурой1. Управление вычислительными узлами
a. IPMI (IaaS) - включение и отключение аппаратных узловb. Amazon EC2 API (IaaS) - выделение и освобождение виртуальных машин в Amazonc. Openstack/Cloudstack API - выделение и освобождение виртуальных машин в частных и
публичных облаках (например, Rackspace)2. Управление конфигурациями
1. Выбор узлов, на которых можно развертывать сервис. Проблема решаема заданием узлам tag-ов и указанием совместимых tag-ов при создании задачи.
2. Обнаружение сервисов. Заранее не известно где запустится экземпляр, поэтому необходима интеграция с сервисом конфигурации (Zookeeper, Etcd, Consul)a. внешняя интеграция (через API Mesos, Marathon)b. внутренняя интеграция (подготовка контейнеров)
What’s next
1. Singularity от HubSpot - all-in-one framework более продвинутый чем Marathon:a. Marathon + Chronos в одном флаконеb. Различные типы запуска:
i. serviceii. workeriii. CRON-typeiv. on-demand
c. embedded load-balancing (using Baragon + HAProxy + Nginx)