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

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

Embed Size (px)

Citation preview

Page 1: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

демонов

Page 2: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 3: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 4: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 5: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

version 2.0

Page 6: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 7: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 8: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 9: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 10: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 11: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 12: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 13: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 14: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 15: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

tested

Page 16: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

tested

Page 17: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

tested

Page 18: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 19: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 20: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

tested

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

Page 21: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Page 22: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 23: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 24: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Dockerfile

Page 25: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Использование 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

Page 26: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 27: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Тесты и Docker

Page 28: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Тесты и Docker

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

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

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

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

Page 29: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 30: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 31: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 32: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 33: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 34: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 35: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Тесты и 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" },]

Page 36: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Тесты и 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" },]

Page 37: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 38: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

host_port:cont_port)

Page 39: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Тесты и 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

Page 40: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Тесты и Docker

DaemonAPI DockerAPI

Page 41: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

Page 42: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Минусы:

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

Page 43: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

Минусы:

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

Page 44: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

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

Page 45: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

файлов

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

Page 46: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

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

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

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

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

Page 47: Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на LoveQA РИТ

Конец

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

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