Очередное занятие по курсу “Otus PHP Professional“ будет посвящено практикуму разворачиванию приложений на продакшне. Цели занятия: научиться создавать пайплайны деплоя; понять, как настраивать бесшовную доставку ПО. В ходе практикума мы изучим понятия: настройка пайплайна деплоя; blue-green deploy; canary deploy; учет балансировки в деплое. Как результат, научимся строить деплой своих приложений.

  • Преподаватель: Михаил Каморин

  • Дата и время: 9 июня, четверг в 20:00

  • Длительность занятия: 90 минут

/**/


Работа с AWS

План занятия: разобраться с развертыванием Amazon / AWS

Правила работы с Amazon Web Services

AWS EC2

Работы по развертыванию проекта на AWS

(warning) Будем работать с этими исходниками проекта для AWS:

https://gitlab.com/raptor-mvk/php-deploy-demo-06-22

(warning) Все шаги по деплойменту (указанные ниже) — описаны в т.ч. тут: https://gitlab.com/raptor-mvk/php-deploy-demo-06-22/-/blob/main/README.md

  • См. Файл supervisor/consumer.conf — стартовый конфиг с тасками по развертыванию
  • Ставим все что нам нужно:

  • Ставим composer:

  • Создаем БД:

  • Настройка для доступа к БД извне: прокидка портов:

в postgresql.conf :

  • Настраиваем RabbitMQ

  • Убеждаемся что Rabbit доступен: открываем его веб-морду
  • Создаем/настраиваем переменные для CI/CD в Gitlab: адрес прод-сервера, БД, RabbitMQ, и др.

Создаем delpoy токен:

  • В папке deploy создаем конфиги для продашн среды:

  • Проверяем скрипт delpoy.sh

  • Готовим сценарий для ci/cd: в файле .gitlab-ci.yml

  • пушим все в CI/CD:

  • Смотрим логи пайплайна, убеждаемся что все задеплоилось (+ проверяем что создалась БД и RabbitMQ), проыеряем API через Postman

  • Тестируем API:

  • Проверяем, что работает Blue-green деплоймент: разворачиваются версии приложения с новыми датами (под каждый пуш):

  • Нужен мониторинг (хотя бы примтивный, с возвратом http-статуса 200)
  • Пишем скрипт откатки изменений: rollback.sh

(звезда) также можно пред версию автоматически накатить, через сценариии в .gitlab-ci.yml

  • Добавлени/запуск тестов Codeception: gitlab-ci.yml пишем:

  • Видим, что появились соотв. пайпланы:


Домашнее задание

Выкатаить в облако свой мини-проектик.

(например, в Яндекс-облако, Selectel, …)


Мой отзыв о занятии

Сложноватая тема, сложно повторить все описанное; тем более в условиях когда AWS/Amazon закрыт для доступа из РФ (нельзя доступ оплатить даже и триала нет).

Нужно, чтобы в Отус сделали свое облако/сервер для такихвот тестовых работ студентов, см. как это сделано в Хекслете (там вся среда в орблаке есть, под все языки , всю домашку можно онлайн делать).


Доп. материалы

Tags

Нет комментариев

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.