Top Banner
Лучшие практики Continuous Delivery с Docker Дмитрий Столяров v3
352

Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Apr 16, 2017

Download

Engineering

Ontico
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Лучшие практики Continuous Delivery с Docker

Дмитрий Столяров

v3

Page 2: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Привет!# whoamidmitry.stolyarov# hostname -dflant.ru# cat /etc/motdЛучшие практикиContinuous Delivery с Docker

Page 4: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Continuous Delivery

git

build

test

release

operate

Page 5: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Continuous Delivery

git

build

test

release

operate

Зачем?

Page 6: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Continuous Delivery

git

build

test

release

operate

Page 7: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Опыт

OpenSolaris Zones

# capsh --print | grep experience

Page 8: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Опыт

Gentoo и Linux-VServer 2006

OpenSolaris Zones

# capsh --print | grep experience

Page 9: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Опыт

Gentoo и Linux-VServer 2006

OpenSolaris Zones

procfs v1 by flant 2008

# capsh --print | grep experience

Page 10: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Опыт

Gentoo и Linux-VServer 2006

OpenSolaris Zones

procfs v1 by flant 2008

LXC

# capsh --print | grep experience

Page 11: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Опыт

Gentoo и Linux-VServer 2006

OpenSolaris Zones

procfs v1 by flant 2008

jailer by flant 2009

LXC

# capsh --print | grep experience

Page 12: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Опыт

Gentoo и Linux-VServer 2006

OpenSolaris Zones

procfs v1 by flant 2008

jailer by flant 2009

LXC

Docker 2013, осень

# capsh --print | grep experience

Page 13: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Опыт

Gentoo и Linux-VServer 2006

OpenSolaris Zones

procfs v1 by flant 2008

jailer by flant 2009

LXC

Docker 2013, осень

Docker 2014, 6 июня

# capsh --print | grep experience

Page 14: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Клиенты

Первый канал Forbes.ru Лепра и Dirty Ситимобил Нотамедиа

# capsh --print | grep clients

Page 15: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Внедрения# capsh --print | grep implementations

10+ прошлых поколений

с 2011 года

Page 16: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Внедрения

4 проекта

уже в продакшне

# capsh --print | grep implementations

10+ прошлых поколений

с 2011 года

Page 17: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Внедрения

4 проекта

уже в продакшне

# capsh --print | grep implementations

10+ прошлых поколений

с 2011 года

2 проекта

на подходе

Page 18: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Зачем Docker? ?

Page 19: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1

Старая версияработает

Page 20: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1

Старая версияработает

Старая версияостановлена

Page 21: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2

Старая версияработает

Старая версияостановлена

Новая версия“прогревается”

Page 22: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2 V2

Старая версияработает

Старая версияостановлена

Новая версия“прогревается”

Новая версияработает

Page 23: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2 V2

Старая версияработает

Старая версияостановлена

Новая версия“прогревается”

Новая версияработает

Page 24: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1

Старая версияработает

Page 25: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1

Старая версияработает

Новая версия“прогревается”

V2V1

Page 26: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2

Старая версияработает

Новая версия“прогревается”

Переключилитрафик

V2V1 V1

Page 27: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2 V2

Старая версияработает

Новая версия“прогревается”

Переключилитрафик

Старая версия остановлена

V2V1 V1

Page 28: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2 V2

Старая версияработает

Новая версия“прогревается”

Переключилитрафик

Старая версия остановлена

V2V1 V1

Page 29: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2 V2

V1 V2 V2V2V1 V1

Page 30: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

V1 V2 V2

V1 V2 V2V2V1 V1

Page 31: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

Page 32: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

Page 33: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

:81

Page 34: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1 V2

:80 :81 Сетевые ресурсыпорты, сетевые интерфейсы

Page 35: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1 V2

:80 :81 Сетевые ресурсыпорты, сетевые интерфейсы

Файловая системаpid-файлы, директории с кэшем, собственные пути

Page 36: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1 V2

:80 :81 Сетевые ресурсыпорты, сетевые интерфейсы

