26
Docker в Badoo: от восторгов к внедрению Антон Турецкий @tyrchenok Илья Раудсепп @iraudsepp

Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Embed Size (px)

DESCRIPTION

Антон Турецкий, Раудсепп Илья, "Docker в Badoo: от восторгов к внедрению"

Citation preview

Page 1: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Docker в Badoo:от восторгов к внедрению

Антон Турецкий@tyrchenok

Илья Раудсепп@iraudsepp

Page 2: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Содержание• Восторг и ожидания• Подготовка инфраструктуры• Ключевые узлы Docker• Puppet: от прототипа до конвейра• Сборка образов Docker• Deploy сервиса с точки зрения эксплуатации• Docker: мониторинг (Илья Раудсепп)• “Грабли”: как без них?• Чего не хватает для счастья в Docker?• Заключение

Page 3: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Восторг и ожидания

• Как всё круто в первом приближении

• Очень хочется попробовать

• С чего начать?

• Ожидания

• Реальность

Page 4: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Кон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

Page 5: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Docker Host

Page 6: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Docker Registry

• Зачем он нужен?

• Почему не DockerHub?

• Немного подробностей

Page 7: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Puppet: от одного ко многим

• +1 модуль: - ставим нужные пакеты (docker, kernel, e2fsprogs … )- cgroup_enable=memory swapaccount=1 - LVM changes, BTRFS

• Docker:• base package, settings• init script (да, тут еще нет systemd)• вспомогательные скрипты

Page 8: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Сборка образов для Docker

Page 9: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Роль Puppet• Поддержка BUILD environment

• Сборка образов и оповещение о результатах

• Своевременный PUSH образа в Registry

• Своевременный PULL образа на Docker Host

• Поддержание чистоты и порядка на Docker Hosts

• удаление ненужных образов/контейнеров

• формирование команд для запуска контейнеров

Page 10: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

“Плавный” перезапуск сервиса

• Добавим балансировщик по вкусу• Используем key => value storage• confd: наполняем по

шаблону• Не трогаем “внешнюю” сеть• не нужно трогать dns• не нужно трогать dhcp• …

Page 11: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Docker monitoring

Page 12: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что хотели

• Автоматический сбор метрик с нового контейнера/хоста с docker

• Возможность гибко настраивать отображение получаемых метрик

• Возможность просмотра статистики в “real time”

Page 13: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что смотрели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

Page 14: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что смотрели

DataDogs

– отправляет данные в облако

Dockerana

collectd + graphite

Zabbix

Page 15: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что смотрели

DataDogs

Dockerana

– необходимо перезапускать докер с -D

– использует парсинг логов

collectd + graphite

Zabbix

Page 16: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что смотрели

DataDogs

Dockerana

collectd + graphite

– не нашли готовых решений сбора статистики

Zabbix

Page 17: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что смотрели

DataDogs

Dockerana

collectd + graphite

Zabbix

– нет возможно быстро и легко менять графики/дашборды

Page 18: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что выбрали

agent: cAdvisor (https://github.com/google/cadvisor)

storage: Influxdb (https://github.com/influxdb/influxdb)

draw: grafana (https://github.com/grafana/grafana)

Page 19: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что выбрали

Server

Host OS

Con

tain

er A

Con

tain

er B

cAdv

isor

C

onta

inerHttp/Https InfluxDB

Grafana

Host Container

Cpu

Mem

Disk

Network

Page 20: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Что выбрали

Server

Host OS

Con

tain

er A

Con

tain

er B

cAdv

isor

C

onta

inerHttp/Https InfluxDB

Grafana

Host Container

Cpu

Mem

Disk

Network

Page 21: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Page 22: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Page 23: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Page 24: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

“Грабли”: как без них?

• NF conntrack

• device mapper + ext4 as storage backend

• VOLUME mapping

Page 25: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Чего не хватает для счастья?

• Централизованный мониторинг Docker Hosts

• Централизованного управления хостами/сервисами

• Более тесной интеграции с

• weave

• Open VSwitch

Page 26: Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

Заключение

• ”Уплотнили” количество сервисов в расчете на сервер

• Построили избыточную карту сервисов

• Построили систему сборки образов

• Получили гарантию работы сервиса любой ранее работающей версии в

любой момент времени