Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
1. Docker в Badoo:
от восторгов к внедрению
Антон Турецкий
@tyrchenok
Илья Раудсепп
@iraudsepp
2. Содержание
• Восторг и ожидания
• Подготовка инфраструктуры
• Ключевые узлы Docker
• Puppet: от прототипа до конвейра
• Сборка образов Docker
• Deploy сервиса с точки зрения эксплуатации
• Docker: мониторинг (Илья Раудсепп)
• “Грабли”: как без них?
• Чего не хватает для счастья в Docker?
• Заключение
3. Восторг и ожидания
• Как всё круто в первом приближении
• Очень хочется попробовать
• С чего начать?
• Ожидания
• Реальность
4. Конcервативный SLES
• Linux kernel version “3.8” or above != “3.0.101-0.40.1”
• обновление util-linux, coreutils
• обновление iptables, iproute2
• Выбор “Storage Driver”
• Device mapper + ext4
• BTRFS
• Изменение Partitioning Table
9. Роль Puppet
• Поддержка BUILD environment
• Сборка образов и оповещение о результатах
• Своевременный PUSH образа в Registry
• Своевременный PULL образа на Docker Host
• Поддержание чистоты и порядка на Docker Hosts
• удаление ненужных образов/контейнеров
• формирование команд для запуска контейнеров
10. “Плавный” перезапуск сервиса
• Добавим балансировщик по вкусу
• Используем key => value storage
• confd: наполняем по
шаблону
• Не трогаем “внешнюю” сеть
• не нужно трогать dns
• не нужно трогать dhcp
• …
12. Что хотели
• Автоматический сбор метрик с нового контейнера/хоста с docker
• Возможность гибко настраивать отображение получаемых метрик
• Возможность просмотра статистики в “real time”
13. Что смотрели
DataDogs
Dockerana
collectd + graphite
Zabbix
sFlow, Fluentd, Monit and etc
https://www.google.ru/search?q=docker%20monitoring
https://www.google.ru/search?q=docker%20statistics
14. Что смотрели
DataDogs
– отправляет данные в облако
Dockerana
collectd + graphite
Zabbix
15. Что смотрели
DataDogs
Dockerana
– необходимо перезапускать докер с -D
– использует парсинг логов
collectd + graphite
Zabbix
16. Что смотрели
DataDogs
Dockerana
collectd + graphite
– не нашли готовых решений сбора статистики
Zabbix
17. Что смотрели
DataDogs
Dockerana
collectd + graphite
Zabbix
– нет возможно быстро и легко менять графики/дашборды
19. Что выбрали
Host OS
Server
Container A
Container B
cAdvisor
Container
Grafana
Http/Https InfluxDB
Host Container
Cpu 䡄 䡄
Mem 䡄 䡄
Disk
Network 䡄
20. Что выбрали
Host OS
Server
Container A
Container B
cAdvisor
Container
Grafana
Http/Https InfluxDB
Host Container
Cpu 䡄 䡄
Mem 䡄 䡄
Disk 䡄 䡄
Network 䡄 䡄
21.
22.
23.
24. “Грабли”: как без них?
• NF conntrack
• device mapper + ext4 as storage backend
• VOLUME mapping
25. Чего не хватает для счастья?
• Централизованный мониторинг Docker Hosts
• Централизованного управления хостами/сервисами
• Более тесной интеграции с
• weave
• Open VSwitch
26. Заключение
• ”Уплотнили” количество сервисов в расчете на сервер
• Построили избыточную карту сервисов
• Построили систему сборки образов
• Получили гарантию работы сервиса любой ранее работающей версии в
любой момент времени