Бесшовный деплой с Docker Swarm

Перевод проекта с Docker Compose на Docker Swarm для кластера из виртуальных машин. Организация бесшовного деплоя. Управление размещением сервисов.

  • 00:00:46 - Проблема зависимостей запуска контейнеров
  • 00:04:05 - Удаление зависимостей Nginx
  • 00:09:32 - Вынос резолвера в сниппет
  • 00:11:21 - Проверка здоровья контейнера
  • 00:12:34 - Healt Check для Nginx
  • 00:19:12 - Проверки в Gateway
  • 00:20:55 - Проверка для Frontend
  • 00:23:01 - Healt Check для PHP-FPM
  • 00:34:42 - Доработка конфигурации docker-compose
  • 00:35:16 - Перенос миграций в сервис
  • 00:38:33 - Конфигурирование параметров деплоя
  • 00:41:37 - Конфигурирование размещения сервисов
  • 00:43:43 - Режим подключения к БД
  • 00:47:17 - Изменение команды деплоя
  • 00:54:05 - Деплой проекта
  • 00:55:53 - Смена хука для Certbot
  • 00:59:45 - Размещение сервисов по меткам
  • 01:03:54 - Простановка меток через Ansible
  • 01:16:59 - Обзор результата
  • 01:08:09 - Подключение к Docker по TLS
Скрытый контент
Комментарии (8)
Руслан
2020-07-18 16:51

Спасибо!

Ответить
Arunas
2020-07-18 19:39

Спасибо.

Ответить
Андрей
2020-07-19 09:33

Очень круто!

Ответить
Yevhenii Lykholai
2020-07-19 11:37

Спасибо.

Ответить
Руслан
2020-07-20 16:18

Здравствуйте, подскажите, есть ли пример реализации паттерна сага на php?

Ответить
Дмитрий Елисеев
2020-07-27 09:31

Сага обычно реализуется как обычный обработчик команды и слушатель событий. Хореографическая сага реализуется обычным вызовом наших сущностей из слушателей событий других сущностей. И даже сагу-оркестратор при необходимости хранить состояние можно оформить тоже как обычную Doctrine-сущность.

Мы здесь как раз все эти варианты рассмотрим.

Ответить
Paul
2020-08-02 22:06

Дмитрий, а если я монтирую папку с файлами (файловое хранилище) через volume, но при этом хочу запустить несколько инстансов приложения, я столкнусь с проблемой о которой вы говорили про базу (что swarm будет создавать volume на разных хостах, а нам надо только на одном). Тоже самое произойдет, если я, например, хочу сохранять сессии на основной хост. Где-то в комментариях видел, что для хранения файлов будет использоваться s3 хранилище, но хотелось бы понять, как можно обойтись без этого.

Ответить
Дмитрий Елисеев
2020-08-04 06:29

Вместо хранения сессий по умолчанию в файлах переходят на хранение в БД или в Redis. Для этого во многих фреймворках вместо HttpSession имеются классы DbSession или RedisSession.

А для хранения файлов у себя на нужном хосте можно через докер на нём поднять сервис хранилища. Потом из php-fpm загружать в него файлы по FTP и проксировать запросы из gateway.

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий