54
Docker в Badoo: ПМЖ или временная регистрация Антон Турецкий

Docker integration into Badoo

Embed Size (px)

Citation preview

Page 1: Docker integration into Badoo

Docker в Badoo:ПМЖ или временная регистрация

Антон Турецкий

Page 2: Docker integration into Badoo

Our Infrastructure~ 3000 servers

C/Go9%

PHP32%

Other22%

Photos15%

MySQL22%

Page 3: Docker integration into Badoo

Всё просто,понятно иочевидно где подвох?

Page 4: Docker integration into Badoo

Docker✦ 2013 год

Page 5: Docker integration into Badoo

Docker✦ 2013 год

✦ “Наброс” коллеги…

Page 6: Docker integration into Badoo

Docker✦ 2013 год

✦ “Наброс” коллеги…

✦ У нас проблемы?

Page 7: Docker integration into Badoo

SetupMonitoring

Support

Servers Network

Our Main Tasks

Page 8: Docker integration into Badoo

Our tools

✦ xCAT: Servers installation

✦ GLPI: Infrastructure inventory

✦ Puppet: Support infrastructure

Page 9: Docker integration into Badoo

Почему и зачеммне “набросили”про Docker? ну давай посмотрим…

Page 10: Docker integration into Badoo

What is that?

Reminder: 2013 year

Page 11: Docker integration into Badoo

Фигня какая-то…

Выводы

Page 12: Docker integration into Badoo

Фигня какая-то…

У меня много задач и нет времени на развлечения

Выводы

Page 13: Docker integration into Badoo

Фигня какая-то…

У меня много задач и нет времени на развлечения

“Потом” посмотрю… попозже

Выводы

Page 14: Docker integration into Badoo

Время быстро пролетело и “потом” настало

Page 15: Docker integration into Badoo

Where is the right place for Docker?

C/Go9%

PHP32%

Other22%

Photos15%

MySQL22%

Page 16: Docker integration into Badoo

Where is the right place for Docker?

C/Go9%

PHP32%

Other22%

Photos15%

MySQL22%

Page 17: Docker integration into Badoo

Что мы хотели?

✦ Одинаковое окружение для сервиса

Page 18: Docker integration into Badoo

Что мы хотели?

✦ Одинаковое окружение для сервиса

✦ Упрощение процедур:деплой, обновление, откат

Page 19: Docker integration into Badoo

Что мы хотели?

✦ Одинаковое окружение для сервиса

✦ Упрощение процедур: деплой, обновление, откат

✦ Сохранение обратной совместимости

Page 20: Docker integration into Badoo

Поехали!

Page 21: Docker integration into Badoo

Подготовка инфраструктуры

✦ “Старое” ядро на SLE-11

Page 22: Docker integration into Badoo

Подготовка инфраструктуры

✦ “Старое” ядро на SLE-11

✦ Выбор storage driver для Docker

Page 23: Docker integration into Badoo

Подготовка инфраструктуры

✦ “Старое” ядро на SLE-11

✦ Выбор storage driver для Docker

✦ Сеть в Docker

Page 24: Docker integration into Badoo

Первый блин комом как стать знаменитым внутри компании

Page 25: Docker integration into Badoo

Devicemapper / LVM

Downtime “по-взрослому”

Page 26: Docker integration into Badoo

Devicemapper / LVM

Network: nf_conntrack

Downtime “по-взрослому”

Page 27: Docker integration into Badoo

Devicemapper / LVM

Network: nf_conntrack

Во всех бедах виноват Docker

Downtime “по-взрослому”

Page 28: Docker integration into Badoo

Отступать – не наш метод.Делаем выводы.

Page 29: Docker integration into Badoo

First conclusions

✦ BTRFS as storage driver

Page 30: Docker integration into Badoo

First conclusions

✦ BTRFS as storage driver

✦ Disable connection tracking:use “--net=host”

Page 31: Docker integration into Badoo

First conclusions

✦ BTRFS as storage driver

✦ Disable connection tracking:use “--net=host”

✦ We need it in our infrastructure

Page 32: Docker integration into Badoo

Мы начали переносить свои сервисы в Docker, с парадигмой

“один сервис – один контейнер”

Page 33: Docker integration into Badoo

Нам нужно >1 службы в контейнере

(исторически сложилось). “Костылим” entrypoint.

Page 34: Docker integration into Badoo

Second checkpoint

✦ We need “init system” inside our containers

Page 35: Docker integration into Badoo

Second checkpoint

✦ We need “init system” inside our containers

✦ We need to send services’s logs outside our containers

Page 36: Docker integration into Badoo

Init insidecontainers

s6small

supervision suite

Page 37: Docker integration into Badoo

Logs collectioninteresting quest with syslog

Page 38: Docker integration into Badoo

Что я там про“обратную совместимость”

говорил?

Page 39: Docker integration into Badoo

Puppet

Badoo Port Map

Badoo Services Map

Управление инфрастуктурой

Page 40: Docker integration into Badoo

Наши дни

Page 41: Docker integration into Badoo

Latest Stable

✦ SLE-12 + kernel 4.4.0 (SLE-11 + kernel 3.16)

Page 42: Docker integration into Badoo

Latest Stable

✦ SLE-12 + kernel 4.4.0 (SLE-11 + kernel 3.16)

✦ OverlayFS as storage driver (BTRFS)

Page 43: Docker integration into Badoo

Latest Stable

✦ SLE-12 + kernel 4.4.0 (SLE-11 + kernel 3.16)

✦ OverlayFS as storage driver (BTRFS)

✦ “--net=host” for network

Page 44: Docker integration into Badoo

Latest Stable

✦ SLE-12 + kernel 4.4.0 (SLE-11 + kernel 3.16)

✦ OverlayFS as storage driver (BTRFS)

✦ “--net=host” for network

✦ Puppet for build Docker Images

Page 45: Docker integration into Badoo

Latest Stable

✦ SLE-12 + kernel 4.4.0 (SLE-11 + kernel 3.16)

✦ OverlayFS as storage driver (BTRFS)

✦ “--net=host” for network

✦ Puppet for build Docker Images

✦ baDocker for orchestration

Page 46: Docker integration into Badoo

Latest Stable

✦ SLE-12 + kernel 4.4.0 (SLE-11 + kernel 3.16)

✦ OverlayFS as storage driver (BTRFS)

✦ “--net=host” for network

✦ Puppet for build Docker Images

✦ baDocker for orchestration

✦ Our own tool for monitoring containers

Page 47: Docker integration into Badoo

2013

C/Go9%

PHP32%

Other22%

Photos15%

MySQL22%

Page 48: Docker integration into Badoo

2016

C/Go9%

PHP32%

Other22%

Photos15%

MySQL22%

Page 49: Docker integration into Badoo

Планы на ближайшее будущее

Page 50: Docker integration into Badoo

Our Future✦ All services in containers

Page 51: Docker integration into Badoo

Our Future✦ All services in containers

✦ baDocker improvements

Page 52: Docker integration into Badoo

Our Future✦ All services in containers

✦ baDocker improvements

✦ Dynamic configs for services

Page 53: Docker integration into Badoo

The original, largest and leading dating network

Page 54: Docker integration into Badoo

Спасибо!Антон Турецкий

[email protected]

@tyrchenok

@BadooDevhttp://habrahabr.ru/company/badoo/

https://tech.badoo.com/

предыдущие доклады про Docker: https://goo.gl/KcIhwG