Файловая системаpid-файлы, директории с кэшем, собственные пути

IPCобщая память, семафоры, сообщения

Page 37: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1 V2

Сетевые ресурсыпорты, сетевые интерфейсы

Файловая системаpid-файлы, директории с кэшем, собственные пути

IPCобщая память, семафоры, сообщения

PIDидентификаторы процессов, видимость

:80 :81

Page 38: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Убрать конфликты можно...

Page 39: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

:80

Page 40: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

:80

Сетевые ресурсыпорты, сетевые интерфейсы

Page 41: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

:80

Сетевые ресурсыпорты, сетевые интерфейсы

Файловая системаpid-файлы, директории с кэшем, собственные пути

Page 42: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

:80

Сетевые ресурсыпорты, сетевые интерфейсы

Файловая системаpid-файлы, директории с кэшем, собственные пути

IPCобщая память, семафоры, сообщения

Page 43: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

:80

Сетевые ресурсыпорты, сетевые интерфейсы

Файловая системаpid-файлы, директории с кэшем, собственные пути

IPCобщая память, семафоры, сообщения

PIDидентификаторы процессов, видимость

Page 44: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Запуск “двух версий”

V1

:80

V2

:80

Docker даёт гарантию изоляции ресурсов

Сетевые ресурсыпорты, сетевые интерфейсы

Файловая системаpid-файлы, директории с кэшем, собственные пути

IPCобщая память, семафоры, сообщения

PIDидентификаторы процессов, видимость

Page 45: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Обновление зависимостей

V1

PHP v1

driver v1

Page 46: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Обновление зависимостей

V1

PHP v1

driver v1

V1 V2

PHP

driver v1

driver v2

Page 47: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Обновление зависимостей

V1

PHP v1

driver v1

V1 V2

PHP

driver v1

driver v2

V1 V2

PHP v1

driver v1

PHP v2

driver v2

Page 48: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Обновление зависимостей

V1

PHP v1

driver v1

V1 V2

PHP

driver v1

driver v2

V1 V2

PHP v1

driver v1

PHP v2

driver v2

Page 49: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Разрулить конфликты зависимостей тоже можно...

Page 50: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Главный паттерн

V1

Старая версия работает

1

Page 51: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Главный паттерн

V1 V1 V2

Старая версия работает Новая версия “прогревается”

1 2

Page 52: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Главный паттерн

V1 V1 V2

V1 V2

Старая версия работает Новая версия “прогревается”

Переключили трафик

1 2

3

Page 53: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Главный паттерн

V1 V1 V2

V1 V2 V2

Старая версия работает Новая версия “прогревается”

Переключили трафик Старая версия остановлена

1 2

3 4

Page 54: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Главный паттерн

дырявыйopenssl

дырявыйopenssl

безопасныйopenssl

дырявыйopenssl

безопасныйopenssl

безопасныйopenssl

Старая версия работает Новая версия “прогревается”

Переключили трафик Старая версия остановлена

1 2

3 4

Page 55: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Главный паттерн

Ubuntu14.04

Ubuntu14.04

Ubuntu16.04

Ubuntu14.06

Ubuntu16.04

Ubuntu16.04

Старая версия работает Новая версия “прогревается”

Переключили трафик Старая версия остановлена

1 2

3 4

Page 56: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Главный паттерн

Старая версия работает Новая версия “прогревается”

Переключили трафик Старая версия остановлена

1 2

3 4

Page 57: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Независимость

Ubuntu

Page 58: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Независимость

Ubuntu CentOS

Page 59: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Независимость

Ubuntu CentOS Slackware Enterprise Linux

Page 60: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Page 61: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Page 62: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей

Page 63: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей

Page 64: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей

Обновление системного ПО

Page 65: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей

Обновление системного ПО

Page 66: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей

Обновление системного ПО

Возможность отката

Page 67: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Zero Downtime Deployment

Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты

Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей

Обновление системного ПО

Возможность отката

Page 68: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#1: Используйте Docker

Page 69: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Воспроизводимость

