Доклад про ближайшее будущее в эксплуатации распределённых систем.
Компания Mesosphere весной 2016 сделала свою платформу DC/OS (data center operation system) бесплатной и открытой. Платформа DC/OS унифицирует и упрощает процесс поставки и эксплуатации систем.
Основными особенностями платформы являются:
– переход от host centric к resource centric подходу для всех компонентов вашего проекта за счёт представления серверов как ресурсов для приложения (с помощью mesos и marathon);
– наличие инструментов автоматического восстановления вашего проекта после аварии;
– marketplace для приложений. Например, можно развернуть MySQL, Elasticsearch, Kafka или mongodb кластер, используя готовые скрипты развертывания. Процесс развертывания кастомизируется, в случае необходимости можно описать кастомные приложения и поправить скрипты существующих;
– наличие API для интеграции в ваши системы CI/CD, мониторинга, и т.д.
Основные компоненты DC/OS:
– Apache Mesos — абстракция над датацентром, которая представляет сервера (физические и виртуальные) как ресурсы и распределяет эти ресурсы на основании данных о потребностях приложения;
– Marathon — система распределённого запуска приложений (в т.ч. docker контейнеров), основной фишкой является возможность декларативного описания вашей системы. Вы можете описать, сколько ресурсов нужно вашему приложению, зависимости между приложениями, и в каком порядке производить деплой.
Доклад разбит на три части:
– Интро про DC/OS, сравнение с kubernetes и coreos стеком;
– Рассказ про компоненты mesos и marathon, как их можно использовать с докером (и без!) уже сейчас;
– Опыт Express 42. Мы построили CI/CD платформу для приложений, с использованием Mesos, Marathon, Docker и Jenkins 2.0.
11. 11
Микросервисы
– 10/20/30 компонентов
– могут иметь связи any-to-any
– компоненты появляются и
исчезают
– реестр сервисов(static, dynami,
service discovery)
Устройство проекта:
18. 18
Свой low-level под каждую площадку
Способ деплоя зависит от площадки
Сложность поддержки:
количество сервисов X количество площадок
Жизнь вне AWS
20. 19
Когда вы в последний раз выделяли память для запуска
приложения на своем ноутбуке? (OS делают это за нас уже
почти пол века!)
Рефлексия
21. 19
Когда вы в последний раз выделяли память для запуска
приложения на своем ноутбуке? (OS делают это за нас уже
почти пол века!)
Зачем чинить то, что сломалось?
Рефлексия
22. 19
Когда вы в последний раз выделяли память для запуска
приложения на своем ноутбуке? (OS делают это за нас уже
почти пол века!)
Зачем чинить то, что сломалось?
Зачем нам концепция “Сервер”?
Рефлексия
23. 20
“Почему я вообще должен об этом всем думать? Я же
DevOps, я хочу docker и общаться в telegram за devops
практики!”
28. 23
Data Center Operation System(DC/OS)
– Автоматическое управление
ресурсами в рамках всего ДЦ
– Автоматический Service Discovery
для всех компонентов вашего
проекта
33. 25
Это что за ребята?
2009 Mesos initial white paper
34. 25
Это что за ребята?
2009 Mesos initial white paper
May 2013 2.25M(Seed)
35. 25
Это что за ребята?
2009 Mesos initial white paper
May 2013 2.25M(Seed)
Jun 2014 $10.5M(A), Dec $36M(B)
36. 25
Это что за ребята?
2009 Mesos initial white paper
May 2013 2.25M(Seed)
Jun 2014 $10.5M(A), Dec $36M(B)
Apr 2016 DC/OS Opensource
37. 25
Это что за ребята?
2009 Mesos initial white paper
May 2013 2.25M(Seed)
Jun 2014 $10.5M(A), Dec $36M(B)
Apr 2016 DC/OS Opensource
Mar 2016 $73.5M(C) from MS and HPE
43. 31
Mesos – Distrubuted systems kernel
Нет, это не замена linux kernel
Другой уровень абстракции
44. 31
Mesos – Distrubuted systems kernel
Задачи похожи:
Нет, это не замена linux kernel
Другой уровень абстракции
45. 31
Mesos – Distrubuted systems kernel
Задачи похожи:
– управление ресурсами
Нет, это не замена linux kernel
Другой уровень абстракции
46. 31
Mesos – Distrubuted systems kernel
Задачи похожи:
– управление ресурсами
– управление процессами
Нет, это не замена linux kernel
Другой уровень абстракции
47. 31
Mesos – Distrubuted systems kernel
Задачи похожи:
– управление ресурсами
– управление процессами
– изоляция процессов
Нет, это не замена linux kernel
Другой уровень абстракции
50. 32
Mesos – Distrubuted systems kernel
– Запускается на каждой машине
– Masters HA используя ZooKeeper
51. 32
Mesos – Distrubuted systems kernel
– Запускается на каждой машине
– Masters HA используя ZooKeeper
– Скейлится до 10000 хостов
52. 32
Mesos – Distrubuted systems kernel
– Запускается на каждой машине
– Masters HA используя ZooKeeper
– Скейлится до 10000 хостов
– SDK для написания
распределенных приложений
77. 48
Marathon – Distrubuted systems init
– HA используя ZooKeeper
– Нативная поддержка Docker
– Web UI, REST API, Event API
78. 48
Marathon – Distrubuted systems init
– HA используя ZooKeeper
– Нативная поддержка Docker
– Web UI, REST API, Event API
– Декларативное описание
приложений
121. 79
Service Discovery – Minuteman
Распределенный балансировщик
для использования внутри mesos
122. 79
Service Discovery – Minuteman
Распределенный балансировщик
для использования внутри mesos
iptables NFQueue + erlang daemon
123. 79
Service Discovery – Minuteman
Распределенный балансировщик
для использования внутри mesos
iptables NFQueue + erlang daemon
Marathon network labels
124. 79
Service Discovery – Minuteman
Распределенный балансировщик
для использования внутри mesos
iptables NFQueue + erlang daemon
Marathon network labels
Для постоянных подключений
129. 82
Traefik
– работает через Marathon Event API
– zerotime rolling deployment pattern
HTTP Балансировщик для микросервисов
130. 82
Traefik
– работает через Marathon Event API
– zerotime rolling deployment pattern
– собственные метрики, API
HTTP Балансировщик для микросервисов
131. 82
Traefik
– работает через Marathon Event API
– zerotime rolling deployment pattern
– собственные метрики, API
– TLS / Websockets / HTTP2
HTTP Балансировщик для микросервисов