docker-контейнеризация: от local до production
TRANSCRIPT
О себе
● 2002 - IIS 5
● 2003 - VMware
● 2005 - Apache
● 2006 - Virtualbox
● 2007 - CSV
● 2010 - GIT
● 2010 - Nginx
● 2011 - Xen/OpenVZ/KVM
● 2016 - Vagrant/Docker
● 2016 - AWS
И это как разработчик...
Эволюция
standalone
denwer
lxc
lxd
virtualbox
kvm
docker
kubernetes
swarm
?
● Проблемы с
версиями
● Много мусора
● Мусор только
внутри контейнера
● Высокая
зависимость между
сервисами
● Каждый сервис
внутри отдельного
контейнера
● Связь на уровне
сети
?
projects on docker
docker-compose / project
mysqlphp-fpm
nginx memcache
sphinx
docker-compose / project
mysqlnodejs
redis logstash
mongo
docker-compose / project
postgresnodejs
redis
container vs image
Что имеем
Плюсы
1. Быстрый старт
2. Минимум зависимостей
3. Нет мусора (почти)
4. Можно использовать ПО разных
версих
Минусы
1. MacOS + Symfony = :-(
2. А еще webpack :-((
3. Контейнеры и слои могут занимать
много места
Gitlab CI
● Написан DevOpsом
● Дорабатывается под каждый
проект разработчиком
● Автоматически разворачивается
● Использует Makefile
Что имеем
Плюсы
1. Автоматизация
2. Не нужен админ (а нужен Ops)
3. Минимизируется человеческий фактор
Минусы
1. Требуется начальное
конфигурирование
Что имеем
Плюсы
1. Микросервисная архитектура
2. Легкое масштабирование
Минусы
1. Все проекты разные
2. Мне это тоже не нравится
Решенные задачи
1. Нет зависимости от версий ПО и его наличия
2. Удобство тестирование
3. Автоматизация тестирования и деплоя
4. Масштабирование