docker: from understanding to production

16
Docker в Badoo: от восторгов к внедрению Антон Турецкий Системный инженер, Badoo @tyrchenok

Upload: anton-turetsky

Post on 08-Jul-2015

136 views

Category:

Internet


0 download

DESCRIPTION

Howto add Docker to production environment

TRANSCRIPT

Page 1: Docker: from understanding to production

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

Антон ТурецкийСистемный инженер, Badoo7

@tyrchenok

Page 2: Docker: from understanding to production

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

Page 3: Docker: from understanding to production

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

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

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

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

• Ожидания7

• Реальность

Page 4: Docker: from understanding to production

Конcервативный SLES7

• Linux kernel version “3.8” or above != “3.0.101-0.40.1”7• обновление util-linux, coreutils7• обновление iptables, iproute27

• Выбор “Storage Driver”7• Device mapper + ext47• BTRFS7

• Изменение Partitioning Table

Page 5: Docker: from understanding to production

Docker Host

Page 6: Docker: from understanding to production

Docker Registry

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

• Почему не DockerHub?7

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

Page 7: Docker: from understanding to production

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

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

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

Page 8: Docker: from understanding to production

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

Page 9: Docker: from understanding to production

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

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

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

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

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

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

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

Page 10: Docker: from understanding to production

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

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

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

Page 11: Docker: from understanding to production

Docker monitoring: слово Илье

Page 12: Docker: from understanding to production

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

• NF conntrack7

• device mapper + ext4 as storage backend7

• VOLUME mapping

Page 13: Docker: from understanding to production

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

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

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

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

• weave7

• Open VSwitch

Page 14: Docker: from understanding to production

Заключение

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

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

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

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

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

Page 15: Docker: from understanding to production

Спасибо

Page 16: Docker: from understanding to production

Useful Links

#codefest2014 #Puppet : goo.gl/dG0hJD7#hl2012 #Puppet : http://goo.gl/5FNwuD

Вопросы?Антон Турецкий

[email protected]@tyrchenok7@BadooDev 7

http://habrahabr.ru/company/badoo/