DevOps
Эксплуатационный кейс
Next.js
VPS
Staging
PM2

Выпуск обновления Yabeard через staging на VPS

Собрали обновление отдельно от рабочей версии, проверили восемь новых маршрутов через локальный предпросмотр и заменили сборку с сохранением предыдущих файлов.

Внутренний выпуск сайта Yabeard на VPS 20 сентября 2026 года. Описание основано на зафиксированных этапах сборки, HTTP-проверки и замены версии в той сессии.

2026
Выпуск 20 сентября 2026 года

Релиз сайта · внутренняя практика

Сборка

Отдельный каталог релиза

Проверка

Страницы и файлы сайта

Откат

Предыдущая версия сохранена

Задача

Обновление собственного сайта включало новые публичные материалы и маршруты. Требовалось проверить собранную версию на VPS до замены работающего приложения, а также сохранить предыдущие исходники и сборку на случай возврата. Задача состояла в управляемом выпуске конкретного обновления: подготовить кандидата, проверить его HTTP-ответы и только затем перенести публичные изменения в рабочую версию.

Ограничения

  • Предпросмотр слушал только loopback. Использовались существующие симлинки зависимостей и окружения, поэтому staging не был полностью независимой копией инфраструктуры.
  • PM2 выполнял reload процесса в режиме fork; нулевой простой не гарантировался. HTTP-smoke охватывал маршруты, а не автоматическую проверку БД; откат общей схемы данных требовал бы отдельного плана.

Решение

Сборку next build выполнили в staging-каталоге внутри области резервных копий выпуска. Симлинки node_modules и окружения уже существовали и использовались при подготовке кандидата. Затем запустили локальный предпросмотр и провели HTTP-smoke восьми новых маршрутов. Этот этап позволил проверить доступность страниц именно в собранном приложении перед переносом. После тестов скопировали публичные исходники и заменили рабочую сборку. Предыдущий build и исходники сохранили отдельно; статические assets старой версии также оставили доступными, чтобы уже открытые страницы могли запросить связанные с ними файлы. Завершили переключение командой pm2 reload для процесса в режиме fork. Подготовка, проверка кандидата и замена версии были последовательными этапами одного выпуска, с сохранёнными материалами предыдущего состояния для возможного возврата.

Результаты

МетрикаДоПослеИзменение
Подготовка кандидатаИсходники обновленияnext build выполнен в staging
Этап выпуска завершён
Проверка маршрутовЛокальный предпросмотр сборкиHTTP-smoke восьми новых маршрутов
Проверено перед переносом
Предыдущая версияРабочий build, исходники и assetsСохранены при замене сборки
Материалы для возврата
Переключение приложенияПодготовленная и проверенная сборкаПубличные исходники перенесены, PM2 reload выполнен
Процесс в режиме fork

Технологии

Next.js
Node.js
Linux
PM2
HTTP-smoke

Артефакты

  • Собранный кандидат обновления в staging с использованием существующих ссылок на зависимости и окружение приложения.
  • Локальный предпросмотр и выполненная HTTP-проверка восьми новых маршрутов перед копированием публичных исходников и заменой сборки.
  • Сохранённые исходники и build предыдущей версии, оставленные статические файлы и переключённый через PM2 процесс приложения.

Нужен похожий проект?

Обсудим вашу задачу и предложим решение.

Обсудить проект

Разборы по теме