SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
Масштабирование
сервисов с помощью
Apache Mesos
Введение в систему управления пулом ресурсов Mesos и ее
использование для создания масштабируемых приложений с помощью
фреймворков Marathon, Chronos, Singularity
Автор: Иван А. Кудрявцев
mailto: kudryavtsev_ia@bw-sw.com
www: http://bw-sw.com/
В чем проблема
1. Как осуществить “запуск множества экземпляров сервиса на
выделенных серверах”?
2. Как управлять запущенными экземплярами (останавливать,
масштабировать, перезапускать, удалять)?
Источники проблемы (1)
1. Горизонтально масштабируемые сервисы
a. две единицы обычного серверного оборудования с 2мя процессорами дешевле чем
1 единица с 4мя:
i. Supermicro 4xXeon E7530 / 256 GB RAM = 927 000
ii. Supermicro 2xE5-2603v3 / 128 GB RAM = 220 000
iii. Supermicro 1xE3-1231v3 / 32 GB RAM = 131 000
b. 10 серверов Supermicro дешевле чем 5 серверов HP при равной мощности (STSS.ru):
i. HP ProLiant DL60 Gen9 2xE5-2603v3 / 128 GB RAM = 425 000
ii. 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) - выделение и освобождение виртуальных машин в Amazon
c. Openstack/Cloudstack API - выделение и освобождение виртуальных машин в частных и
публичных облаках (например, Rackspace)
2. Управление конфигурациями
a. Chef
b. Puppet
c. Ansible
3. Управление пулом процессоров и памяти:
a. Apache Mesos (generic resource planner) - mature
b. Hadoop YARN (batch resource planner) - mature
c. Docker Swarm (docker specific) - rookie
Apache Mesos: экосистема
1. Apache Zookeeper: 1-N шт (DLM, конфигурация).
2. Apache Mesos Master: 1 - M шт (управление планированием ресурсов)
3. Apache Mesos Slave: M+ (агент на узле исполнения)
4. Каркасы Mesos: Marathon, Chronos, Singularity, etc.
a. http://mesos.apache.org/documentation/latest/mesos-frameworks/
Marathon Framework
● Каркас для запуска и управления долгоживущими процессами в
Mesos:
○ Mesos native containerizer
○ Mesos docker containerizer
● Интерфейс
○ SPA UI
○ REST API
● Стабильная реализация (production-ready)
● Язык реализации: Java
Chronos Framework
● Каркас для запуска и управления долгоживущими процессами в
Mesos по расписанию (Cron-like):
○ Mesos native containerizer
○ Mesos docker containerizer
● Интерфейс
○ SPA UI
○ REST API
● Стабильная реализация (production-ready)
● Язык реализации: Java
1. {
2. "id": "bridged-webapp",
3. "cmd": "python3 -m http.server 8080",
4. "cpus": 0.5,
5. "mem": 64.0,
6. "instances": 2,
7. "container": {
8. "type": "DOCKER",
9. "docker": {
10. "image": "python:3",
11. "network": "BRIDGE",
12. "portMappings": [
13. { "containerPort": 8080, "hostPort": 0, "servicePort": 9000, "protocol": "tcp" },
14. { "containerPort": 161, "hostPort": 0, "protocol": "udp"}
15. ]
16. }
17. },
18. "healthChecks": [
19. {
20. "protocol": "HTTP",
21. "portIndex": 0,
22. "path": "/",
23. "gracePeriodSeconds": 5,
24. "intervalSeconds": 20,
25. "maxConsecutiveFailures": 3
26. }
27. ]
28. }
Mesos run command via REST
$ curl -i -H 'Content-Type: application/json' -d "@Docker.json" localhost:
5052/v2/apps
Сложности
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. service
ii. worker
iii. CRON-type
iv. on-demand
c. embedded load-balancing (using Baragon + HAProxy + Nginx)
© Bitworks Ltd., 2015
Спасибо за внимание

Más contenido relacionado

La actualidad más candente

Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Ivan Kudryavtsev
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав БахмутовCodeFest
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Ontico
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон ТурецкийCodeFest
 
Резервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условияхРезервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условияхSveta Smirnova
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
Управление контейнерами в облаках
 Управление контейнерами в облаках Управление контейнерами в облаках
