Однажды после обеда мы открыли очередной журнал, чтобы разобраться с чем-то совершенно не относящимся, и там оно было, повторяясь тысячи раз, спокойное, как ни в чем не бывало. Каждый раз, когда кто-то общался с нашей системой с момента недавних изменений, часть, которая должна была отвечать первой, тихо задыхалась на самом первом шаге и выходила из игры. Не время от времени. Каждый раз. На протяжении более недели. И за всё это время никто не заметил, потому что ответы приходили обратно совершенно нормально и вовремя.
Представьте театр. Главный актер уходит за кулисы в ночь открытия и больше не возвращается. Но дублирующий актер так быстр и плавен, что успевает вставить каждую реплику, прежде чем зрители успевают заметить паузу. Спектакль продолжается. Отзывы восхитительные. Никто в зале не догадывается, что человек, которого они пришли видеть, ушел в первой сцене. Это были мы. Главный актер терпел неудачу мгновенно, каждую ночь, а дублирующий актер так грациозно исполнял всю пьесу, что звучало это именно так, как если бы был на сцене звезда.
Очевидный вывод положителен: резервная копия сработала, избыточность спасла нас, можно продолжать. Это неправильный урок, и нам понадобилось время, чтобы это признать. Избыточность стала проблемой. Она так полностью скрыла неработоспособность основного, что никто и не знал, что основной сломан. Мы создали эту резервную копию, ожидая, что она справится, возможно, с одной проблемой из пятидесяти. Она справлялась со всеми. Наши затраты тихо переместились на путь, на который мы никогда не планировали полагаться, смешение помощников, которые, как мы думали, использовали, на самом деле не существовало, и единственным намеком на то, что что-то было не так, была одна тихая ошибка, погребенная глубоко в месте, куда никто не имел причины заглядывать.
Тихая резервная копия — это проверка того, действительно ли вы следите за происходящим, и наша только что показала нам, что мы этого не делали. Смысл резервной копии не в том, чтобы сделать сбой невидимым. Она предназначена для того, чтобы клиент мог продолжать работать, пока вы исправляете то, что сломано. Если сбой никогда не доходит до никого — ни до вас, ни до экрана, ни до отчетов, — то резервная копия тихо превращается в то, на что вы действительно полагаетесь, а главная роль просто декорация. Жестокий поворот заключается в том, что единственный способ узнать об этом — это когда резервная копия также выходит из строя. Теперь сломано две вещи, и вы не имеете представления, какая из них на самом деле держала вес.
Итак, мы сделали молчание невозможным. Мы исправили первоначальный сбой, чтобы главный актер мог снова выйти на сцену. Затем мы сделали более важную вещь: мы дали системе голос. Теперь каждый раз, когда дублирующий актер входит в игру, он оставляет отпечаток. Тихая статистика идет. И если главный актер продолжает постоянно уходить со сцены, наконец, звучит сигнал тревоги, независимо от того, ощутил ли зритель что-то. Резервная копия все еще работает, клиент все еще получает гладкий ответ, но молчания больше нет. Мы можем видеть, час за часом, кто на самом деле несет спектакль.
Если вы управляете малым бизнесом, вы состоите из этих взаимосвязей, независимо от того, думаете вы об этом или нет. Поставщики, платежные процессоры, грузовые перевозчики, сервис, который позволяет людям входить в систему. Каждый из них — ведущий с тихим дублером, ожидающим в кулисах. Возможно, вашим дублером является телефонный звонок. Возможно, это второй процессор с худшими условиями. Возможно, это вы, лично, пишущие клиенту ночью, когда что-то автоматическое упустило ситуацию. Ловушка такая же, как и наша. Когда дублер хорош, вы перестаете видеть сбои. И счет приходит позже, когда счет резервного поставщика тихо превышает тот, который вы планировали, или когда кто-то спрашивает, на какого провайдера вы на самом деле полагаетесь, и честный ответ — это тот, который вы никогда не измеряли.
Дешевое решение не в лучшей избыточности. Оно в более громкой избыточности. Каждый раз, когда ваш бизнес обращается к резервной копии, оно должно оставлять след. Запись в таблице. Сообщение в канале. Статистика, которая ведется. Вам не нужно исправлять основное в тот же час. Вам просто нужно знать, что оно вышло. Сбой, который вы увидели и решили проигнорировать, — это решение. Сбой, который вы никогда не видели, — это медленная авария с вашим именем на ней.
Уверенный конкурент будет продолжать добавлять дублеров и называть это устойчивостью. Они не заметят, в ту ночь, когда их звезда перестанет появляться. Они узнают об этом только тогда, когда дублер, который никогда не тестировался при полном зале, в конце концов не выдержит нагрузки. И их экраны все равно будут светиться зелеными, потому что они с гордостью измеряли не то. Сделайте сбой громким. Сделайте восстановление тихим. Большинство людей делают совершенно наоборот, и в конечном итоге они за это платят.