Настройка RTO/RPO для проекта 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка RTO/RPO для проекта 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка RTO/RPO для проекта 1С-Битрикс

Бизнес говорит: «сайт не должен лежать больше часа». Инженер кивает и уходит настраивать репликацию. Через полгода выясняется, что восстановление из последнего бекапа занимает 4 часа, а бизнес об этом не знал. RTO и RPO — это не технические характеристики, это договорённости с бизнесом, которые нужно зафиксировать и технически обеспечить.

Что такое RTO и RPO применительно к Битрикс

RPO (Recovery Point Objective) — максимально допустимая потеря данных. Если RPO = 1 час, значит при катастрофе можно потерять не более часа транзакций: заказов, регистраций, изменений остатков.

RTO (Recovery Time Objective) — максимально допустимое время недоступности. Если RTO = 30 минут, значит через 30 минут после инцидента сайт должен работать.

Типичные значения для интернет-магазина на Битрикс: RPO = 1 час, RTO = 2 часа. Для highload-проектов: RPO = 5 минут, RTO = 15 минут. Чем жёстче требования — тем дороже инфраструктура.

Технические решения для разных уровней RPO

RPO = несколько часов. Достаточно ежечасного pg_dump во внешнее хранилище. Просто, дёшево, долго восстанавливается при больших базах.

RPO = минуты. Streaming replication PostgreSQL с синхронным режимом (synchronous_commit = on). Каждая транзакция подтверждается только после записи на реплику. Стоимость: +5–15 мс к каждой транзакции.

RPO = секунды. Patroni с синхронной репликацией + непрерывное архивирование WAL через archive_command в S3. При WAL-архивировании можно восстановить базу на любой момент времени (PITR — Point-in-Time Recovery).

# postgresql.conf для PITR
archive_mode = on
archive_command = 'aws s3 cp %p s3://backup-bucket/wal/%f'

Технические решения для разных уровней RTO

RTO = несколько часов. Восстановление из pg_dump + деплой кода из git. Линейно зависит от размера базы: 10 ГБ — примерно 45–90 минут восстановления.

RTO = 30–60 минут. Standby-сервер с горячей репликой. При инциденте — ручной failover: промоция реплики, смена DNS или конфига приложения. Не автоматически, но быстро.

RTO = менее 10 минут. Автоматический failover через Patroni + HAProxy. Без участия человека. Требует предварительной настройки и регулярного тестирования.

Матрица решений для Битрикс

Размер проекта RPO RTO Инфраструктура
До 5k заказов/сутки 1 час 4 часа pg_dump в S3, деплой из git
5–50k заказов/сутки 15 мин 1 час Streaming replica + ручной failover
Свыше 50k заказов/сутки 1 мин 10 мин Patroni + HAProxy + WAL archiving

Расчёт реального RTO: что входит во время восстановления

Время восстановления — это сумма всех шагов, а не только «восстановить базу»:

  1. Обнаружение инцидента — от 0 до 15 минут (зависит от мониторинга)
  2. Принятие решения о failover — 5–10 минут
  3. Восстановление/промоция БД — зависит от RPO-решения
  4. Смена конфигурации приложения — 2–5 минут
  5. Прогрев кешей — первые запросы после восстановления медленные, Redis/memcached пустые
  6. Проверка работоспособности — 5–10 минут

Пункт «прогрев кешей» часто игнорируется в расчётах RTO. После восстановления база принимает нагрузку с нуля: кеш Битрикс пустой, OPcache холодный. Первые 5–10 минут работы — пиковая нагрузка на БД. Если нет rate limiting, это может повалить только что поднятый сервер.

Документирование и тестирование

RTO/RPO без задокументированного runbook — ничто. Runbook должен содержать точную последовательность команд для каждого сценария отказа: падение primary БД, падение веб-сервера, потеря /upload/, компрометация сервера.

# Пример раздела runbook: failover PostgreSQL (ручной)
# 1. Проверить, что primary недоступен
pg_isready -h primary.db -p 5432

# 2. Промотировать реплику
ssh replica.db 'pg_ctl promote -D /var/lib/postgresql/data'

# 3. Обновить конфиг Битрикс
sed -i "s/primary.db/replica.db/" /var/www/bitrix/.settings.php

# 4. Очистить кеш
php /var/www/bitrix/bitrix/modules/main/cli/cache_clear.php

Что настраиваем

  • Определение целевых RPO и RTO совместно с бизнесом
  • Выбор и настройку инфраструктурного решения под заданные параметры
  • WAL-архивирование для PostgreSQL PITR при RPO < 15 минут
  • Runbook с командами восстановления для каждого сценария отказа
  • Регламент тестирования: ежеквартально поднимаем из бекапа, замеряем реальный RTO