Облако для вашего стейджингаРожнов Александр restream.pro
Cloud Cluster Docker Buzzword
Zoo
● много проектов● много команд● различные языки● различные БД
Vagrant
● проектов много● под каждый нужно готовить среду● разные версии БД, библиотек, языков● виртуалка под проект - совсем тяжко
Provisioning
● руки● chef● pappet● ansible● bash
Передача знаний
● как поднять проект?● документация устаревает● нет информации в репозитории проекта
Контейнерная виртуализация
Docker
● Docker для разработки● Больше про докер на мастерклассе
Двигаемся дальше
● CoreOS● Tutum● Amazon Container Service● Docker Swarm & Docker Machine● Tectonic
Классическое решение
● Большой сервер● Режем на виртуалки (xen, kvm ...)● Configuration Management (chef, ansible, pappet …)
тикет → админы → виртуалка → передача знаний → шеф → пара
итераций
Почему?
● Мало админов● Неравномерная нагрузка● Передача знаний
Как можно оптимизировать?
● отдать эти функции разработчикам
● разобщение инфраструктуры● сложно контролировать● смышленые разработчики
Решение
● нужен инструмент для унификации инфраструктуры● разделить окружение запуска и иснолнения● это должно быть просто и быстро● меньше делать руками
Основные задачи
● запуск контейнеров● управление контейнерами● масштабирование● доступность● просто
Общая сеть для контейнеров
● подсеть под ноду (minion)● IP адрес каждому контейнеру (pod)● flannel
Service discovery
● myapp.mynamespace.cluster.local● skydns
State
● состояние - боль● volumes - mount директорий внутрь контейнеров● nfs, iscsi, glusterfs …
● производительность
Точка входа
● nginx● wildcard dns record● *.kube.cluster.local
Бонусы
● Registry● Мониторинг (Grafana + influxdb)● Namespaces● Высокая повторяемость
Молодость
● хороший и терпеливый инженер● основные проблемы с сетапом и настройкой● addons● спасут логи
Сопротивление
● Радости будет мало● Проще если вас немного● Иначе - медленно и постепенно
Перевод на docker
● Даже маководов● Вначале им будет больно● Но потом они привыкнут
Опять производительность
● Нагрузочное тестирование● Продакшн
Изоляция
● Приложений● Пользователей
Стабильность
● docker, etcd, flannel, kubernetes● спасут логи● спасет обновление
Мастеркласс
● 1 часть○ docker & docker-compose○ docker для девелопмента
● 2 часть○ деплоим в kubernetes○ continuous deployment○ как поднять
Спасибо за внимание