Кейс: экономичный способ повысить отказоустойчивость сайта
Задача
К нам обратился системный администратор интернет-магазина. Клиент размещал сайт на виртуальном сервере у хостинг-провайдера. Там же хранились бэкапы.
![](/docs/img/csvet/csvet_normal.png)
Резервное копирование защищает от потери данных, но не от простоя сервиса. У провайдера может отказать оборудование, выйти из строя сеть, или система электропитания — и сайт станет недоступен посетителям. Нельзя отменить форс-мажоры, но можно застраховаться от них.
Клиент решил позаботиться об отказоустойчивости сайта — продублировать его в нашем виртуальном дата-центре.
Системным администраторам Airnode поставили задачу: если основной сервер недоступен входящий трафик должен переключаться на резервную копию. При этом решение должно быть простым и экономичным: без большого количества серверов, потребляющих ресурсы.
Решение
Мы развернули в виртуальном дата-центре копию веб-сервера. Клиент самостоятельно настроил синхронизацию между основой машиной и репликой, чтобы поддерживать последнюю в актуальном состоянии.
Следующим шагом создали балансировщик нагрузки на HAProxy. Он отвечает за то, чтобы сайт всегда был доступен клиентам.
![](/docs/img/csvet/csvet_solution.png)
Как это работает
Весь трафик поступает на балансировщик.
Балансировщик постоянно мониторит доступность основного сервера в инфраструктуре хостера. Если IP-адрес сервера не отвечает, все запросы автоматически перенаправляются на резервную машину:
![](/docs/img/csvet/csvet_reserve.png)
Серверы в виртуальном дата-центре дополнительно защищены. Это возможно благодаря механизму живой миграции — переноса виртуальной машины с одного физического сервера на другой без прекращения его работы. Все элементы сети трижды зарезервированы. Данные также хранятся в трех экземплярах в распределенном хранилище Ceph.
Результаты
Инфраструктура, созданная для сайта, сравнительно небольшая. Но балансировщик нагрузки и резервный сервер находятся в дополнительно защищенном виртуальном дата-центре, поэтому снижается риск простоя.
Подобное решение хорошо подойдёт для небольших проектов.
Хотите так же?
Звоните 8(800)500-19-58 или пишите info@airnode.ru
- проконсультируем
- бесплатно поможем подобрать техническое решение
- предоставим тестовый доступ в виртуальный дата-центр на 14 дней