Кто-нибудь имеет или знает хороший шаблон / план для автоматического обновления сервера? В этом случае я обновляю сервер python / django, но мне придется применить это обновление ко многим машинам, и я хочу быть уверен, что операция полностью тестируема и может быть восстановлена в случае ошибки.
Я представляю что-то вроде:
- удаленно получить новый код
- проверка загрузки кода (например, хэш файлов)
- снять сервер, отобразить «вы обновляете диалог»
- резервная копия базы данных
- каталог резервных кодов
- применить новые обновления кода
- проверить обновление кода (например, хэш файлов)
- применить обновление базы данных (при необходимости)
- запуск тестов
- в случае успеха
- сервер запуска
- проверить обновление сервера
- еще
- восстановить старую базу данных
- восстановить старый код
- сообщить об ошибке
- сервер запуска
- проверить восстановление сервера
Я уверен, что это не является исчерпывающим, и есть много других условий ошибок, которые необходимо учитывать, но мне интересно, существует ли что-то подобное в виде формализованного контрольного списка процессов / передовой практики? В идеале все это, конечно, должно быть сделано одним скриптом.