Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DC OS more than PAAS
Search
Nikita Borzykh
May 31, 2016
Technology
380
0
Share
DC OS more than PAAS
Nikita Borzykh
May 31, 2016
Other Decks in Technology
See All in Technology
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
4
7.2k
毎日の作業を Claude Code 経由にしたら、 ノウハウがコードになった
kossykinto
1
1k
クラウドネイティブ DB はいかにして制約を 克服したか? 〜進化歴史から紐解く、スケーラブルアーキテクチャ設計指針〜
hacomono
PRO
2
230
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
200
Agents CLI と Gemini Enterprise Agent Platform で マルチエージェント開発が楽しくなる!
kaz1437
0
250
Modernizing Your HCL Connections Experience: Visual Report to chain, Profile Enhancements, and AI Integration
wannesrams
0
290
Agent Skillsで実現する記憶領域の運用とその後
yamadashy
2
1.3k
拝啓、あの夏の僕へ〜あなたも知っているApp Runnerの世界〜
news_it_enj
0
220
ハーネスエンジニアリング入門
knishioka
0
120
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
370
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
330
自動テストだけで リリース判断できるチームへ - 鍵はテストの量ではなくリリース判断基準の再設計にあった / Redesigning Release Criteria for Lightweight Releases
ewa
7
3.5k
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
160
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
500
Being A Developer After 40
akosma
91
590k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
A better future with KSS
kneath
240
18k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
110
Balancing Empowerment & Direction
lara
6
1.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Transcript
DC/OS – Больше чем PAAS* Никита Борзых, Экспресс 42 *Рассказ
про будущее
2 Whoami 2009г, Xen, InfiniBand, custom L2 over L3, Chef
2012г, Devops :) 2011г, Chef, Web, Rails, soft skills
• Анализ текущей ситуации в индустрии, обозначение проблем • DC/OS:
место под солнцем, концепция, компоненты • Наш опыт 3 План
4 鲫鳍鳋鳁鳇鳏 鲲鳁鳊鳊鳋鳎鳏鳙 鲦鳈鳅鳁鳊鳏 Ценность
5 &QEMGT 2##5 #PUKDNG 6GUV-KVEJGP #PUKDNG %JGH &QEMGT!!
%JGH!! &QEMGT #PUKDNG %JGH Buzz график $W\\ !!! !! !!
6 1/2/3 приложения и/или монолитное приложение хранилище данных DB/back/front Устройство
проекта:
7 – конфигурация ПО: Chef/Ansible – деплой: Capistrano, Fabric –
configuration drift DB/back/front Изменения:
8 DB/back/front – рассчитать потребление ресурсов просто – понятно какой
компонент где запускать Поддержка:
9 – стандарт упаковки – не собираем на продакшене(ruby, python)
– конфигурация вместе с сервисом DB/back/front Docker экосистема упрощает жизнь:
10 (Микро)сервисы &$DCEMHTQPV 鲨鳅鳇鳍鳋鳎鳁鳍鲾鳅鳎鳘
11 Микросервисы – 10/20/30 компонентов – могут иметь связи any-to-any
– компоненты появляются и исчезают – реестр сервисов(static, dynami, service discovery) Устройство проекта:
12 Микросервисы – конфигурация ПО: Chef/Ansible – capistrano/fabric – неудобно
– configuration drift!!! Изменения:
13 Микросервисы – рассчитать потребление ресурсов сложно – ручная аллокация
приложений Поддержка:
14 Docker экосистема опять все упрощает: Микросервисы – стандартизация –
изоляция – docker compose – chef/ansible – большая плотность на один хост
15 Микросервисы
16 Микросервисы
17 Жизнь вне AWS “Обычная” площадка $CTGOGVCN #RRU $CTGOGVCN 8/ņU
DEV/QA в офисе !!! #RRU 8/ņU Облако #RRU #RRU #RRU !!! #RRU !!! Где-то у заказчика
18 Свой low-level под каждую площадку Способ деплоя зависит от
площадки Сложность поддержки: количество сервисов X количество площадок Жизнь вне AWS
19 Рефлексия
19 Когда вы в последний раз выделяли память для запуска
приложения на своем ноутбуке? (OS делают это за нас уже почти пол века!) Рефлексия
19 Когда вы в последний раз выделяли память для запуска
приложения на своем ноутбуке? (OS делают это за нас уже почти пол века!) Зачем чинить то, что сломалось? Рефлексия
19 Когда вы в последний раз выделяли память для запуска
приложения на своем ноутбуке? (OS делают это за нас уже почти пол века!) Зачем чинить то, что сломалось? Зачем нам концепция “Сервер”? Рефлексия
20 “Почему я вообще должен об этом всем думать? Я
же DevOps, я хочу docker и общаться в telegram за devops практики!”
21 Работать должны роботы!
22 Datacenter is a new computer
23 Data Center Operation System(DC/OS)
23 Data Center Operation System(DC/OS) – Автоматическое управление ресурсами в
рамках всего ДЦ
23 Data Center Operation System(DC/OS) – Автоматическое управление ресурсами в
рамках всего ДЦ – Автоматический Service Discovery для всех компонентов вашего проекта
24 DC/OS
24 DC/OS – Cloud agnostic
24 DC/OS – Cloud agnostic – Единая точка управления проектом
и датацентром через WEB UI и CLI
25 Это что за ребята?
25 Это что за ребята? 2009 Mesos initial white paper
25 Это что за ребята? 2009 Mesos initial white paper
May 2013 2.25M(Seed)
25 Это что за ребята? 2009 Mesos initial white paper
May 2013 2.25M(Seed) Jun 2014 $10.5M(A), Dec $36M(B)
25 Это что за ребята? 2009 Mesos initial white paper
May 2013 2.25M(Seed) Jun 2014 $10.5M(A), Dec $36M(B) Apr 2016 DC/OS Opensource
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
26 Кто пользуется? – Apple(Siri) – Airbnb – Adobe –
Verizon – PayPal – eBay – Express 42 ;-)
27 ` Место в пищевой цепи(*)
28 OS Llinux, BSD, Windows init, systemd, cron, … YourApps
| Kafka | HDFS -GTPGN +PKVU[UVGO 5GTXKEGU #RRU Packages, DNS, Auth, Network, …
29 DC/OS
30 DC/OS Mesos YourApps | Kafka | HDFS Llinux, BSD,
Windows init, systemd, cron, … YourApps | Kafka | HDFS -GTPGN +PKVU[UVGO 5GTXKEGU #RRU Packages, DNS, Auth, Network, …
31 Mesos – Distrubuted systems kernel Нет, это не замена
linux kernel Другой уровень абстракции
31 Mesos – Distrubuted systems kernel Задачи похожи: Нет, это
не замена linux kernel Другой уровень абстракции
31 Mesos – Distrubuted systems kernel Задачи похожи: – управление
ресурсами Нет, это не замена linux kernel Другой уровень абстракции
31 Mesos – Distrubuted systems kernel Задачи похожи: – управление
ресурсами – управление процессами Нет, это не замена linux kernel Другой уровень абстракции
31 Mesos – Distrubuted systems kernel Задачи похожи: – управление
ресурсами – управление процессами – изоляция процессов Нет, это не замена linux kernel Другой уровень абстракции
32 Mesos – Distrubuted systems kernel
32 Mesos – Distrubuted systems kernel – Запускается на каждой
машине
32 Mesos – Distrubuted systems kernel – Запускается на каждой
машине – Masters HA используя ZooKeeper
32 Mesos – Distrubuted systems kernel – Запускается на каждой
машине – Masters HA используя ZooKeeper – Скейлится до 10000 хостов
32 Mesos – Distrubuted systems kernel – Запускается на каждой
машине – Masters HA используя ZooKeeper – Скейлится до 10000 хостов – SDK для написания распределенных приложений
33 Mesos – Distrubuted systems kernel
33 Mesos – Distrubuted systems kernel – Изоляторы: Docker и
Mesos контейнеры
33 Mesos – Distrubuted systems kernel – Изоляторы: Docker и
Mesos контейнеры – Дифференциация через Roles
34 Mesos Standby Mesos Master Leader Mesos Master Standby Mesos
Master Mesos Executor Docker Executor Task Task Mesos Agent 1HHGT Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User
35 Standby Mesos Master Leader Mesos Master Standby Mesos Master
Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User 6CUMKPKV Mesos – Task Launch
36 Standby Mesos Master Leader Mesos Master Standby Mesos Master
Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User 4GUQWTEGQHHGT 1HHGT Mesos – Task Launch
37 Mesos – Offers cpus(fast):4; mem(fast):4096; ports(fast):[1025-7000] cpus(*):16; mem(*):8192; ports(*):[1025-65535]
cpus(*):8; mem(*):32768; ports(*):[1025-65535]
38 Standby Mesos Master Leader Mesos Master Standby Mesos Master
Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User #EEGRV1HHGT 1HHGT Mesos – Task Launch
39 Standby Mesos Master Leader Mesos Master Standby Mesos Master
Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User 6CUMNCWPEJ 6CUMNCWPEJ Mesos – Task Launch
40 Standby Mesos Master Leader Mesos Master Standby Mesos Master
Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User 'ZGEWVQTNCWPEJ Mesos – Task Launch
41 Mesos – Task Launch Standby Mesos Master Leader Mesos
Master Standby Mesos Master Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User 4GVWTP6CUMUVCVWU
42 Mesos – Fault Tollerance New Leader Mesos Master Leader
Mesos Master Standby Mesos Master Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User
43 Mesos – Fault Tollerance New Leader Mesos Master Leader
Mesos Master Standby Mesos Master Mesos Executor Docker Executor Task Task Mesos Agent Mesos Executor Docker Executor Task Task Mesos Agent Framework scheduler ZK ZK ZK User
None
None
46 DC/OS Mesos Marathon, Kubernetes, Spark YourApps | Kafka |
HDFS Llinux, BSD, Windows init, systemd, cron, … YourApps | Kafka | HDFS -GTPGN +PKVU[UVGO 5GTXKEGU #RRU Packages, DNS, Auth, Network, …
47 Marathon – Distrubuted systems init
47 Marathon – Distrubuted systems init – Принцип как у
systemd
47 Marathon – Distrubuted systems init – Принцип как у
systemd – Другой уровень абстракции
47 Marathon – Distrubuted systems init – Принцип как у
systemd – Другой уровень абстракции – Health check приложений
47 Marathon – Distrubuted systems init – Принцип как у
systemd – Другой уровень абстракции – Health check приложений – Rolling deploy pattern
48 Marathon – Distrubuted systems init
48 Marathon – Distrubuted systems init – HA используя ZooKeeper
48 Marathon – Distrubuted systems init – HA используя ZooKeeper
– Нативная поддержка Docker
48 Marathon – Distrubuted systems init – HA используя ZooKeeper
– Нативная поддержка Docker – Web UI, REST API, Event API
48 Marathon – Distrubuted systems init – HA используя ZooKeeper
– Нативная поддержка Docker – Web UI, REST API, Event API – Декларативное описание приложений
None
None
None
None
None
None
None
56 Marathon – your-app.json .......... "id": "/test-group/python-look-and-feel", "instances": 2, "cpus":
0.2, "disk": 0, "mem": 128, "cmd": "python -m SimpleHTTPServer 8000” ..........
57 Marathon – your-app.json ............ "healthChecks": [{ "gracePeriodSeconds": 60, "intervalSeconds":
10, "maxConsecutiveFailures": 3, "path": "/", "portIndex": 0, "protocol": "HTTP", "timeoutSeconds": 10 }] ............
58 Marathon – Rolling Deploy pattern
59 Mesos Frameworks
60 Mesos Frameworks – Kafka
60 Mesos Frameworks – Kafka Старт kafka framework в marathon
(отдельное приложение)
60 Mesos Frameworks – Kafka Старт kafka framework в marathon
(отдельное приложение) kafka framework стартует брокеры
60 Mesos Frameworks – Kafka Старт kafka framework в marathon
(отдельное приложение) kafka framework стартует брокеры kafka framework управляет жизненным циклом брокеров:
60 Mesos Frameworks – Kafka Старт kafka framework в marathon
(отдельное приложение) kafka framework стартует брокеры kafka framework управляет жизненным циклом брокеров: создание/удаление топиков, брокеров, ребалансировка итд.
61 DC/OS Mesos Marathon, Сhronos, your app DC/OS Services YourApps
| Kafka | HDFS Llinux, BSD, Windows init, systemd, cron, … YourApps | Kafka | HDFS -GTPGN +PKVU[UVGO 5GTXKEGU #RRU Packages, DNS, Auth, Network, … &%15
62 DC/OS Dashboard DC/OS CLI Network & Service Discovery DC/OS
Dashboard Packages: Cosmos, Universe
None
None
None
None
None
68 DC/OS Packages DC/OS CLI Network & Service Discovery DC/OS
Dashboard Packages: Cosmos, Universe
None
None
None
None
73 DC/OS CLI Network & Service Discovery DC/OS Dashboard Packages:
Cosmos, Universe DC/OS CLI
74 DC/OS CLI
74 DC/OS CLI – Полное управление всем DC/OS стеком
74 DC/OS CLI – Полное управление всем DC/OS стеком –
Расширения для CLI
75 DC/OS CLI
75 DC/OS CLI dcos marathon app add ./python-look-and-feel.json
75 DC/OS CLI dcos marathon app add ./python-look-and-feel.json dcos package
install kafka --options=kafka-custom.json
75 DC/OS CLI dcos marathon app add ./python-look-and-feel.json dcos package
install kafka --options=kafka-custom.json dcos kafka topic create --replication 2 test-topic
76 DC/OS Service Discovery Network & Service Discovery DC/OS Dashboard
Packages: Cosmos, Universe DC/OS CLI
77 Network
77 Network Docker BRIDGE, HOST
77 Network Docker BRIDGE, HOST projectcalico.org, calico-mesos
78 MesosDNS
79 Service Discovery – Minuteman
79 Service Discovery – Minuteman Распределенный балансировщик для использования внутри
mesos
79 Service Discovery – Minuteman Распределенный балансировщик для использования внутри
mesos iptables NFQueue + erlang daemon
79 Service Discovery – Minuteman Распределенный балансировщик для использования внутри
mesos iptables NFQueue + erlang daemon Marathon network labels
79 Service Discovery – Minuteman Распределенный балансировщик для использования внутри
mesos iptables NFQueue + erlang daemon Marathon network labels Для постоянных подключений
80 Service Discovery – Minuteman service2 VIP: 10.10.0.10 meson-agent-host Minuteman
meson-agent-host Minuteman service1 service2 VIP: 10.10.0.10 service2 VIP: 10.10.0.10
81 Express 42 доставляет!
82 Traefik HTTP Балансировщик для микросервисов
82 Traefik – работает через Marathon Event API HTTP Балансировщик
для микросервисов
82 Traefik – работает через Marathon Event API – zerotime
rolling deployment pattern HTTP Балансировщик для микросервисов
82 Traefik – работает через Marathon Event API – zerotime
rolling deployment pattern – собственные метрики, API HTTP Балансировщик для микросервисов
82 Traefik – работает через Marathon Event API – zerotime
rolling deployment pattern – собственные метрики, API – TLS / Websockets / HTTP2 HTTP Балансировщик для микросервисов
83 %+ )+6 %+ 'PIKPG &QEMGTTGIKUVT[ CRR CRR CRR &%15
'PIKPG 5GTXKEG &KUEQXGT[ CRR CRR CRR CRR CRR CRR CRR CRRP Continuous Delivery
84 Jenkins CI
85 Jenkins CI node('jenkins-dnd') { docker.withRegistry('https://registry.demo.express42.net', '5ffddaa8-50f7-4b97-910d-dc476707e1dd') { stage 'Checkout
repository' git credentialsId: '19da5a63-278a-4664-a187-5a804d6e033a', url: '
[email protected]
:express42/microservices-demo-apps.git' stage 'Pull latest blog-ui image' docker.image('blog-ui:latest').pull() stage 'Build blog-ui image' image = docker.build('blog-ui', 'blog_ui') stage 'Push blog-ui image' image.push('latest') } }
86 Jenkins CI stage 'Make blog-ui docker image' build 'build-blog-ui'
stage 'Make blog-backend docker image' build 'build-blog-backend' stage 'Request for approval' input 'Ready to go?' node('jenkins-dnd') { stage 'Deploy to DEMO' git credentialsId: '19da5a63-278a-4664-a187-5a804d6e033a', url: '<URL>' dcos_image = docker.image('<URL>/dcos_cli:latest') marathonctl_image.inside() { sh 'dcos marathon group update /microservices-demo ./blog1.json' } }
87 Точки внимания – Мониторинг – prometheus & marathon labels?
– Централизованные логи – Продумайте вашу сеть
88 Docs http://dcos.io http://www.meetup.com/DC-OS-Online-Meetup DC/OS slack чатик – http://chat.mesosphere.com
89 Подкаст Сайт: http://devopsdeflope.ru Новости: https://telegram.me/devops_deflope
90 Meetup http://www.meetup.com/DevOps-Moscow-in-Russian/
91 @ex_sample http://telegram.me/minicon
[email protected]
Спасибо, вопросы