программисты

git

Page 70: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

программисты

staging

git

Воспроизводимость

Page 71: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

программисты

staging

QA

git

Воспроизводимость

Page 72: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

программисты

staging production

QA

git

Воспроизводимость

Page 73: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

production

Page 74: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

prod

uctio

n

Page 75: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

prod

uctio

n

Page 76: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

cервер #1

git

Воспроизводимость

Page 77: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

cервер #1

git

зеркало пакетов

Воспроизводимость

Page 78: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

cервер #1

git

зеркало пакетов

обновлённоезеркало

Воспроизводимость

Page 79: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

cервер #1

git

зеркало пакетов

cервер #2

обновлённоезеркало

Воспроизводимость

Page 80: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

cервер #2

Page 81: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

cерв

ер #

2

Page 82: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

cерв

ер #2

Page 83: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Разработчик: “У меня локально всё работает!”

Page 84: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

… а разработчиков пускать на прод запретили.

Page 85: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

ВоспроизводимостьТестовое окружение → Продакшн

Page 86: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

ВоспроизводимостьТестовое окружение → Продакшн

Выкат на множество серверов

Page 87: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Воспроизводимость

Выкат на несколько кластеров / площадок

Тестовое окружение → Продакшн

Выкат на множество серверов

Page 88: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Воспроизводимость

Выкат на несколько кластеров / площадок

Локальный запуск точной копии

Тестовое окружение → Продакшн

Выкат на множество серверов

Page 89: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Выкат на несколько кластеров / площадок

Локальный запуск точной копии

Тестовое окружение → Продакшн

Выкат на множество серверов

Запуск “старых” версий

Воспроизводимость

Page 90: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Гарантия воспроизводимости

gitпрограммисты

Page 91: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Гарантия воспроизводимости

gitпрограммисты dockerобраз

Page 92: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Гарантия воспроизводимости

git

тестовая площадка

программисты dockerобраз

Page 93: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Гарантия воспроизводимости

gitпрограммисты dockerобраз

production

тестовая площадка

Page 94: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Гарантия воспроизводимости

gitпрограммисты dockerобраз программисты

тестовая площадка

production

Page 95: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Гарантия воспроизводимости

gitпрограммисты dockerобраз

другие площадки

тестовая площадка

production

программисты

Page 96: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Гарантия воспроизводимости

gitпрограммисты dockerобраз

архив

тестовая площадка

production

программисты

другие площадки

Page 97: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#2: One image to rule them all

Page 98: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Разобрались с Docker ✔

Page 99: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Как собирать docker-образы? ?

Разобрались с Docker ✔

Page 100: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Разобрались с Docker ✔

Как собирать docker-образы? ?

Куда положить Dockerfile? ?

Page 101: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

git

Page 102: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

git

V2 V1

Page 103: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

Код и инфраструктура

development master

git

V2 V1

Page 104: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

Код и инфраструктура

development master

git

V1 PHP 5.5

V2 V1

Page 105: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development

staging production

master

git

V2 V1PHP 7 PHP 5.5

V2 V1

Page 106: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development

staging production

master

git

V2 V1PHP 7 PHP 5.5

V2 V2

Page 107: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

staging production

git

V2 V2PHP 7

V2 V2

PHP 5.5

Page 108: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

staging production

git

V2 V2PHP 7 PHP 5.5

V2 V2

Page 109: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 110: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

V2

staging production

V1

git

V2 V1PHP 7 PHP 5.5

Page 111: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

V2

staging production

V1

git

V2 V1PHP 7 PHP 5.5

PHP 7 PHP 5.5

Page 112: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

V2 V1

gitPHP 7 PHP 5.5

staging production

V2 PHP 7 V1 PHP 5.5

Page 113: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

V2

staging production

V2

gitPHP 7 PHP 7

V2 PHP 7 V1 PHP 5.5

Page 114: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и инфраструктура

development master

staging production

V2

gitPHP 7

V2 PHP 7 V2 PHP 7

V2

PHP 7

Page 115: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

… и должна жить с ним

