Skip to content

Резервное копирование и восстановление (политики)

Одна потребность: платформа должна иметь явные политики резервного копирования и восстановления (частота, хранение, RPO/RTO), процедуры восстановления из бэкапа и их регулярную проверку, а не только UI для ручного экспорта/импорта.

Зачем это нужно (мировой опыт)

  • Enterprise и регуляторика: требования к сохранности данных и к восстановлению после сбоя (RPO — сколько данных допустимо потерять, RTO — за какое время восстановить работу).
  • AWS, GCP, Azure: рекомендуют автоматические бэкапы БД с retention policy, тесты восстановления, кросс-регион при необходимости.
  • Low-Code платформы: конфигурация (модель, сценарии, настройки) — критичный актив; бэкапы домена и данных — стандартная функция, часто с расписанием и версиями.
  • SRE: восстановление из бэкапа — часть runbook при потере данных или сбое деплоя.

Текущее состояние

  • В приложении есть Backup/Restore для домена: экспорт в файл (bundle/plain), импорт с выбором сущностей (BackupRestore_Singleton, backup-restore.ts). Поддерживаются сущности: settings, project, type, query, component, action, parameter, filter, converter, integration, environment, tenant, bindings, policy, style, vocabs, page-template, page, navigation.
  • Это ручной «сохранить/загрузить снимок»; нет зафиксированных политик: как часто делать бэкапы, где хранить, сколько хранить, кто и когда проверяет восстановление.
  • Нет автоматического расписания бэкапов на бэкенде; нет разделения «бэкап конфигурации домена» и «бэкап данных приложения» (если они в разных хранилищах).
  • Нет документированных RPO/RTO и процедур «восстановление из бэкапа за вчера» для операторов.

Что сделать

1. Политики бэкапов

  • Частота: по средам (prod — ежедневно или чаще, staging — реже, dev — по необходимости). Зафиксировать в документации или в настройках платформы.
  • Retention: сколько копий хранить (например, последние 7 дней + еженедельный снимок за месяц). Очистка старых по политике.
  • Хранение: куда класть (объектное хранилище, отдельный диск, другой регион для disaster recovery). Шифрование и доступ по ролям.
  • Объём: что именно бэкапить — снимок домена (конфигурация), снимок данных (Payload/БД приложения), оба; раздельно для быстрого восстановления только конфигурации или только данных.

2. Автоматизация на бэкенде

  • Планировщик (cron, queue) для создания бэкапов по расписанию. Сохранение в настроенное хранилище с именем/тегом (дата, среда, тип).
  • Опционально: API для ручного запуска бэкапа и для получения списка доступных бэкапов (для экрана восстановления).

3. Восстановление

  • Документированная процедура: как выбрать точку восстановления, как восстановить домен и/или данные, в каком порядке (например, сначала конфигурация, потом данные), что делать после восстановления (проверка, инвалидация кэша).
  • В UI админки: возможность выбора бэкапа из списка (если бэкенд отдаёт список) и запуск восстановления с подтверждением. Ограничение по ролям (только админ/оператор).
  • Тесты восстановления: регулярно (раз в квартал или по регламенту) выполнять восстановление из бэкапа в тестовую среду и проверять работоспособность; фиксировать в runbook.

4. RPO и RTO

  • Зафиксировать целевые RPO (например, «потеря не более 24 ч данных») и RTO («восстановление в течение 4 ч») для критичных сред.
  • Подстроить частоту бэкапов и процедуры под эти цели; при необходимости добавить репликацию или транзакционные логи поверх бэкапов.

Риски и ограничения

  • Автоматические бэкапы и хранение требуют ресурсов и мониторинга (место, сбои записи). Восстановление в prod — критичная операция; обязательно тестировать процедуру в тестовой среде. Связь с Versioning_And_Updates: снимки версий домена могут быть частью политики бэкапов.

Вывод

  • Политики бэкапов: частота, retention, хранение, объём (домен vs данные).
  • Автоматизация создания бэкапов на бэкенде по расписанию.
  • Документированные процедуры восстановления и регулярные тесты восстановления.
  • Явные RPO/RTO для enterprise и соответствия требованиям.