ݺߣ

ݺߣShare a Scribd company logo
Docker в Badoo:" 
от восторгов к внедрению 
Антон Турецкий 
Системный инженер, Badoo7 
@tyrchenok
Содержание 
• Восторг и ожидания7 
• Подготовка инфраструктуры7 
• Ключевые узлы Docker7 
• Puppet: от прототипа до конвейра7 
• Сборка образов Docker7 
• Deploy сервиса с точки зрения эксплуатации7 
• Docker: мониторинг (Илья Раудсепп)7 
• “Грабли”: как без них?7 
• Чего не хватает для счастья в Docker?7 
• Заключение
Восторг и ожидания 
7 
• Как всё круто в первом приближении7 
• Очень хочется попробовать7 
• С чего начать?7 
• Ожидания7 
• Реальность
Конcервативный SLES 
7 
• 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/
Ad

Recommended

Docker в виртуальной среде VMware
Docker в виртуальной среде VMware
Andrey Konovalov
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
OSLL
Docker for JS people
Docker for JS people
Alex Chistyakov
Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядно
FallenKain
Что такое Docker
Что такое Docker
Pavel Klimiankou
Введение в Docker
Введение в Docker
Andrey Markelov
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Badoo Development
Docker 1.9
Docker 1.9
Дмитрий Золотов
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
Anton Maksimov
Docker контейнерная революция
Docker контейнерная революция
GetDev.NET
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
Ruslan Sharipov
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
Teach your dockers to use CRanes
Teach your dockers to use CRanes
Pavel Emelyanov
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
Nadzeya Pus
Docker. Основы
Docker. Основы
Ivan Miniailenko
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
Docker с чем едят и для чего используют
Docker с чем едят и для чего используют
ITCrowd Almaty
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
MskDotNet Community
Docker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. Swarm
Dmitry Lazarenko
Scino: DVCS на примере Git
Scino: DVCS на примере Git
SCINO
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Ontico
Локальное окружение на Docker
Локальное окружение на Docker
Михаил Бакулин
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Ontico
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Ontico
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
Alex Chistyakov
Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Ontico
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky

More Related Content

What's hot (20)

Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
Anton Maksimov
Docker контейнерная революция
Docker контейнерная революция
GetDev.NET
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
Ruslan Sharipov
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
Teach your dockers to use CRanes
Teach your dockers to use CRanes
Pavel Emelyanov
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
Nadzeya Pus
Docker. Основы
Docker. Основы
Ivan Miniailenko
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
Docker с чем едят и для чего используют
Docker с чем едят и для чего используют
ITCrowd Almaty
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
MskDotNet Community
Docker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. Swarm
Dmitry Lazarenko
Scino: DVCS на примере Git
Scino: DVCS на примере Git
SCINO
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Ontico
Локальное окружение на Docker
Локальное окружение на Docker
Михаил Бакулин
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Ontico
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Ontico
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
Alex Chistyakov
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
Anton Maksimov
Docker контейнерная революция
Docker контейнерная революция
GetDev.NET
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
Ruslan Sharipov
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
Teach your dockers to use CRanes
Teach your dockers to use CRanes
Pavel Emelyanov
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
Nadzeya Pus
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
Docker с чем едят и для чего используют
Docker с чем едят и для чего используют
ITCrowd Almaty
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
MskDotNet Community
Docker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. Swarm
Dmitry Lazarenko
Scino: DVCS на примере Git
Scino: DVCS на примере Git
SCINO
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Ontico
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Управление секретами в кластере Kubernetes при помощи Hashicorp Vault / Серге...
Ontico
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Ontico
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
Alex Chistyakov

Similar to Docker: from understanding to production (7)

Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Ontico
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
Docker & Puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Docker & Puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Badoo Development
Docker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрация
Badoo Development
Docker integration into Badoo
Docker integration into Badoo
Anton Turetsky
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутом
Anton Turetsky
Антон Турецкий
Антон Турецкий
CodeFest
Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Ontico
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
Docker & Puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Docker & Puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Badoo Development
Docker в Badoo: ПМЖ или временная регистрация
Docker в Badoo: ПМЖ или временная регистрация
Badoo Development
Docker integration into Badoo
Docker integration into Badoo
Anton Turetsky
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутом
Anton Turetsky
Антон Турецкий
Антон Турецкий
CodeFest
Ad

Docker: from understanding to production

  • 1. Docker в Badoo:" от восторгов к внедрению Антон Турецкий Системный инженер, Badoo7 @tyrchenok
  • 2. Содержание • Восторг и ожидания7 • Подготовка инфраструктуры7 • Ключевые узлы Docker7 • Puppet: от прототипа до конвейра7 • Сборка образов Docker7 • Deploy сервиса с точки зрения эксплуатации7 • Docker: мониторинг (Илья Раудсепп)7 • “Грабли”: как без них?7 • Чего не хватает для счастья в Docker?7 • Заключение
  • 3. Восторг и ожидания 7 • Как всё круто в первом приближении7 • Очень хочется попробовать7 • С чего начать?7 • Ожидания7 • Реальность
  • 4. Конcервативный SLES 7 • 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
  • 6. Docker Registry • Зачем он нужен?7 • Почему не DockerHub?7 • Немного подробностей
  • 7. Puppet: от одного ко многим • +1 модуль: - ставим нужные пакеты (docker, kernel, e2fsprogs … ) - cgroup_enable=memory swapaccount=1 - LVM changes, BTRFS7 • Docker:7 • base package, settings7 • init script (да, тут еще нет systemd)7 • вспомогательные скрипты
  • 9. Роль Puppet • Поддержка BUILD environment7 • Сборка образов и оповещение о результатах7 • Своевременный PUSH образа в Registry7 • Своевременный PULL образа на Docker Host7 • Поддержание чистоты и порядка на Docker Hosts7 • удаление ненужных образов/контейнеров7 • формирование команд для запуска контейнеров
  • 10. “Плавный” перезапуск сервиса • Добавим балансировщик по вкусу7 • Используем key => value storage7 • confd: наполняем по шаблону7 • Не трогаем “внешнюю” сеть7 • не нужно трогать dns7 • не нужно трогать dhcp7 • …
  • 12. “Грабли”: как без них? 7 • NF conntrack7 • device mapper + ext4 as storage backend7 • VOLUME mapping
  • 13. Чего не хватает для счастья? • Централизованный мониторинг Docker Hosts7 • Централизованного управления хостами/сервисами7 • Более тесной интеграции с 7 • weave7 • Open VSwitch
  • 14. Заключение • ”Уплотнили” количество сервисов в расчете на сервер7 • Построили избыточную карту сервисов7 • Построили систему сборки образов7 • Получили гарантию работы сервиса любой ранее работающей версии в любой момент времени
  • 16. 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/