#3: Инфраструктура – это код

Page 116: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

nginx 1.2

V2

frontend

backend

production

V1

Page 117: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

nginx 1.2

V2

nginx 1.3

V2

frontend

backend

staging production

V1

Page 118: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

nginx 1.2

V2

nginx 1.3

V2

frontend

backend

staging production

V1

Page 119: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

nginx 1.2

V2

nginx 1.3

V2

frontend

backend

staging production

V2

Page 120: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

nginx 1.2

V2

nginx 1.3

V2

frontend

backend

staging production

V2

Page 121: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 122: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

nginx 1.3

V2

nginx 1.3

V2

frontend

backend

staging production

V2

Page 123: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

V1

development

PHP 5.5

git

V2

production

PHP 7

Page 124: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

V1

development

PHP 5.5

nginx 1.2

git

V2

production

PHP 7

nginx 1.3

Page 125: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Код и многослойная архитектура

V2

PHP 7

nginx 1.3

git

программисты

devops

V2

docker-образ #1

PHP 7

nginx 1.3

docker-образ #2

Page 126: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

… и это касается не только бекенда

#3: Инфраструктура – это код

Page 127: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

Page 128: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

Page 129: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код nginx

Page 130: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код nginx

Page 131: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

git project_3

Код nginx

nginx

Page 132: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

git project_3

Код nginx

nginx

Page 133: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

git project_3

Код

git project_4

Код nginx

nginx

nginx

Page 134: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

git project_3

Код

git project_4

Код

Код nginx

git project_6

Код nginx

git project_5

nginx

nginx nginx

Page 135: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

git project_3

Код

git project_4

Код

Код nginx

git project_6

Код nginx

git project_5

nginx

nginx nginx

Page 136: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

git project_3

Код

git project_4

Код

Код nginx

git project_6

Код nginx

git project_5

nginx

nginx nginx

Page 137: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

WET

Page 138: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

WETwe enjoy typing

Page 139: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

WETwe enjoy typing

write everything twice

Page 140: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

WETwe enjoy typing

write everything twicewaste everyone's time

Page 141: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

DRY

Page 142: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

DRYdon't repeat yourself

Page 143: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

Page 144: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx

git project_2

Код

Page 145: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginxnginx

Page 146: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx v1

git project_2

Код

git nginxnginx

v1

Page 147: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код nginx v1

git project_2

Код

git nginxnginx

v1

nginx v1

Page 148: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v2

nginx v1

nginx v1

Page 149: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v2

nginx v2

nginx v1

Page 150: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v2

nginx v2

nginx v2

Page 151: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v2

nginx v3

nginx v2

Page 152: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v2

nginx v3

nginx v3

Page 153: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Page 154: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

bundler, composer, pip, npm, ...

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

Page 155: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

bundler, composer, pip, npm, ...

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

Page 156: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dockerfile

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

bundler, composer, pip, npm, ...

Page 157: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dockerfile + git submodules

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

bundler, composer, pip, npm, ...

Page 158: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dockerfile + git submodules

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

bundler, composer, pip, npm, ...

Chef

Page 159: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dockerfile + git submodules

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

bundler, composer, pip, npm, ...

Chef + Berkshelf

Page 160: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dockerfile + git submodules

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

bundler, composer, pip, npm, ...

Chef + Berkshelf

Puppet

Page 161: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dockerfile + git submodules

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

bundler, composer, pip, npm, ...

Chef + Berkshelf

Puppet + Librarian

Page 162: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dockerfile + git submodules

Несколько проектовgit project_1

Код

git project_2

Код

git nginx

nginx v4

nginx v4

nginx v2

Dependency management

bundler, composer, pip, npm, ...

Chef + Berkshelf

Puppet + Librarian

Page 163: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

… и требует соответствующих подходов

#3: Инфраструктура – это код

Page 164: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Разобрались с Docker ✔

Page 165: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Интегрировали код инфраструктуры ✔

Разобрались с Docker ✔

Page 166: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Разобрались с Docker

Интегрировали код инфраструктуры ✔

