Как организовать обновление PHP-приложения?
Всем привет! У меня вопрос по поводу "полу-автоматического" обновления PHP-приложения.
В моем проекте есть 2 типа приложений:
- Для админов (запущено в единичном экземпляре на основном сервере)
- Клиентское (запущено в нескольких экземплярах на разных серверах) - его и нужно будет обновлять
Оба типа приложений написаны на PHP, а если точнее это REST API на Laravel. У каждого приложения свой сервер, своя БД, свой образ и докер-контейнер.
В БД админов хранится последняя стабильная версия клиентского приложения, например 2.0.0.
В приложении клиента хранится его текущая версия, например 1.0.0 и раз в час выполняется проверка её актуальности.
Если в приложении клиента будет найдена новая версия, то ему поступит предложение на установку обновления и покажется специальная кнопка - «УСТАНОВИТЬ ОБНОВЛЕНИЕ».
Сейчас я вижу процесс обновления примерно так:
- По нажатию на кнопку «УСТАНОВИТЬ ОБНОВЛЕНИЕ», из клиентского приложения отправляется запрос к API админского приложения, допустим POST на /api/client/update и в теле запроса передаем параметр, в котором идентифицируем клиента, например client_name=client-1
- В админском приложении реагируем на входящий POST-запрос /api/client/update и запускаем некоторый скрипт на обновление клиентского приложения до последней версии, возможно он будет рулить кубером или подключаться по SSH к серверу клиента и выполнять какие-то действия по обновлению.
Код приложений находится в гитлабе, но тут CI/CD не особо поможет, т.к нужно обновлять приложение не сразу, а только по разрешению клиента.
Вопрос: Какие именно действия должен выполнять скрипт обновления? Возможно есть готовые решения для такого рода задач?