docker: from understanding to production

Post on 08-Jul-2015

136 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Howto add Docker to production environment

TRANSCRIPT

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

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

@tyrchenok

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

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

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

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

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

• Ожидания7

• Реальность

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

Docker Host

Docker Registry

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• NF conntrack7

• device mapper + ext4 as storage backend7

• VOLUME mapping

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

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

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

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

• weave7

• Open VSwitch

Заключение

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

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

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

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

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

Спасибо

Useful Links

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

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

a.turetsky@corp.badoo.com7@tyrchenok7@BadooDev 7

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

top related