Управление контейнерами в облакахAleksey Zalesov
 
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Ontico
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Alexey Lesovsky
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Ontico
 
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Alexey Lesovsky
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаКонстантин Никифоров
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Ontico
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Ontico
 
2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays HighloadYehor Herasymchuk
 

La actualidad más candente (20)

Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)Scaling services with apache mesos (and docker)
Scaling services with apache mesos (and docker)
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Резервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условияхРезервное копирование MySQL в экстремальных условиях
Резервное копирование MySQL в экстремальных условиях
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Управление контейнерами в облаках
 Управление контейнерами в облаках Управление контейнерами в облаках
Управление контейнерами в облаках
 
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
Практика использования NoSQL в высоконагруженном проекте (Дмитрий Ананьев)
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)
 
Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.Отладка и устранение проблем в PostgreSQL Streaming Replication.
Отладка и устранение проблем в PostgreSQL Streaming Replication.
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload
 

Destacado

Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...
Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...
Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...Ontico
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоOntico
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
 
Управление сервисом в течение жизненного цикла
Управление сервисом в течение жизненного циклаУправление сервисом в течение жизненного цикла
Управление сервисом в течение жизненного циклаIvan Kudryavtsev
 
Куда движется управление инфраструктурой
Куда движется управление инфраструктуройКуда движется управление инфраструктурой
Куда движется управление инфраструктуройIvan Evtukhovich
 
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...ScrumTrek
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Bitworks Software
 
Event-based self-healing monitoring / Кирилл Сотников (Cognician)
Event-based self-healing monitoring / Кирилл Сотников (Cognician)Event-based self-healing monitoring / Кирилл Сотников (Cognician)
Event-based self-healing monitoring / Кирилл Сотников (Cognician)Ontico
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиAndrey Markelov
 
Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил
Data Mining. Анализ рыночной корзины. Поиск ассоциативных правилData Mining. Анализ рыночной корзины. Поиск ассоциативных правил
Data Mining. Анализ рыночной корзины. Поиск ассоциативных правилBitworks Software
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo Development
 
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)Ontico
 
Разработка рекомендательной системы с использованием коллаборативной фильтрации
Разработка рекомендательной системы с использованием коллаборативной фильтрацииРазработка рекомендательной системы с использованием коллаборативной фильтрации
Разработка рекомендательной системы с использованием коллаборативной фильтрацииBitworks Software
 
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Ontico
 
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)Ontico
 
Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.Bitworks Software
 
Comparing ZooKeeper and Consul
Comparing ZooKeeper and ConsulComparing ZooKeeper and Consul
Comparing ZooKeeper and ConsulIvan Glushkov
 
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)Ontico
 
Consul: Service-oriented at Scale
Consul: Service-oriented at ScaleConsul: Service-oriented at Scale
Consul: Service-oriented at ScaleC4Media
 

Destacado (20)

Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...
Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...
Тошнит от колец великая битва систем мониторинга, часть I, Александр Чистяков...
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий Левченко
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
Управление сервисом в течение жизненного цикла
Управление сервисом в течение жизненного циклаУправление сервисом в течение жизненного цикла
Управление сервисом в течение жизненного цикла
 
Куда движется управление инфраструктурой
Куда движется управление инфраструктуройКуда движется управление инфраструктурой
Куда движется управление инфраструктурой
 
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
Event-based self-healing monitoring / Кирилл Сотников (Cognician)
Event-based self-healing monitoring / Кирилл Сотников (Cognician)Event-based self-healing monitoring / Кирилл Сотников (Cognician)
Event-based self-healing monitoring / Кирилл Сотников (Cognician)
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Что такое Docker
Что такое DockerЧто такое Docker
Что такое Docker
 
Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил
Data Mining. Анализ рыночной корзины. Поиск ассоциативных правилData Mining. Анализ рыночной корзины. Поиск ассоциативных правил
Data Mining. Анализ рыночной корзины. Поиск ассоциативных правил
 
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
Badoo в облаках. Решение для запуска cli-скриптов в облаке собственной разраб...
 
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
Ceph BlueStore - новый тип хранилища в Ceph / Максим Воронцов, (Redsys)
 
