Наблюдение и восстановление
Для запуска нужно уметь заметить остановившуюся генерацию и восстановить проект вместе с его файлами.
Ответ
/healthне доказывает, что сайт можно собрать или вернуть из резервной копии.
Это требования к будущей эксплуатации. Дашборды, оповещения, расписание backup и проверенные RPO/RTO пока не подтверждены.
Что наблюдаем
| Сигнал | Что он позволяет заметить |
|---|---|
| Доступность API и зависимостей | Процесс жив, но база или storage недоступны |
| Возраст ожидающих заданий | Очередь перестала двигаться |
| Время выполнения, ошибки и повторы | Исполнитель зависает или тратит ресурсы на цикл исправлений |
| Стоимость генерации и правок | Расходы превышают выбранный лимит |
| Проверка тестовой публикации | HTML, картинки или маршрутизация сломались |
| Состояние доменов и HTTPS | Пользовательский адрес перестал работать |
| Результат backup и последнего restore | Резервная копия не существует или непригодна |
Пороги определяем после замеров и назначения ответственного. Числа без измерений не становятся SLA. В логах нужны идентификаторы запроса, проекта, задания и версии; полные личные материалы и секреты по умолчанию не записываем.
Что сохраняем
Базу с владельцами, заданиями, версиями и доменами; файлы материалов и публикаций; необходимые ключи восстановления зашифрованных настроек. Репозиторий исходного кода не заменяет ни одну из этих копий. Постоянный диск и object storage сами по себе не являются независимым backup.
Копии базы и файлов должны соответствовать согласованной точке либо сохранять все объекты, на которые ссылается восстанавливаемая база. Пока копия нужна для восстановления, очистка старых объектов не должна её разрушать.
Проверка восстановления
На отдельном окружении восстановить данные и файлы, загрузить ключи безопасным способом, открыть проект и его опубликованную версию. Проверить картинки, доменную связь и возможность новой правки. Зафиксировать фактическую потерю данных и время восстановления; по этим результатам согласовать RPO и RTO.
Первые действия при сбое
Генерация остановилась. Сверить состояние задания и исполнителя, ограничить новые попытки, сохранить рабочую публикацию. Повторить задание через предусмотренный механизм, не создавать новый проект вручную.
Файлы недоступны. Проверить credentials, выбранный bucket/диск и существование нужной версии. Не повторять генерацию автоматически: это может замаскировать потерю оригиналов.
Домен не открывается. Проверить подтверждение, DNS, сертификат и привязку. Случайный сайт по неизвестному hostname не выдаётся; правила резервного адреса — в публикации.
Недоступна база. Остановить рискованные изменения, проверить соединение и состояние восстановления. Просмотр готовых сайтов должен быть по возможности отделён от редактора; конкретный режим работы при отказе базы требует теста выбранного маршрутизатора.