Резервное копирование
Единственный stateful-компонент платформы — PostgreSQL. Всё остальное (API-служба, консоль, агенты) — stateless; потеря подов не приводит к потере данных.
Что резервировать
Заголовок раздела «Что резервировать»| Что | Метод | Частота |
|---|---|---|
| PostgreSQL | managed backup / pg_dump + WAL-G | ежесуточно + PITR |
| JWT private key (Secret) | snapshot вашего хранилища секретов | при изменении |
| Helm values всех компонентов | Git-репозиторий инфраструктуры | при изменении |
| TLS-сертификаты | secret-snapshot | при изменении |
| Список подключённых кластеров с company token | хранится в БД, отдельного бэкапа не требует | — |
PostgreSQL: бэкап
Заголовок раздела «PostgreSQL: бэкап»Managed
Заголовок раздела «Managed»Для managed-сервисов (Yandex Managed PostgreSQL и другие managed-PostgreSQL-сервисы вашего провайдера) включите:
- ежедневный автобэкап (обычно уже включён по умолчанию),
- PITR с retention 7–30 дней,
- периодическое тестовое восстановление в staging.
Self-hosted
Заголовок раздела «Self-hosted»pg_dump -h pg.internal -U opsman -d opsman -Fc \ -f /backups/opsman-$(date +%F).dumpДля PITR используйте WAL-G / pgBackRest.
PostgreSQL: восстановление
Заголовок раздела «PostgreSQL: восстановление»-
Подготовьте пустую БД на новом инстансе:
CREATE USER opsman WITH PASSWORD '***';CREATE DATABASE opsman OWNER opsman; -
Восстановите из бэкапа:
Окно терминала pg_restore -h new-pg.internal -U opsman -d opsman \/backups/opsman-YYYY-MM-DD.dump -
Обновите
DATABASE_URLвvalues.prod.yamlAPI-службы и выполнитеhelm upgrade. -
Проверьте:
curl -sf https://api-opsman.company.com/healthz→ 200- Тестовый логин
- Данные Dashboard за последние 7 дней
JWT-ключ: потеря и восстановление
Заголовок раздела «JWT-ключ: потеря и восстановление»Если JWT-ключ потерян безвозвратно:
- Сгенерируйте новый.
- Обновите secret в Kubernetes.
- Rolling restart API-службы.
- Все активные сессии пользователей станут невалидными — потребуется повторный логин.
План на случай полного сбоя
Заголовок раздела «План на случай полного сбоя»- Развернуть новый Kubernetes-кластер (или использовать резервный).
- Развернуть PostgreSQL, восстановить из бэкапа.
- Применить Helm-чарты из Git (infrastructure-as-code).
- Восстановить JWT-ключ и TLS-сертификаты.
- Проверить: логин, UI, ingest, уведомления.
Ориентировочное время восстановления с нуля — 60–90 минут.
Проверка резервных копий
Заголовок раздела «Проверка резервных копий»Раз в месяц выполняйте тестовое восстановление в staging-окружении и прогоняйте smoke-тест: логин, открытие Dashboard, наличие данных за последние 7 дней. Без регулярных проверок бэкапы могут оказаться непригодными в момент, когда они нужны.