Разработка рекомендательной системы с использованием коллаборативной фильтрации
Разработка рекомендательной системы с использованием коллаборативной фильтрацииРазработка рекомендательной системы с использованием коллаборативной фильтрации
Разработка рекомендательной системы с использованием коллаборативной фильтрации
 
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
 
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
 
Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.Наивный байесовский классификатор. Дерево решений. Случайный лес.
Наивный байесовский классификатор. Дерево решений. Случайный лес.
 
Comparing ZooKeeper and Consul
Comparing ZooKeeper and ConsulComparing ZooKeeper and Consul
Comparing ZooKeeper and Consul
 
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
 
Consul: Service-oriented at Scale
Consul: Service-oriented at ScaleConsul: Service-oriented at Scale
Consul: Service-oriented at Scale
 

Similar a Масштабирование сервисов с помощью Apache Mesos

SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101Nadzeya Pus
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Ontico
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...ForkConf
 
Yet Another PaaS
Yet Another PaaSYet Another PaaS
Yet Another PaaSProvectus
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформуVadim Kruchkov
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesАндрей Новиков
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Artur Baranok
 
Middleware
MiddlewareMiddleware
Middlewaremegakott
 
[JAM 2.1] Cloud Computing (Dmitry Ivashnev)
[JAM 2.1] Cloud Computing (Dmitry Ivashnev)[JAM 2.1] Cloud Computing (Dmitry Ivashnev)
[JAM 2.1] Cloud Computing (Dmitry Ivashnev)jam_team
 
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров 1С-Битрикс
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Ontico
 
Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"RKVector
 
Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Cisco Russia
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStackIlya Alekseyev
 

Similar a Масштабирование сервисов с помощью Apache Mesos (20)

SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
 
Yet Another PaaS
Yet Another PaaSYet Another PaaS
Yet Another PaaS
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в Kubernetes
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Middleware
MiddlewareMiddleware
Middleware
 
Веб-кластер
Веб-кластерВеб-кластер
Веб-кластер
 
[JAM 2.1] Cloud Computing (Dmitry Ivashnev)
[JAM 2.1] Cloud Computing (Dmitry Ivashnev)[JAM 2.1] Cloud Computing (Dmitry Ivashnev)
[JAM 2.1] Cloud Computing (Dmitry Ivashnev)
 
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
 
Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"Технико-коммерческое предложение "База знаний"
Технико-коммерческое предложение "База знаний"
 
Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStack
 