Когда собирать docker-образы? ?

Page 167: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Разобрались с Docker

Интегрировали код инфраструктуры ✔

Когда собирать docker-образы?

Как лучше тегировать docker-образы?

?

?

Page 168: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git → DockerКакие бранчи собирать?

Page 169: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git → DockerКакие бранчи собирать?

Как тегировать образы?

Page 170: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Как найти старую версию?

Git → DockerКакие бранчи собирать?

Как тегировать образы?

Page 171: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Как найти старую версию?

Git → DockerКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Page 172: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Как найти старую версию?

Git → DockerКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Что побывало в продакшне? На какую версию откатиться?

Page 173: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Какие из образов должны проходить QA?

Как найти старую версию?

Git → DockerКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Что побывало в продакшне? На какую версию откатиться?

Page 174: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

Временные образы

Page 175: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

Временные образы

Page 176: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

Временные образы

Page 177: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

preview

Временные образы

Page 178: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

preview

app:master

Временные образы

Page 179: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

preview

app:master

Временные образы

Page 180: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

app:release_7

preview

app:master

Временные образы

Page 181: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

app:release_7

preview

app:master

Временные образы

Page 182: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

app:release_7

preview

app:master

Временные образы

Page 183: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

app:release_7

preview

app:master

Временные образы

Page 184: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

release_7

app:release_7

preview

Временные образыapp:master

master

app:master

Page 185: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

app:master

release_7

app:release_7

preview

Временные образы

master

app:master

Page 186: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

release_7

app:release_7

preview

Временные образы

master

app:master

app:master

Page 187: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

release_7

app:release_7

preview

Временные образы

master

app:master app:master≠

Page 188: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

app:release_7

preview

Временные образыapp:master

Page 189: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

app:release_7

preview

app:master

Временные образы

Page 190: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

app:master

release_7

app:release_7

preview

Временные образыapp:master

Page 191: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

feature_x

master

app:master

release_7

app:release_7

preview

app:feature_x

Временные образыapp:master

Page 192: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Временные образыСобирать все бранчи?

Page 193: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Временные образыСобирать все бранчи? Не стоит

Page 194: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Временные образыСобирать все бранчи? Не стоит

master — общая интеграция

Page 195: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Временные образы

master — общая интеграция

release — интеграция релизов /^release_.*/

Собирать все бранчи? Не стоит

Page 196: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Временные образы

master — общая интеграция

release — интеграция релизов /^release_.*/

feature — интеграция “фич” /^feature_.*/

Собирать все бранчи? Не стоит

Page 197: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Временные образы

master — общая интеграция

release — интеграция релизов /^release_.*/

feature — интеграция “фич” /^feature_.*/

Выкатывать автоматом?

Собирать все бранчи? Не стоит

Page 198: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Временные образы

master — общая интеграция

release — интеграция релизов /^release_.*/

feature — интеграция “фич” /^feature_.*/

Выкатывать автоматом? Как удобнее

Собирать все бранчи? Не стоит

Page 199: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master 6.0.1

Релизные образыstaging production

Page 200: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

master

Релизные образы

app:6.0.1

6.0.1

staging production

Page 201: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

Релизные образыapp:6.0.1

6.0.1

app:6.0.1

Page 202: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7

Релизные образы

6.0.1

app:6.0.1

app:6.0.1

Page 203: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.0.1master

release_7

Релизные образыapp:6.0.1

app:6.0.1

Page 204: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.0.1master

release_7 7.0.0

Релизные образыapp:6.0.1

app:6.0.1

Page 205: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.0.1master

release_7

Релизные образыapp:6.0.1

app:6.0.1 app:7.0.0

7.0.0

Page 206: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.0.1master

release_7

Релизные образыapp:6.0.1

app:6.0.1

7.0.0

app:7.0.0

app:7.0.0

Page 207: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.0.1master

release_7

Релизные образыapp:6.0.1

app:6.0.1

7.0.0

app:7.0.0

app:7.0.0

Page 208: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.0.1

7.0.0

master

