Это не рассказ о том, как из разработчика стать крутым DevOpsом. Это доклад о том, как можно сделать процесс разработки и развертки приложения комфортнее и эффективнее вместе с прогрессивной технологией контейнеризации - Docker.
В этом докладе я затрону следующие темы:
Docker - это то модное слово, которое все должны знать
Дирижирование оркестром вместе с Docker Compose
Создание и настройка рабочего окружения в Docker
Построение сервисно-ориентированых приложений
Безболезненное развертывание приложений с Shipyard
То, чего не хватало для Continuous Integration - запуск параллельных билдов
14. Для чего использовать
Docker?
✘Создание среды для разработки
✘Сложная настройка сервисов
✘Легкая установка приложений
✘Доставка и развертывание приложений
✘Создание среды для тестирования
✘Парелелизация тестирования
✘Разработка микросервисов
✘….
15. Что такое Docker
✘Модное слово в веб-разработке
✘Система контейнеризации в Linux
✘ООП-дизайн вашей инфраструктуры
✘GitHub-like среда
24. Запуск WordPress
docker pull wordpress
docker pull mysql
docker run --name wp-mysql
MYSQL_ROOT_PASSWORD=123456 -d mysql
docker run --name my-wordpress --link
wp-mysql:mysql -p 8080:80 -d wordpress
25. Запуск WordPress через
Docker Compose
docker-compose.yml:
wordpress:
image:
wordpress
links:
- db:mysql
ports:
- 8080:80
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
docker-compose up
26. Создайние рабочего
окружения
✘Скачиваем нужные образы с Docker Registry
✘Связываем контейнеры через docker-compose
✘Подключаем папку с кодом
✘Запускаем docker-compose up
✘Делимся конфигурацией с коллегами
28. По-простому
✘ Устанавливаем на сервере Docker
✘ Заворачиваем наше приложение в
контейнеры
✘ Заливаем на Docker Hub (docker push)
✘ Настраиваем docker-compose.yml
✘ Запускаем контейнеры: (docker-
compose up)
29. Используем Shipyard
✘ Система управления Docker
ресурсами
✘ Поставляется в виде Docker
контейнера
✘ Предоставляет REST API, WEB UI
✘ Позволяет легко деплоить
контейнеры на разные ноды
✘ Позволяет мониторить контейнеры
и смотреть логи
33. Docker на CI
✘ Воспроизводит production среду
✘ Изолирует процессы
✘ Откатывает изменения
✘ Используется наверное всеми SaaS CI
(в том числе Travis CI)
34. Параллельный запуск тестов
на Jenkins
✘ Пакуем приложение в контейнер.
✘ Устанавливаем Matrix Project Plugin
✘ Одновременно запускаем тесты в
контейнере с разными параметрами
41. Почему мы не используем
Docker
✘ Впервые про него услышали
✘ Он только для Linux
✘ Новая технология – значит нестабильна
✘ Боязнь Vendor Lock-In
✘ Наше приложение монолитно