Skip to content

Релиз и откат платформы ​

Предлагаемый релиз считается успешным, когда новый код работает с данными, а существующие публикации остаются доступными.

Откат кода, откат сайта и восстановление базы — разные операции.

Процесс ниже нужно внедрить и отработать на staging. Сейчас подтверждён только автодеплой документации.

До выпуска ​

Зафиксировать commit и собранный артефакт. Установить зависимости с frozen lockfile, выполнить существующие lint/build затронутых пакетов; для API использовать bun run test — это Jest. Проверки новой генерации должны включать повтор задания, сбой исполнителя, сохранность предыдущей публикации и запрет доступа к чужому проекту.

Проверить изменения схемы и срок доступности резервной копии. Миграции должны быть совместимы с версией, на которую планируется откат. Предлагаемый порядок — сначала добавлять совместимую структуру, переносить данные, затем удалять устаревшую в отдельном релизе.

Выпуск ​

  1. На staging применить миграции и запустить именно собранную версию.
  2. Пройти создание сайта, правку, публикацию и повторный вход.
  3. Убедиться, что откат на предыдущую версию кода допустим для текущей схемы.
  4. В production выполнить миграцию контролируемым этапом, затем обновить процессы.
  5. Проверить базу, хранилище, исполнителя, тестовую публикацию и HTTPS.

В существующем контейнере миграции выполняются при старте. Перед несколькими репликами этот порядок нужно пересмотреть: выпуск миграций не должен зависеть от случайной очередности перезапусков.

Если что-то пошло не так ​

СбойДействие
Не собирается образНе заменять работающую версию; исправить сборку
Не применяется миграцияНе продолжать релиз; установить фактическое состояние схемы
Новый API нарушает работуВернуть проверенный артефакт, если схема совместима
Сломана конкретная посадочнаяПереключить её публикацию на предыдущую версию
Потеряны данные или файлыВыполнить отдельное восстановление, не выдавать redeploy за recovery

Удаление столбцов и преобразование данных могут сделать обычный rollback невозможным. План восстановления должен существовать до такого изменения.

Критерий завершения ​

Автор открывает сохранённый проект, вносит правку и публикует её. Посетитель по прежней ссылке видит целостную страницу. Тест повторной обработки не создаёт дубликат проекта. Результат релиза записан вместе с commit, миграциями и обнаруженными ограничениями.

Bonsite — маленькие сайты для ваших больших идей.