Как организовать обновление PHP-приложения?

Всем привет! У меня вопрос по поводу "полу-автоматического" обновления PHP-приложения.

В моем проекте есть 2 типа приложений:

  1. Для админов (запущено в единичном экземпляре на основном сервере)
  2. Клиентское (запущено в нескольких экземплярах на разных серверах) - его и нужно будет обновлять

Оба типа приложений написаны на PHP, а если точнее это REST API на Laravel. 

У каждого приложения свой сервер, своя БД, свой образ и докер-контейнер.

В БД админов хранится последняя стабильная версия клиентского приложения, например 2.0.0.

В приложении клиента хранится его текущая версия, например 1.0.0 и раз в час выполняется проверка её актуальности.

Если в приложении клиента будет найдена новая версия, то ему поступит предложение на установку обновления и покажется специальная кнопка - «УСТАНОВИТЬ ОБНОВЛЕНИЕ».

Сейчас я вижу процесс обновления примерно так:

  1. По нажатию на кнопку «УСТАНОВИТЬ ОБНОВЛЕНИЕ», из клиентского приложения отправляется запрос к API админского приложения, допустим POST на /api/client/update и в теле запроса передаем параметр, в котором идентифицируем клиента, например client_name=client-1
  2. В админском приложении реагируем на входящий POST-запрос /api/client/update и запускаем некоторый скрипт на обновление клиентского приложения до последней версии, возможно он будет рулить кубером или подключаться по SSH к серверу клиента и выполнять какие-то действия по обновлению.

Код приложений находится в гитлабе, но тут CI/CD не особо поможет, т.к нужно обновлять приложение не сразу, а только по разрешению клиента.

Вопрос: Какие именно действия должен выполнять скрипт обновления? Возможно есть готовые решения для такого рода задач?


Ответы (0 шт):