docker-контейнеризация: от local до production

25
Docker-контейнеризация: от local до production Роман Кудлай @ Lodoss Team

Upload: roman-kudlay

Post on 28-Jan-2018

89 views

Category:

Software


2 download

TRANSCRIPT

Docker-контейнеризация:

от local до production

Роман Кудлай @ Lodoss Team

Немного истории

О себе

● 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

?

● Проблемы с

версиями

● Много мусора

● Мусор только

внутри контейнера

● Высокая

зависимость между

сервисами

● Каждый сервис

внутри отдельного

контейнера

● Связь на уровне

сети

?

Общая схема работы

4 звена деплоя

local dev stage prod

GIT

CI/CD

Email

Slack

...

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

local

docker-compose.yml

● Несколько файлов для

● local

● test

● prod?

Makefile

Что имеем

Плюсы

1. Быстрый старт

2. Минимум зависимостей

3. Нет мусора (почти)

4. Можно использовать ПО разных

версих

Минусы

1. MacOS + Symfony = :-(

2. А еще webpack :-((

3. Контейнеры и слои могут занимать

много места

CI / CD

Gitlab CI

● Написан DevOpsом

● Дорабатывается под каждый

проект разработчиком

● Автоматически разворачивается

● Использует Makefile

Pipeline

build lint test deploy

Что имеем

Плюсы

1. Автоматизация

2. Не нужен админ (а нужен Ops)

3. Минимизируется человеческий фактор

Минусы

1. Требуется начальное

конфигурирование

dev

Особенности

● lxc для проекта

● docker для сервисов

● Присматриваемся к kubernets

stage / prod

AWS ECS

Задачи

Мониторинг

Что имеем

Плюсы

1. Микросервисная архитектура

2. Легкое масштабирование

Минусы

1. Все проекты разные

2. Мне это тоже не нравится

Решенные задачи

1. Нет зависимости от версий ПО и его наличия

2. Удобство тестирование

3. Автоматизация тестирования и деплоя

4. Масштабирование

Нерешенные задачи

1. Полнейшая автоматизация

2. Проблемы с volumes

Заключение

docker-compose Makefile в свободном доступе

но в разработке…

А пока задаем вопросы

https://github.com/krom/docker-compose-makefile