Upload
ontico
View
9.568
Download
6
Embed Size (px)
Citation preview
Привет!# whoamidmitry.stolyarov# hostname -dflant.ru# cat /etc/motdЛучшие практикиContinuous Delivery с Docker
Опыт
Gentoo и Linux-VServer 2006
OpenSolaris Zones
procfs v1 by flant 2008
# capsh --print | grep experience
Опыт
Gentoo и Linux-VServer 2006
OpenSolaris Zones
procfs v1 by flant 2008
LXC
# capsh --print | grep experience
Опыт
Gentoo и Linux-VServer 2006
OpenSolaris Zones
procfs v1 by flant 2008
jailer by flant 2009
LXC
# capsh --print | grep experience
Опыт
Gentoo и Linux-VServer 2006
OpenSolaris Zones
procfs v1 by flant 2008
jailer by flant 2009
LXC
Docker 2013, осень
# capsh --print | grep experience
Опыт
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
Внедрения
4 проекта
уже в продакшне
# capsh --print | grep implementations
10+ прошлых поколений
с 2011 года
Внедрения
4 проекта
уже в продакшне
# capsh --print | grep implementations
10+ прошлых поколений
с 2011 года
2 проекта
на подходе
Zero Downtime Deployment
V1 V2
Старая версияработает
Старая версияостановлена
Новая версия“прогревается”
Zero Downtime Deployment
V1 V2 V2
Старая версияработает
Старая версияостановлена
Новая версия“прогревается”
Новая версияработает
Zero Downtime Deployment
V1 V2 V2
Старая версияработает
Старая версияостановлена
Новая версия“прогревается”
Новая версияработает
Zero Downtime Deployment
V1 V2
Старая версияработает
Новая версия“прогревается”
Переключилитрафик
V2V1 V1
Zero Downtime Deployment
V1 V2 V2
Старая версияработает
Новая версия“прогревается”
Переключилитрафик
Старая версия остановлена
V2V1 V1
Zero Downtime Deployment
V1 V2 V2
Старая версияработает
Новая версия“прогревается”
Переключилитрафик
Старая версия остановлена
V2V1 V1
Запуск “двух версий”
V1 V2
:80 :81 Сетевые ресурсыпорты, сетевые интерфейсы
Файловая системаpid-файлы, директории с кэшем, собственные пути
Запуск “двух версий”
V1 V2
:80 :81 Сетевые ресурсыпорты, сетевые интерфейсы
Файловая системаpid-файлы, директории с кэшем, собственные пути
IPCобщая память, семафоры, сообщения
Запуск “двух версий”
V1 V2
Сетевые ресурсыпорты, сетевые интерфейсы
Файловая системаpid-файлы, директории с кэшем, собственные пути
IPCобщая память, семафоры, сообщения
PIDидентификаторы процессов, видимость
:80 :81
Запуск “двух версий”
V1
:80
V2
:80
Сетевые ресурсыпорты, сетевые интерфейсы
Файловая системаpid-файлы, директории с кэшем, собственные пути
Запуск “двух версий”
V1
:80
V2
:80
Сетевые ресурсыпорты, сетевые интерфейсы
Файловая системаpid-файлы, директории с кэшем, собственные пути
IPCобщая память, семафоры, сообщения
Запуск “двух версий”
V1
:80
V2
:80
Сетевые ресурсыпорты, сетевые интерфейсы
Файловая системаpid-файлы, директории с кэшем, собственные пути
IPCобщая память, семафоры, сообщения
PIDидентификаторы процессов, видимость
Запуск “двух версий”
V1
:80
V2
:80
Docker даёт гарантию изоляции ресурсов
Сетевые ресурсыпорты, сетевые интерфейсы
Файловая системаpid-файлы, директории с кэшем, собственные пути
IPCобщая память, семафоры, сообщения
PIDидентификаторы процессов, видимость
Обновление зависимостей
V1
PHP v1
driver v1
V1 V2
PHP
driver v1
driver v2
V1 V2
PHP v1
driver v1
PHP v2
driver v2
Обновление зависимостей
V1
PHP v1
driver v1
V1 V2
PHP
driver v1
driver v2
V1 V2
PHP v1
driver v1
PHP v2
driver v2
Главный паттерн
V1 V1 V2
V1 V2
Старая версия работает Новая версия “прогревается”
Переключили трафик
1 2
3
Главный паттерн
V1 V1 V2
V1 V2 V2
Старая версия работает Новая версия “прогревается”
Переключили трафик Старая версия остановлена
1 2
3 4
Главный паттерн
дырявыйopenssl
дырявыйopenssl
безопасныйopenssl
дырявыйopenssl
безопасныйopenssl
безопасныйopenssl
Старая версия работает Новая версия “прогревается”
Переключили трафик Старая версия остановлена
1 2
3 4
Главный паттерн
Ubuntu14.04
Ubuntu14.04
Ubuntu16.04
Ubuntu14.06
Ubuntu16.04
Ubuntu16.04
Старая версия работает Новая версия “прогревается”
Переключили трафик Старая версия остановлена
1 2
3 4
Главный паттерн
Старая версия работает Новая версия “прогревается”
Переключили трафик Старая версия остановлена
1 2
3 4
Zero Downtime Deployment
Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты
Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей
Zero Downtime Deployment
Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты
Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей
Zero Downtime Deployment
Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты
Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей
Обновление системного ПО
Zero Downtime Deployment
Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты
Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей
Обновление системного ПО
Zero Downtime Deployment
Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты
Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей
Обновление системного ПО
Возможность отката
Zero Downtime Deployment
Конфликт общих ресурсовФС, сокеты, порты, инит-скрипты
Конфликт зависимостей приложенийbower, bundler, pip, npm, composer и их зависимостей
Обновление системного ПО
Возможность отката
Воспроизводимость
Выкат на несколько кластеров / площадок
Тестовое окружение → Продакшн
Выкат на множество серверов
Воспроизводимость
Выкат на несколько кластеров / площадок
Локальный запуск точной копии
Тестовое окружение → Продакшн
Выкат на множество серверов
Выкат на несколько кластеров / площадок
Локальный запуск точной копии
Тестовое окружение → Продакшн
Выкат на множество серверов
Запуск “старых” версий
Воспроизводимость
Гарантия воспроизводимости
gitпрограммисты dockerобраз
другие площадки
тестовая площадка
production
программисты
Гарантия воспроизводимости
gitпрограммисты dockerобраз
архив
тестовая площадка
production
программисты
другие площадки
Код и инфраструктура
development master
V2
staging production
V1
git
V2 V1PHP 7 PHP 5.5
PHP 7 PHP 5.5
Код и инфраструктура
development master
V2 V1
gitPHP 7 PHP 5.5
staging production
V2 PHP 7 V1 PHP 5.5
Код и многослойная архитектура
V2
PHP 7
nginx 1.3
git
программисты
devops
V2
docker-образ #1
PHP 7
nginx 1.3
docker-образ #2
Несколько проектовgit project_1
Код nginx
git project_2
Код
git project_3
Код
git project_4
Код nginx
nginx
nginx
Несколько проектовgit project_1
Код nginx
git project_2
Код
git project_3
Код
git project_4
Код
Код nginx
git project_6
Код nginx
git project_5
nginx
nginx nginx
Несколько проектовgit project_1
Код nginx
git project_2
Код
git project_3
Код
git project_4
Код
Код nginx
git project_6
Код nginx
git project_5
nginx
nginx nginx
Несколько проектовgit project_1
Код nginx
git project_2
Код
git project_3
Код
git project_4
Код
Код nginx
git project_6
Код nginx
git project_5
nginx
nginx nginx
bundler, composer, pip, npm, ...
Несколько проектовgit project_1
Код
git project_2
Код
git nginx
nginx v4
nginx v4
nginx v2
Dependency management
bundler, composer, pip, npm, ...
Несколько проектовgit project_1
Код
git project_2
Код
git nginx
nginx v4
nginx v4
nginx v2
Dependency management
Dockerfile
Несколько проектовgit project_1
Код
git project_2
Код
git nginx
nginx v4
nginx v4
nginx v2
Dependency management
bundler, composer, pip, npm, ...
Dockerfile + git submodules
Несколько проектовgit project_1
Код
git project_2
Код
git nginx
nginx v4
nginx v4
nginx v2
Dependency management
bundler, composer, pip, npm, ...
Dockerfile + git submodules
Несколько проектовgit project_1
Код
git project_2
Код
git nginx
nginx v4
nginx v4
nginx v2
Dependency management
bundler, composer, pip, npm, ...
Chef
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
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
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
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
Разобрались с Docker
Интегрировали код инфраструктуры ✔
Когда собирать docker-образы?
Как лучше тегировать docker-образы?
?
?
✔
Как найти старую версию?
Git → DockerКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Как найти старую версию?
Git → DockerКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Что побывало в продакшне? На какую версию откатиться?
Какие из образов должны проходить QA?
Как найти старую версию?
Git → DockerКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Что побывало в продакшне? На какую версию откатиться?
feature_x
master
app:master
release_7
app:release_7
preview
app:feature_x
Временные образыapp:master
Временные образы
master — общая интеграция
release — интеграция релизов /^release_.*/
Собирать все бранчи? Не стоит
Временные образы
master — общая интеграция
release — интеграция релизов /^release_.*/
feature — интеграция “фич” /^feature_.*/
Собирать все бранчи? Не стоит
Временные образы
master — общая интеграция
release — интеграция релизов /^release_.*/
feature — интеграция “фич” /^feature_.*/
Выкатывать автоматом?
Собирать все бранчи? Не стоит
Временные образы
master — общая интеграция
release — интеграция релизов /^release_.*/
feature — интеграция “фич” /^feature_.*/
Выкатывать автоматом? Как удобнее
Собирать все бранчи? Не стоит
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
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
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
✗
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
✗
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
✗
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
✗
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
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
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
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
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
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✗
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✗
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✗
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
git branch
git tag
временные образы
релизные образы
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
docker tag git tag
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
релиз багфикс итерация QA6.0.3
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
релиз багфикс итерация QA6.0.3
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
релиз багфикс итерация QA6.0.3
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
Как найти старую версию?
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
Как найти старую версию?
git tag docker tag
Git`о Docker`ный workflowКакие бранчи собирать?
Как тегировать образы?
Какой коммит на продакшне? Дельта выката?
Какие из образов должны проходить QA?
Что побывало в продакшне? На какую версию откатиться?
Как найти старую версию?
frontend
backend
Последовательность выката
nginx 1.2
HTTP
nginx 1.2
HTTP
Старая версия работает
Обновилиbackend
PHP 5.5V1 PHP 7V2
1
frontend
backend
Последовательность выката
nginx 1.2
HTTP
nginx 1.2
HTTP WS
Старая версия работает
Обновилиbackend
PHP 5.5V1 PHP 7V2
1
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
Последовательность выката
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
Последовательность выката
PHP 5.5
HTTP
nginx 1.3
HTTP
Старая версия работает
frontend
backend V1
nginx 1.2
PHP 5.5V1
Обновилиfrontend
1
Последовательность выката
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
Последовательность выката
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
Интегрировали код инфраструктуры ✔
Разобрались с Docker ✔
Связали Git с Docker ✔
Установили порядок выката ✔
Интегрировали код инфраструктуры ✔
Разобрались с Docker ✔
Связали Git с Docker ✔
Установили порядок выката ✔
Снова чего-то не хватает? ?
Readiness probe
V1
Старая версияработает
V1
Новая версия прогревается
V2 V1
Readiness probe
V2 V1
Переключили трафик
V2
Старая версияостановлена
V2
kubernetes & operate
service supervision liveness probe
monitoringinflux + grafana
autoscaling
self-healing
kubernetes & operate
service supervision liveness probe
monitoringinflux + grafana
autoscaling
self-healing
loggingelastic + fluent + kibana
kubernetes
Мощный фундамент
Большие перспективы
Невероятная совместимостьПростота
Интеграция вместо велосипедов
kubernetes
Мощный фундамент
Большие перспективы
Невероятная совместимостьПростота
Интеграция вместо велосипедов
Всеразмерность
#1: Используйте Docker
#2: One image to rule them all
#3: Инфраструктура – это код
#4: Свяжите Git и Docker
#1: Используйте Docker
#2: One image to rule them all
#3: Инфраструктура – это код
#4: Свяжите Git и Docker
#5: Регламентируйте порядок выката
#1: Используйте Docker
#2: One image to rule them all
#3: Инфраструктура – это код
#4: Свяжите Git и Docker
#5: Регламентируйте порядок выката
#6: Используйте готовую платформу
Приглашаем в гости на наш стенд В3
LINUX-КВЕСТУдивительный квест для самых отважных сисадминов.
Записывайтесь прямо сейчас и покажите свой опыт в Linux-кунгфу.
1 июня, 12:30
Участникам потребуется ssh-клиент ;)
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