Документация / Обновление и откат
Обновление и откат
Для администратораРаз в несколько недель
Обновление идет теми же командами, что и первое развертывание. Платформа сначала считает план перехода и показывает его, и только потом что-то меняет. Если в плане есть шаг, который нельзя отменить, она говорит об этом до начала работы, а не после.
Откуда приходят версии
Новые версии платформа берет из канала обновлений, названного в вашем слое описателя. Канал - это адрес, откуда приезжает описание выпуска и образы. В закрытой сети канала нет, и поставка приносится файлом.
Версия, отозванная поставщиком, для установки недоступна. Это не рекомендация, а проверка перед началом.
План перехода
Команда плана отвечает на три вопроса до того, как что-то произойдет.
- Через какие версии придется пройти. Если между вашей версией и целевой лежат промежуточные, платформа называет цепочку. Перепрыгнуть ее нельзя.
- Есть ли необратимые шаги. Необратимый шаг - это изменение схемы данных, которое нельзя отменить откатом. План говорит об этом отдельно, потому что это решает, нужна ли свежая резервная копия.
- Нет ли правок в обход описателя. Если кто-то правил собранные файлы руками, обновление не начнется, пока это не будет принято явной командой.
bm-deploy plan \ --base base.yaml --profile-layer profiles/production.yaml \ --config nasha-ustanovka.yaml --manifest release/manifest.yaml
Порядок обновления
- Снять свежую резервную копию
Особенно если план назвал необратимые шаги. Проверка восстановления по расписанию копию перед обновлением не заменяет.
- Посчитать план и прочитать его
Цепочка версий, необратимые шаги, расхождения. Это единственный шаг, где еще ничего не изменено.
- Собрать конфигурацию и проверить готовность
Те же команды, что при развертывании. Место на диске проверяется заново, ведь новая версия может требовать больше.
- Применить обновление
Платформа обновляет сервисы по одному, дожидаясь готовности каждого. Сервис, объявленный в нескольких экземплярах, обновляется без перерыва в работе. Объявленный в одном экземпляре останавливается и поднимается заново, и на это время его работа прервется.
- Проверить, что обновление доехало
На экране обзора версии всех частей обязаны совпасть между собой. На экране миграций не должно остаться непримененных. Расхождение означает незавершенное обновление.
Откат
Откат возвращает прежнюю версию той же командой с указанием цели. Работает он не в каждом случае, и сказать об этом лучше прямо.
- Обратимое обновление откатывается целиком, образы и конфигурация возвращаются к прежнему состоянию.
- Необратимые шаги откатом не отменяются. Если план называл такой шаг, возврат к прежней версии делается восстановлением из резервной копии, а не откатом.
- Правки в обход описателя блокируют и откат тоже, пока не будут приняты явно.
Закрытая сеть
В закрытом профиле обновление идет из файла поставки. Он проверяется до распаковки по подписи, суммам и составу. Недоверенный файл отклоняется, и на сервер из него не попадает ничего. Проверка готовности в этом профиле дополнительно смотрит, лежит ли поставка в вашей сети целиком, потому что докачать недостающее будет неоткуда.