release_7

Релизные образыapp:6.0.1

app:6.0.1 app:7.0.0

app:7.0.0

Page 209: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.0.1master

release_7 7.0.0

Релизные образыapp:6.0.1

app:6.0.1 app:7.0.0

app:7.0.0

Page 210: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:7.0.0

Page 211: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

6.1.0

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:7.0.0

Page 212: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:7.0.0

✗app:6.1.0

6.1.0

Page 213: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0

6.1.0

Page 214: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0

6.1.0

Page 215: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

Релизные образы

6.0.1 6.1.0

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0

Page 216: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

Релизные образы

6.0.1 6.1.0

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0

Page 217: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

6.1.0master

release_7 7.0.0

release_8

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0✗

Page 218: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0✗

Page 219: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0 6.1.1

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0✗

Page 220: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0 6.1.1

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.0

✗app:6.1.0✗

app:6.1.1

Page 221: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0 6.1.1

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1

Page 222: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0 6.1.1

Релизные образы

6.0.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1

Page 223: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1

Page 224: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.0.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1OK

Page 225: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.1.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1

Page 226: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.1.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1

Page 227: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.1.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1

Page 228: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

7.0.1

Релизные образы

6.0.1 6.1.1

app:6.1.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1

Page 229: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.1.1

app:6.0.1 app:7.0.0

app:6.1.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

7.0.1

Page 230: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.1.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

7.0.1

Page 231: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

app:6.1.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

7.0.1

Page 232: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

7.0.1

app:6.1.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

Page 233: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

7.0.1

app:6.1.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1OK

Page 234: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

7.0.1

app:7.0.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

Page 235: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

7.0.1

app:7.0.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

Page 236: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

release_7 7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

7.0.1

app:7.0.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

Page 237: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

staging production

master

7.0.0

release_8

6.1.0

Релизные образы

6.0.1 6.1.1

7.0.1

app:7.0.1

app:6.0.1 app:7.0.0

app:7.0.1

✗app:6.1.0✗

app:6.1.1 app:7.0.1

Page 238: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Page 239: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

git branch

git tag

временные образы

релизные образы

Page 240: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Page 241: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Page 242: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

docker tag git tag

Page 243: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Page 244: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Page 245: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Page 246: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

Page 247: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

релиз багфикс итерация QA6.0.3

Page 248: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

релиз багфикс итерация QA6.0.3

Page 249: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

релиз багфикс итерация QA6.0.3

Page 250: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

Page 251: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

Как найти старую версию?

Page 252: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

Как найти старую версию?

git tag docker tag

Page 253: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Git`о Docker`ный workflowКакие бранчи собирать?

Как тегировать образы?

Какой коммит на продакшне? Дельта выката?

Какие из образов должны проходить QA?

Что побывало в продакшне? На какую версию откатиться?

Как найти старую версию?

Page 254: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#4: Свяжите Git с Docker

Page 255: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Интегрировали код инфраструктуры ✔

Разобрались с Docker ✔

Page 256: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Интегрировали код инфраструктуры ✔

Разобрались с Docker ✔

Связали Git с Docker ✔

Page 257: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Чего не хватает? ?

Интегрировали код инфраструктуры ✔

Разобрались с Docker ✔

Связали Git с Docker ✔

Page 258: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

frontend

backend

Последовательность выката

nginx 1.2

HTTP

PHP 5.5V1

Старая версия работает

Page 259: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

frontend

backend

Последовательность выката

nginx 1.2

HTTP

nginx 1.2

HTTP

Старая версия работает

Обновилиbackend

PHP 5.5V1 PHP 7V2

1

Page 260: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

frontend

backend

Последовательность выката

nginx 1.2

HTTP

nginx 1.2

HTTP WS

Старая версия работает

Обновилиbackend

PHP 5.5V1 PHP 7V2

1

Page 261: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 262: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

frontend

backend

Последовательность выката

nginx 1.2

HTTP

nginx 1.2

HTTP WS

nginx 1.3

HTTP WS

Старая версия работает

Обновилиbackend

