Внедрение Docker в процесс разработки демонов. Доклад...

Preview:

Citation preview

Внедрение Docker в процесс разработки

демонов

Мы используем демона

Мы используем демона

Мы используем демона

Разработка демонов ведется активно

version 2.0

Процесс деплоя очень важен

Процесс деплоя очень важен

Что может дать Docker?

Что может дать Docker?

Что может дать Docker?1. Прозрачный деплой

Что может дать Docker?1. Прозрачный деплой2. Унификация запуска

Внедрение Docker в процесс

Внедрение Docker в процесс

Внедрение Docker в процесс

Внедрение Docker в процесс

tested

Внедрение Docker в процесс

tested

Внедрение Docker в процесс

tested

Внедрение Docker в процесс

Внедрение Docker в процесс

tested

Получение tested контейнера

Демон в контейнере

Образ с демоном

- Базовый образ

Образ с демоном

- Dockerfile- Базовый образ

Dockerfile

Использование ENTRYPOINTЗапуск: $ docker run --name cont_name -e DOMAIN=a -e TYPE=2 image_name

env.sh:ln -s /path/to/config_${DOMAIN}.conf /path/to/config/daemon.confln -s /path/to/other_config_${TYPE}.conf /path/to/other_config.conf

Образ с демоном

- Файлы демона- Dockerfile- Базовый образ

Тесты и Docker

Тесты и Docker

DaemonAPI- управление демонов

- запуск- остановка- изменение конфига

- общение с демоном- посылка запросов и

получение ответа

Тесты и DockerУправление

Как было:- запуск демона

Тесты и DockerУправление

Как стало:- запуск контейнера

Тесты и DockerУправление

Как было:- остановка демона

Тесты и DockerУправление

Как стало:- остановка контейнера

Тесты и DockerУправление

Как было:- изменение конфига

Тесты и DockerУправление

Как стало:- изменение конфига

Тесты и DockerОбщение

"listen": [ { "proto": "daemon-gpb", "address": "0.0.0.0:111" }, { "proto": "daemon-gpb/json", "address": "0.0.0.0:222" }, { "proto": "stats-gpb", "address": "0.0.0.0:333" },

{ "proto": "stats-gpb/json", "address": "0.0.0.0:444" },]

Тесты и DockerОбщение

Как было:"listen": [ { "proto": "daemon-gpb", "address": "0.0.0.0:0" }, { "proto": "daemon-gpb/json", "address": "0.0.0.0:0" }, { "proto": "stats-gpb", "address": "0.0.0.0:0" },

{ "proto": "stats-gpb/json", "address": "0.0.0.0:0" },]

Тесты и DockerОбщение

Старый вариант в новой обертке:- общий с хостом сетевой интерфейс (--net=host)

Тесты и DockerОбщение

Новый вариант:- прокидывать нужные порты при запуске (-p

host_port:cont_port)

Тесты и DockerОбщениеКак стало:"listen": [ { "proto": "daemon-gpb", "address": "0.0.0.0:111" }, { "proto": "daemon-gpb/json", "address": "0.0.0.0:222" }, { "proto": "stats-gpb", "address": "0.0.0.0:333" },

{ "proto": "stats-gpb/json", "address": "0.0.0.0:444" },]

Получение портов:$ docker port daemon_cont_name 111

Тесты и Docker

DaemonAPI DockerAPI

Плюсы: Минусы:

Общие впечатления

Плюсы:- унификация

Минусы:

Общие впечатления

Плюсы:- унификация- упрощение

Минусы:

Общие впечатления

Плюсы:- унификация- упрощение

Минусы:- рутовые права

Общие впечатления

Плюсы:- унификация- упрощение

Минусы:- рутовые права- копирование

файлов

Общие впечатления

Спасибо за внимание!

Доклад Антона Турецкого и Ильи Раудсеппа “Docker в Badoo”- http://urlid.ru/cgji

Статьи о процессе разработки в Badoo

- http://urlid.ru/cgjj- http://urlid.ru/cgjk- http://urlid.ru/cgjl

Конец

Спасибо за внимание

Наш habr-блог: http://habrahabr.ru/company/badoo/blog/

Recommended