Масштабирование сервисов с помощью Apache Mesos

  • 1. Масштабирование сервисов с помощью Apache Mesos Введение в систему управления пулом ресурсов Mesos и ее использование для создания масштабируемых приложений с помощью фреймворков Marathon, Chronos, Singularity Автор: Иван А. Кудрявцев mailto: kudryavtsev_ia@bw-sw.com www: http://bw-sw.com/
  • 2. В чем проблема 1. Как осуществить “запуск множества экземпляров сервиса на выделенных серверах”? 2. Как управлять запущенными экземплярами (останавливать, масштабировать, перезапускать, удалять)?
  • 3. Источники проблемы (1) 1. Горизонтально масштабируемые сервисы a. две единицы обычного серверного оборудования с 2мя процессорами дешевле чем 1 единица с 4мя: i. Supermicro 4xXeon E7530 / 256 GB RAM = 927 000 ii. Supermicro 2xE5-2603v3 / 128 GB RAM = 220 000 iii. Supermicro 1xE3-1231v3 / 32 GB RAM = 131 000 b. 10 серверов Supermicro дешевле чем 5 серверов HP при равной мощности (STSS.ru): i. HP ProLiant DL60 Gen9 2xE5-2603v3 / 128 GB RAM = 425 000 ii. Supermicro 2xE5-2603v3 / 128 GB RAM = 220 000 Тренд: построение систем за счет избыточного масштабирования на обычных компонентах
  • 4. Источники проблемы (2) 1. Архитектура, основанная на микросервисах дизайн подразумевает запуск и контроль множества разнородных сервисов и организацию взаимодействия между ними с использованием открытых интерфейсов 2. Широкое изменение рабочей нагрузки на сервис в течение дня: a. ядро сервиса на собственной инфраструктуре b. арендованная инфраструктура (Cloud) по запросу (автоматизированное подключение и отключение мощностей внешних поставщиков по API)
  • 5. Проблемы управления инфраструктурой 1. Добавление и удаление новых ресурсов инфраструктуры 2. Аккаунтинг использования ресурсов 3. Планирование использования ресурсов 4. Справедливое распределение ресурсов между задачами 5. Мониторинг задач и обеспечение их работоспособности 6. Обнаружение в комплексных сервисах (Discovery) 7. Обеспечение безопасности и множественного доступа к пулу ресурсов
  • 6. Методы управления инфраструктурой 1. Управление вычислительными узлами a. IPMI (IaaS) - включение и отключение аппаратных узлов b. Amazon EC2 API (IaaS) - выделение и освобождение виртуальных машин в Amazon c. Openstack/Cloudstack API - выделение и освобождение виртуальных машин в частных и публичных облаках (например, Rackspace) 2. Управление конфигурациями a. Chef b. Puppet c. Ansible 3. Управление пулом процессоров и памяти: a. Apache Mesos (generic resource planner) - mature b. Hadoop YARN (batch resource planner) - mature c. Docker Swarm (docker specific) - rookie
  • 7. Apache Mesos: экосистема 1. Apache Zookeeper: 1-N шт (DLM, конфигурация). 2. Apache Mesos Master: 1 - M шт (управление планированием ресурсов) 3. Apache Mesos Slave: M+ (агент на узле исполнения) 4. Каркасы Mesos: Marathon, Chronos, Singularity, etc. a. http://mesos.apache.org/documentation/latest/mesos-frameworks/
  • 8.
  • 9. Marathon Framework ● Каркас для запуска и управления долгоживущими процессами в Mesos: ○ Mesos native containerizer ○ Mesos docker containerizer ● Интерфейс ○ SPA UI ○ REST API ● Стабильная реализация (production-ready) ● Язык реализации: Java
  • 10. Chronos Framework ● Каркас для запуска и управления долгоживущими процессами в Mesos по расписанию (Cron-like): ○ Mesos native containerizer ○ Mesos docker containerizer ● Интерфейс ○ SPA UI ○ REST API ● Стабильная реализация (production-ready) ● Язык реализации: Java
  • 11. 1. { 2. "id": "bridged-webapp", 3. "cmd": "python3 -m http.server 8080", 4. "cpus": 0.5, 5. "mem": 64.0, 6. "instances": 2, 7. "container": { 8. "type": "DOCKER", 9. "docker": { 10. "image": "python:3", 11. "network": "BRIDGE", 12. "portMappings": [ 13. { "containerPort": 8080, "hostPort": 0, "servicePort": 9000, "protocol": "tcp" }, 14. { "containerPort": 161, "hostPort": 0, "protocol": "udp"} 15. ] 16. } 17. }, 18. "healthChecks": [ 19. { 20. "protocol": "HTTP", 21. "portIndex": 0, 22. "path": "/", 23. "gracePeriodSeconds": 5, 24. "intervalSeconds": 20, 25. "maxConsecutiveFailures": 3 26. } 27. ] 28. }
  • 12. Mesos run command via REST $ curl -i -H 'Content-Type: application/json' -d "@Docker.json" localhost: 5052/v2/apps
  • 13. Сложности 1. Выбор узлов, на которых можно развертывать сервис. Проблема решаема заданием узлам tag-ов и указанием совместимых tag-ов при создании задачи. 2. Обнаружение сервисов. Заранее не известно где запустится экземпляр, поэтому необходима интеграция с сервисом конфигурации (Zookeeper, Etcd, Consul) a. внешняя интеграция (через API Mesos, Marathon) b. внутренняя интеграция (подготовка контейнеров)
  • 14. What’s next 1. Singularity от HubSpot - all-in-one framework более продвинутый чем Marathon: a. Marathon + Chronos в одном флаконе b. Различные типы запуска: i. service ii. worker iii. CRON-type iv. on-demand c. embedded load-balancing (using Baragon + HAProxy + Nginx)
  • 15.
  • 16. © Bitworks Ltd., 2015 Спасибо за внимание