Обновилиfrontend

PHP 5.5V1 PHP 7V2 PHP 7

1

V2

2

Page 263: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Последовательность выката

PHP 5.5

HTTP

nginx 1.2

HTTP WS

nginx 1.3

HTTP WS

Старая версия работает

frontend

backend V1

nginx 1.2

PHP 7V2 PHP 7V2

2

1Обновилиbackend

Обновилиfrontend

Page 264: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Последовательность выката

PHP 5.5

HTTP

Старая версия работает

frontend

backend V1

nginx 1.2

Page 265: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Последовательность выката

PHP 5.5

HTTP

nginx 1.3

HTTP

Старая версия работает

frontend

backend V1

nginx 1.2

PHP 5.5V1

Обновилиfrontend

1

Page 266: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Последовательность выката

PHP 5.5

HTTP

nginx 1.3

HTTP

nginx 1.3

HTTP WS

Старая версия работает

frontend

backend V1

nginx 1.2

PHP 5.5V1 PHP 7V2

Обновилиfrontend

Обновилиbackend

1

2

Page 267: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Последовательность выката

PHP 5.5

HTTP

nginx 1.3

HTTP

nginx 1.3

HTTP WS

Старая версия работает

frontend

backend V1

nginx 1.2

PHP 5.5V1 PHP 7V2 2

1

Обновилиfrontend

Обновилиbackend

Page 268: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Например: frontend → migration → backend

#5: Регламентируйте порядок выката

Page 269: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Интегрировали код инфраструктуры ✔

Разобрались с Docker ✔

Связали Git с Docker ✔

Page 270: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Интегрировали код инфраструктуры ✔

Разобрались с Docker ✔

Связали Git с Docker ✔

Установили порядок выката ✔

Page 271: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Интегрировали код инфраструктуры ✔

Разобрались с Docker ✔

Связали Git с Docker ✔

Установили порядок выката ✔

Снова чего-то не хватает? ?

Page 272: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Docker swarm Docker compose

Page 273: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Docker swarm Docker compose

Page 274: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Docker swarm Docker compose Consul Serf

Page 275: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dokku

Docker swarm Docker compose Consul Serf

Page 276: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dokku Shipyard

Docker swarm Docker compose Consul Serf

Page 277: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dokku Shipyard

Docker swarm Docker compose Consul Serf

Page 278: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Dokku Shipyard

Docker swarm Docker compose Consul Serf

Page 279: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 280: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Accelerate Your Delivery

Page 281: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

by Google

Page 282: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 283: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 284: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 285: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Page 286: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

κυβερνήτης

Page 287: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

кормчий

Page 288: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Readiness probe

V1

Старая версияработает

Page 289: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Readiness probe

V1

Старая версияработает

V1

Новая версия прогревается

V2

Page 290: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Readiness probe

V1

Старая версияработает

V1

Новая версия прогревается

V2 V1 V2

Readiness probe

Page 291: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Readiness probe

V1

Старая версияработает

V1

Новая версия прогревается

V2 V1

Readiness probe

V2 V1

Переключили трафик

V2

Старая версияостановлена

V2

Page 292: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1 V1 V1 V1 V1

Page 293: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1 V1 V1 V1 V1

Page 294: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1 V1 V1 V1

Page 295: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1 V1 V1 V1

Page 296: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1 V1 V1

Page 297: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1 V1

Page 298: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1

Page 299: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1V2

Page 300: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1V2

Page 301: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1V2 V2

Page 302: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1V2 V2

Page 303: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1V2 V2 V2

Page 304: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1V2 V2 V2 V2

Page 305: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1 V1V2 V2 V2 V2

Page 306: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1 V1V2 V2 V2 V2

Page 307: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V1 V1V2 V2 V2 V2

Page 308: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V2 V2 V2 V2

Page 309: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V2 V2 V2 V2 V2

Page 310: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V2 V2 V2 V2 V2 V2

Page 311: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Synchronous update

V2 V2 V2 V2 V2 V2 V2 V2

