one-cloud — система управления дата-центром в...
TRANSCRIPT
![Page 2: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/2.jpg)
2
4
ЦОД
500
Стоек
8000
Серверов
Железо в Одноклассниках
![Page 3: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/3.jpg)
3
инженеры
сетевики
админы
разработчики(функциональные команды )
![Page 4: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/4.jpg)
4
Работает так
web frontend API music
app server
one-graph user-cache black-list
(микро) сервисы
![Page 5: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/5.jpg)
• 1 сервер = 1 задача • Это просто:
• В массовом управлении
• В диагностике и мониторинге
• 1 сервис = Х серверов • Просто распределяется ресурс
• Специализированные конфигурации • Это эффективно
5
Железо в Одноклассниках
![Page 6: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/6.jpg)
6
Самое дорогое - это сервера
Самое дорогое - место в ДЦУтилизация стоек - 11 %
Нужно повышать утилизацию
![Page 7: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/7.jpg)
• 1 сервер = Х задач • Все сложно:
• Конфигурация
• Диагностика
• Нет изоляции
7
Повышаем %% по-простому
![Page 8: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/8.jpg)
• Конфигурация • Образы ФС
• Многослойность, Таги, Реестр
• Изоляция • память, ЦПУ
8
Контейнеризируем
![Page 9: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/9.jpg)
• Размещение контейнеров на сервера • Упаковка по ресурсам: ЦП, память, трафик • Может быть сложным: стойки, залы • На 8,000 вручную - не вариант
• Выделение ресурсов на проект • Больше самостоятельности • Сохраняя контроль
9
Другая часть проблем
Нужен управляющий слой
![Page 10: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/10.jpg)
10
Три квадратика
docker daemon
one-cloud miniond
one-cloud masters
Linux Kernel
![Page 11: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/11.jpg)
Распределение ресурсов
![Page 12: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/12.jpg)
• Ресурс это: • ЦПУ • Память • Трафик • Диски ( место, тип, iops )
• Ресурсы конечны • Нужно ограничивать
12
Распределение ресурсов
cpu = 1500 mem = 1.5 T lan_in = 32 gbitlan_out = 32 gbit hdd = 20x15TQ
Но на что поставить квоту?
![Page 13: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/13.jpg)
13
Работает так
web frontend API music
app server
one-graph user-cache black-list
(микро) сервисы
![Page 14: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/14.jpg)
14
front
web frontend API music
one-graph
user-cache
black-list
app server
cache
db
app server
photo-cache group-cache
musicweb
![Page 15: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/15.jpg)
15
.
cachefront
web music
api …group1 group2…
user-cache
Иерархия
Q
group1.web.front api.music.front user-cache.cache
![Page 16: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/16.jpg)
• Имя • Квота на ресурсы • Права пользователей
• Отправка сервиса для dev
• Административные права для ops/admin
• Отправляем сервисы • Выполняются в пределах квоты
16
Иерархическая очередь
group1.web.front
cpu = 1500 mem = 1.5 TQ ( )
Submit, Admin
![Page 17: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/17.jpg)
• Сервис имеет: • Полное имя • Манифест
( ресурсы, конфигурация, репликация, отказы )
• И экземпляры
17
Сервисы
ok-web.group1.web.front
1.ok-web.group1.web.front
…2.ok-web.group1.web.front
42.ok-web.group1.web.front
ok-app.group1.web.front
![Page 18: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/18.jpg)
Классы изоляции задач
![Page 19: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/19.jpg)
19
Классы задач в ОК
• С малой задержкой : prod • важна скорость ответа ( latency )
• Расчетные : batch • важна пропускная способность ( throughput ) • Map Reduce, ML, DWH, etc.
• Фоновые : idle • тесты, пересчеты, конвертации
![Page 20: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/20.jpg)
• С малой задержкой • важна скорость ответа
( latency )
• размещение резервированием
20
Классы задач в ОК : prod
t
cores
1
2
3
4
0
max
avg
alloc: cpu = 4 (max)
task 1 task 2 task 3 task 4
![Page 21: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/21.jpg)
21
Классы задач в ОК : batch
t
avg
cores
1
2
3
4
0
min
• Расчетные • важна пропускная способность
( throughput )
• Map Reduce, ML, DWH, etc.
alloc: cpu = [1, * )
![Page 22: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/22.jpg)
22
prod + batch = love
t
cores
1
2
3
4
0
• С малой задержкой • важна скорость ответа
• размещение резервированием
• Расчетные • важна средняя скорость
• MapRed, ML, etc.
![Page 23: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/23.jpg)
23
Как это сделать в docker run
prod, cpu = 4
batch, cpu = [1, * )
—cpuset = 1-4 —cpuquota = 400 000 —cpuperiod = 100 000
?
![Page 24: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/24.jpg)
24
Как это сделать в docker run
prod, cpu = 4
batch, cpu = [1, * )
—cpuquota = 400 000 —cpuperiod = 100 000
—cpushares = 1 024batch, cpu = [2, * )
—cpushares = 2 048
![Page 25: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/25.jpg)
• SCHED_OTHER • обычный в Linux
• SCHED_BATCH • ресурсоемкий; штраф за активацию
• SCHED_IDLE • фоновый < nice -19
25
Linux CPU scheduler policies
*man sched_setschedulergithub.com/odnoklassniki/one-nio
![Page 26: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/26.jpg)
26
Как это сделать в docker run
prod, cpu = 4
batch, cpu = [1, * )
—cpuquota = 400 000 —cpuperiod = 100 000
—cpushares = 1 024 [ —cap-add = SYS_NICE ]
+ SCHED_OTHER
+ SCHED_BATCH
+ SCHED_IDLEidle, cpu = [2, * )
—cpushares = 2 048 [ —cap-add = SYS_NICE ]
![Page 27: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/27.jpg)
27
Трафик
t
mbps
500
0
prod: lan = 500mbpsbatch: lan = [100, *)
• prod приоритетнее batch • batch > idle ( по avg )
• на исходящий трафик • и на входящий
Как это сделать в docker run ?Никак не сделать в docker run…
![Page 28: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/28.jpg)
28
Linux QoS
• Traffic Control ( tc ) • Hierarchical Fair Service Curve ( hfsc ) • 2 класса: prod; batch/idle
• modprobe ifb • для QoS входящего трафика
• регулируемая полоса для batch/idle • это пришлось дописать
http://lartc.org
![Page 29: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/29.jpg)
29
ok-web.group1.web.front.prod
catalog-manager.music.batch
transformer.music.idle
prod batch idle
…front
web music
musictransformer
musiccatalog
… …
![Page 30: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/30.jpg)
• Трафик • внутренняя очередь сетевой карты • только TCP • ~ + 10 % к задержке
• CPU интенсивный batch • ~ нет влияния на prod
• Память • вымывается кэш CPU • ~ + 10% к задержке
30
Полная изоляция невозможна
![Page 31: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/31.jpg)
Отказоустойчивость
![Page 32: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/32.jpg)
• Изоляция • квота на ресурсы • нет влияния на других
• Политики рестарта • ALWAYS, ON_FAILURE • NONE
32
Отказ контейнера
![Page 33: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/33.jpg)
• Переносим! • Нужен Service Discovery
• ( даже для ip-per-container ) • Удобно • Много решений • +Баланcировщик
• Нужен ли Service Discovery ? • Балансировок уже много • Критическая система + Точка Отказа • Много переделывать. Очень много. Местами невозможно.
33
Отказ миньона
![Page 34: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/34.jpg)
• IP статичны • закрепляются при создании сервиса • max( replicas ) • следуют за контейнером по сети
• DNS • живые и мертвые IP ( клиенты отфильтруют )
• Критичные сервисы - без DNS
34
Жизнь ( почти ) без Service Discovery
1.1.1.1
1.1.1.2…
ok-web.group1.web.front.prod
= 1.1.1.1
1.ok-web.group1.web.front.prod
![Page 35: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/35.jpg)
35
Сеть
M
route reflector
1.ok-web
eBGP
1.1.1.1bird
![Page 36: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/36.jpg)
36
Сеть
M route reflector
1.ok-web
eBGP
Multi Exit Discriminator
1.1.1.1
1.ok-web1.1.1.1
Mbird
![Page 37: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/37.jpg)
37
Сеть
M route reflector
1.ok-web
eBGP
1.1.1.1 : 1,000,000
1.ok-web1.1.1.11.1.1.1 : 999,999
Multi Exit Discriminator
M
![Page 38: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/38.jpg)
Аварии
![Page 39: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/39.jpg)
• Отказ множества машин • Массовые миграции контейнеров • Нехватка ресурсов
• Отказ управляющего слоя
• Взлет количества алертов • Тормоза/Шум в мониторинге
39
Авария - это:
![Page 40: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/40.jpg)
40
prod batch idle
cachefront
web music
musictransformer
musiccatalog
… …
1 2
• Приоритет размещения • Выше приоритет - быстрее мигрирует • Применяется иерархически
0
10
Массовые миграции
0
1
![Page 41: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/41.jpg)
41
prod batch idle
cachefront
web music
musictransformer
musiccatalog
… …
• Приоритет вытеснения задачи • Вытесняет ( останавливает ) задачу с миньона • Часть задач остается неразмещенными
Нехватка ресурсов
2
10
10
00
![Page 42: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/42.jpg)
Тотальное разрушение
![Page 43: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/43.jpg)
• Стихия
• Человеческий фактор
• Баги
43
Авария ДЦ целиком : причины
https://habrahabr.ru/company/dataline/blog/333578/
Это НЕ редкость !
#окживи
![Page 44: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/44.jpg)
• 1 one-cloud = max( 1 ДЦ ) • Потеря облака = потеря 1 ДЦ
• Готовность приложений к потере ДЦ • Политика резервирования • Отказоустойчивые БД • Тестирование отказа/Учения
• 4 ДЦ = 4 one-cloud • Изолированы друг от друга
44
Изолировать !
![Page 45: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/45.jpg)
• При потенциально опасных командах • Массовый останов
• При “странных” командах • Уменьшение реплик, смена имени образа сервиса
45
Проверка адекватности оператора
![Page 46: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/46.jpg)
• Иерархия сервисов, видимость • prod + batch = плотная утилизация
• docker —cpu* + sched_setscheduler/chrt • cpuset
• Изоляция, отказы, изолента • Аварии, а также
• приоритеты и их польза в иерархии • ops неадекват страшнее стихии
46
45 плотно упакованных слайдов
![Page 47: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/47.jpg)
![Page 48: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/48.jpg)
2 ЧАВО
![Page 49: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/49.jpg)
• prod vs batch/idle • = разные политики размещения
• Иерархические очереди • С приоритетами, правами, квотами
• Статические IP per container • Нужна интеграция с сетевой инфраструктурой, управление BGP MED • Управление пулами IP на очередях
• Простота • Простые и понятные имена контейнеров • Не нужны сложные pods
49
Почему не M*, K*, X
![Page 50: One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасьев (Одноклассники)](https://reader034.vdocuments.pub/reader034/viewer/2022051318/5a6488db7f8b9a88568b49cb/html5/thumbnails/50.jpg)
50
Потребление памяти