Как откатить обновление в Linux при развертывании корпоративного приложения
Как лучше всего выполнить откат к уже развернутому корпоративному приложению в Linux? Рассмотрим эту ситуацию. У нас есть сервер приложений(скажем, django, обслуживаемый gunicorn), сервер данных(mysql) и сервер задач(celery). И я уже развернул их на разных серверах. Исходный код управляется gitlab. При обновлении произошла какая-то ошибка и требуется откат. Есть в основном два пути:
первое использование
migrate
команда в django для отката состояния сервера данных; второй на сервере приложений и сервере задач, сделайте резервную копию исходного кода перед обновлением, иcp
резервная копия назад при откате.выключите весь сервер и сделайте снимок сервера перед обновлением. и вернуться к снимку, когда нам понадобится откат.
Конечно, метод 2 гораздо безопаснее. Но это дорого.
Поскольку ситуация разрабатывает приложение для предприятия, я не очень уверен, что Docker является приемлемым решением.
Меня беспокоит откат сервера данных, так как структура таблицы может измениться, и в ней есть реальные данные. И если мы используем докер, я не совсем уверен, что делать с сервером данных, нужен ли для него образ?