Автоматический failover: настройка переключения при сбое сервера

Когда основной сервер падает, каждая минута простоя оборачивается потерями для бизнеса. Мы настраиваем автоматический failover, чтобы трафик мгновенно переключался на резервный узел без участия человека. Наша команда реализует проект под ключ — от аудита до внедрения и последующей поддержки, обеспечивая надёжную отказоустойчивость вашей инфраструктуры.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Автоматический failover: настройка переключения при сбое сервера
Сложный
~3-5 дней
Часто задаваемые вопросы

Мы настраиваем автоматический failover для вашего production-окружения, чтобы при сбое основного сервера трафик переключался на резервный без участия человека. Цель — сократить RTO (Recovery Time Objective) с «пока кто-то не проснётся» до 30–120 секунд. Для e-commerce или SaaS это разница между потерей 5 минут выручки и часа — снижение потерь до 90%. Наш опыт — 7 лет в отказоустойчивых архитектурах, более 40 проектов с failover-схемами. Инженеры имеют сертификаты AWS и Linux, гарантируем стабильную работу.

Как работает автоматический failover?

Failover может быть реализован на разных уровнях стека: DNS, балансировщик нагрузки, виртуальные IP (VRRP) и уровень базы данных. Каждый подход имеет свои trade-offs по скорости переключения, сложности и стоимости.

DNS-уровень — самый простой, но медленный. Health check проверяет primary каждые 10–30 секунд. При падении — изменяется DNS-запись на IP резервного сервера. Задержка складывается из TTL записи и времени обнаружения: 60–300 секунд. Подходит для большинства веб-приложений, где допустима пауза до 5 минут.

Load Balancer (AWS ALB/NLB, nginx upstream) — переключение за 5–30 секунд, но требует обоих серверов в одном облаке или регионе. Health check работает на уровне балансировщика.

VRRP / Keepalived — виртуальный IP перемещается между серверами при сбое мастера за 2–5 секунд. Классика для on-premise и dedicated.

Database failover — отдельная задача. Приложение должно знать о новом primary DB. Patroni (PostgreSQL), MHA (MySQL), AWS RDS Multi-AZ решают это автоматически.

DNS vs балансировщик: что выбрать?

Параметр DNS failover Load Balancer
Время переключения 60–300 с 5–30 с
Сложность настройки Низкая Средняя
Зависимость от облака Нет Да (часто)
Подходит для Большинство веб-приложений Высоконагруженные системы

DNS failover медленнее балансировщика в 10 раз, но его проще настроить и он не привязан к конкретному провайдеру.

Пример реализации на AWS Route 53

Route 53 Failover Policy:
Primary record → 1.2.3.4 (основной сервер)
Health check: HTTP GET /health, port 443
Failure threshold: 3 consecutive failures
Request interval: 10 seconds
Secondary record → 5.6.7.8 (резервный сервер)
Evaluate target health: Yes

Эндпоинт /health должен проверять реальное состояние: БД доступна, кеш работает, дисковое пространство не исчерпано. Возвращать 200 только при полной работоспособности. Наши инженеры настраивают такой check с учётом специфики вашего стека.

Keepalived для bare metal и VPS

# /etc/keepalived/keepalived.conf на PRIMARY
vrrp_script check_app {
    script "/usr/local/bin/check_app.sh"
    interval 5
    weight -20
    fall 2
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    virtual_ipaddress {
        192.168.1.100/24
    }
    track_script {
        check_app
    }
}

Скрипт check_app.sh проверяет доступность приложения локально. При двух неудачных проверках подряд BACKUP-сервер с приоритетом 90 захватывает виртуальный IP.

Почему важно тестировать failover?

Регулярные учения — обязательно. Failover, который не тестировался, скорее всего не сработает в нужный момент. Наш стандартный протокол проверки:

  1. Убедиться, что мониторинг фиксирует исходное состояние.
  2. Симулировать сбой: systemctl stop nginx или iptables -I INPUT -p tcp --dport 80 -j DROP на primary.
  3. Зафиксировать время до переключения.
  4. Проверить работоспособность через резервный сервер.
  5. Восстановить primary, проверить обратное переключение.

Целевые метрики: detection time < 30 с, switch time < 60 с, total RTO < 120 с.

Пример полного тестового сценария

Для комплексной проверки симулируйте отказ сети, БД и приложения одновременно. Замерьте время до полного восстановления сервиса.

Что входит в настройку failover под ключ

  • Анализ текущей архитектуры и требований к отказоустойчивости
  • Проектирование схемы failover (DNS, балансировщик, VRRP, DB)
  • Настройка health check-ов и мониторинга
  • Реализация синхронизации данных (репликация БД, файлов, сессий)
  • Разработка скриптов автоматического переключения
  • Тестирование сценариев сбоя и восстановления
  • Документация и обучение вашей команде
  • Поддержка на этапе эксплуатации (опционально)

Сроки настройки

Тип failover Ориентировочный срок
DNS (Route 53 / Cloudflare) 1–2 дня
Keepalived + синхронизация 3–5 дней
Полная схема с DB failover (Patroni) 5–10 дней
Тестирование и документация 1–2 дня

Точные сроки зависят от сложности инфраструктуры. Оценим ваш проект — свяжитесь для консультации.

Проблема split-brain и её решение

Split-brain возникает, когда оба сервера считают себя primary. В Keepalived решается через fencing (STONITH) — при конфликте слабый узел принудительно выключается. В PostgreSQL/Patroni — через DCS (etcd, Consul, ZooKeeper) как арбитр. Мы гарантируем, что схема исключает эту ситуацию.

Мониторинг failover-событий

Каждое переключение — инцидент, требующий расследования. Alertmanager или PagerDuty фиксируют событие. Автоматически создаётся тикет в Jira/Linear. Постфактум — root cause analysis: почему упал primary.

Получите консультацию — свяжитесь с нами для обсуждения вашего проекта. Закажите настройку failover и обеспечьте отказоустойчивость вашего сервиса.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060