Отказоустойчивость и моральное удовлетворение

При проектировании инфраструктуры под те или иные задачи, в которых важна более-менее серьезная форма отказоустойчивости, львиная доля сил и времени уходит на поиск потенциальных проблемных мест, выбор нужной технологии, тестирование, написание документации. В финальном решении какую-то часть сбоев полностью обрабатывает автоматика, а на какую-то часть имеются четкие инструкции по ручному восстановлению в заранее ограниченное и определенное время.

В любом случае, эта та работа, результаты которой видишь стенде, но относительно редко встречаешься «в бою». А ведь только боевой опыт приносит полноценное удовлетворение результатом работы. Далее пример из практики двухдневной давности.

Итак, по одному из обслуживаемых нами web проектов для отказоустойчивости и масштабирования нагрузки на фронтальных серверах (их на данный момент два) применяется FreeBSD + CARP + nginx. На каждом из серверов по одному «виртуальному» (CARP) IP адресу. С каждого из адресов видны web-проекты, каждый из фронтальных серверов подключен к сети в одном из надежнейших дата-центров России.

И вот однажды вечером…

Oct 10 18:21:51 front2 kernel: bge0: link state changed to DOWN

Да, это не умер сервер. Просто дата-центр по какой-то причине отключил внешний интерфейс. Что происходит после? Front1 забирает у  front2 соответствующий публичный IP, который видят все посетители, и продолжает обрабатывать трафик за своего товарища, которому «не повезло». Ни одна из наших внешних систем мониторинга (они проверяют доступность web проектов не реже 1 раза в 30 секунд) не заметила этого инцидента.

Дальше стандартные действия: общение с технической поддержкой дата-центра, поиск проблемы, устранение и…

Oct 10 20:29:43 front2 kernel: bge0: link state changed to UP

…спустя 2 часа провод обжат по-новому (причина оказалась банальной) и front2 бесшовно встал в строй.

Вот как это выглядело с точки зрения мониторинга:

Front2 (failed)

Front1 (ok)

Наблюдать за четкой работой автоматики, обрабатывающей чужие ошибки — это удовлетворение.