Page 312: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V1 V1 V1 V1 V1 V1 V1 V1

Page 313: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V1 V1 V1 V1 V1 V1 V1 V1

Page 314: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V1 V1 V1 V1 V1 V1 V1

Page 315: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V1 V1 V1 V1 V1 V1 V1

Page 316: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V1 V1 V1 V1 V1 V1 V1

Page 317: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V1 V1 V1 V1 V1 V1 V1

Page 318: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V1 V1 V1 V1 V1 V1

Page 319: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V1 V1 V1 V1 V1 V1

Page 320: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V1 V1 V1 V1 V1 V1

Page 321: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V2 V1 V1 V1 V1 V1

Page 322: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V2 V2 V1 V1 V1 V1

Page 323: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V2 V2 V2 V1 V1 V1

Page 324: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V2 V2 V2 V2 V1 V1

Page 325: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V2 V2 V2 V2 V2 V1

Page 326: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Rolling update

V2 V2 V2 V2 V2 V2 V2 V2

Page 327: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & release

readiness probe

Page 328: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & release

readiness probe

synchronous update

Page 329: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & release

readiness probe

synchronous update

rolling update

Page 330: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & release

readiness probe

synchronous update

canary releases

rolling update

Page 331: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & operate

service supervision

Page 332: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & operate

service supervision liveness probe

Page 333: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & operate

service supervision liveness probe self-healing

Page 334: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & operate

service supervision liveness probe

autoscaling

self-healing

Page 335: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & operate

service supervision liveness probe

monitoringinflux + grafana

autoscaling

self-healing

Page 336: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes & operate

service supervision liveness probe

monitoringinflux + grafana

autoscaling

self-healing

loggingelastic + fluent + kibana

Page 337: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes

Мощный фундамент

Page 338: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes

Мощный фундамент

Большие перспективы

Page 339: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes

Мощный фундамент

Большие перспективы

Интеграция вместо велосипедов

Page 340: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes

Мощный фундамент

Большие перспективы

Простота

Интеграция вместо велосипедов

Page 341: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes

Мощный фундамент

Большие перспективы

Невероятная совместимостьПростота

Интеграция вместо велосипедов

Page 342: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

kubernetes

Мощный фундамент

Большие перспективы

Невероятная совместимостьПростота

Интеграция вместо велосипедов

Всеразмерность

Page 343: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

… ведь она есть и работает!

#6: Используйте готовую платформу

Page 344: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#1: Используйте Docker

Page 345: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#1: Используйте Docker

#2: One image to rule them all

Page 346: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#1: Используйте Docker

#2: One image to rule them all

#3: Инфраструктура – это код

Page 347: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#1: Используйте Docker

#2: One image to rule them all

#3: Инфраструктура – это код

#4: Свяжите Git и Docker

Page 348: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#1: Используйте Docker

#2: One image to rule them all

#3: Инфраструктура – это код

#4: Свяжите Git и Docker

#5: Регламентируйте порядок выката

Page 349: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

#1: Используйте Docker

#2: One image to rule them all

#3: Инфраструктура – это код

#4: Свяжите Git и Docker

#5: Регламентируйте порядок выката

#6: Используйте готовую платформу

Page 350: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Приглашаем в гости на наш стенд В3

LINUX-КВЕСТУдивительный квест для самых отважных сисадминов.

Записывайтесь прямо сейчас и покажите свой опыт в Linux-кунгфу.

1 июня, 12:30

Участникам потребуется ssh-клиент ;)

Page 351: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

pam_docker github.com/flant/pam_docker

Поддержите нас, поставьте ★

#1: Используйте Docker

#2: One image to rule them all

#3: Инфраструктура – это код

#4: Свяжите Git и Docker

#5: Регламентируйте порядок выката

#6: Используйте готовую платформу

Дмитрий Столяров [email protected]

flant.ru

Работа в Нижнем НовгородеПишите на [email protected]

Лучшие практики Continuous Delivery с Docker

Page 352: Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)

Continuous Deliverygit

build

test

release

operate

Gitlab

Kubernetes