Не скажу за всех, но лично я не перестаю удивляться феномену столь же масштабному, сколь и необъяснимому, — чрезмерно продолжительным «зависаниям» крупных ИТ-систем. С периодичностью, достойной лучшего применения, раз в несколько месяцев где-нибудь на просторах Сети вдруг падает сервис, на который завязаны десятки, а то и сотни миллионов человек, — и день тянется за днём, неделя за неделей, а «поднять» его всё не удаётся. Заработает одна часть — отключится другая, и история тянется, скандал ширится, публика, сначала разочарованная, скатывается в злобную полемику, изрыгает проклятия в соцсетях и блогах. Пока наконец в один прекрасный день всё вдруг не приходит в норму — и инцидент забывается, чтобы два–три месяца спустя быть повторённым почти в точности, но в новом месте.
Если попытаться сейчас перечислить, сколько их было за последние хотя бы пять лет — «зависших» локеров, банков, игровых сетей, почт, бирж, — боюсь, не хватит пальцев на руках и ногах. Но, помимо размаха и регулярности, все эти происшествия роднит и ещё один аспект: владельцы сервиса обычно упрямо молчат в ответ на вопрос о причинах, не желая называть их ни в течение, ни после. В лучшем случае мы получаем мутное, ничего не объясняющее клише «неудачное стечение обстоятельств». И никогда — внятное, убедительное разъяснение, что именно обрушило систему, а главное, почему — раз уж причина известна! — её не удавалось реанимировать так долго.
Спору нет, корпоративный сервер с сидящим на нём десятком бухгалтеров и интернет-сервис с десятком миллионов клиентов — вещи очевидно разного порядка сложности. В первом случае проблему по крайней мере можно маскировать, переключившись на время ремонта на резервную машину. Во втором, где инфраструктура распределённая, одна неполадка провоцирует другую — и накапливается волосяной ком проблем, подавившись которым сразу не отплюёшься. Но такого рода теории хороши для бумаги, когда же доходит до дела, их оказывается совершенно недостаточно!
Когда на сутки «ложится» крупнейший (хорошо, один из крупнейших — давно не проверял китайцев) веб-ритейлер Amazon.com (см. «Даунтайм в десятую процента»). Когда четверо суток отказывается реагировать на запросы многофункциональное облако Microsoft — с почтой, виртуальными накопителями и прочим (см. там же). Когда PlayStation Network с её 70+ миллионами игроков отправляется в аут почти на месяц (весна 2011-го; формальную причину, правда, назвали — проникновение злоумышленников, — но всё равно непонятно, отчего так долго шло восстановление). Когда гордость национального здравоохранения страны — лидера в ИТ — главная интернет-биржа медицинских страховок — не может даже стартовать нормально месяцами (см. «Будьте здоровы, или Чтоб вы сдохли!»). Когда веб-почтовик, входящий в тройку популярнейших на планете, неделю отфутболивает пользователей то с одной формулировкой, то с другой — как случилось только что с Yahoo! Mail.
Временный, но неприлично затянувшийся паралич почты Yahoo! прошёл в точном соответствии с классическим сценарием: никто ничего не знает, и виновник «торжества» не спешит рассеять туман! Из разрозненных рассказов пострадавших рисуется примерно следующая картина. 9 декабря часть пользователей веб-почты Yahoo! (а там триста миллионов человек без малого) начали испытывать трудности с доступом к своим ящикам. Пресс-служба компании среагировала оперативно и до конца освещала происходящее в официальном «Твиттере», но делала это, как и полагается в таких случаях: ничего не объясняя, только констатируя наличие проблем и обещая, обещая.
Сначала обещали, что с часу на час все смогут пробиться в свой аккаунт, после этого — что вдруг исчезнувшая часть почты скоро вернётся, потом — что вновь сломавшийся «вход» оперативно починят, и так далее. Не уверен, что выдержал хронологический порядок, но — факт: большинство оставшихся без связи ничего не знали и к концу прошлой недели были страшно злы (у кого-то потерялась переписка за многие годы, у других — корпоративная почта). К тому же случившееся стало своего рода кульминацией зреющего среди клиентов последние пару месяцев недовольства: Yahoo! сильно переработала свой почтовик, говорят, срисовав новый образ с Gmail и попутно лишив некоторых оригинальных фишек.
Так вот, причину так и не объяснили. Ни в «Твиттере», ни в блогах, ни тем более в частной переписке (техподдержка просто молчала). И даже в финальном аккорде Марисса Майер выдала лишь малозначащий набор стандартных формулировок: «сложнее, чем казалось», «всего 1% пользователей», «очень редкий сбой с разнообразными проявлениями», «трудились круглые сутки», «наш аптайм по-прежнему выше 99,9%» и, наконец, «мы станем лучше». И вот с этим последним связан самый важный нюанс истории: как именно они надеются стать лучше, если причина случившегося так и не была понята?
Здесь не следует бояться рассуждать. Вопрос этот, вопреки ожиданию, настолько свеж и не проработан, что лишь редкие комментаторы рискуют пробовать его на зуб — и, естественно, умозаключения по большей части выходят сырые, даже доморощенные. Исходной точкой может послужить, например, предположение, что сложность ИТ-систем местами превзошла человеческие возможности по их координации. Банально? Но не спешите морщиться. Какой бы банальной эта идея ни казалась, спровоцированная ею проблема налицо и требует правильной реакции.
Так как же заставить очень сложную систему работать лучше? Дальше других тут продвинулись авторы роботов для высокочастотной торговли ценными бумагами (HFT). Чтобы воспользоваться главным преимуществом HFT-систем — скоростью операций, — им необходимо предоставить свободу действий, а как её предоставишь, если нетривиальные алгоритмы, лежащие в их основе, способны в доли секунды разорить даже крупный банк (см. «Тише едешь — дальше будешь»)? Так вот, они не придумали ничего лучше, чем выставить ограничения — по потраченной сумме в единицу времени, числу открытых позиций и т. п. Сами понимаете, такое решение равноценно лечению мигрени у человека с опухолью головы: причина-то никуда не делась!
Решение на самом деле предложено, но оно неосуществимо практически по той же причине, по которой аптайм массовых ИТ-систем не превосходит пресловутых 99,9%. Решение такое: нельзя запускать систему, если риски наступления редких событий для неё не оценены надлежащим образом и не компенсированы. Сформулировал его (возможно, я слегка переиначил ради краткости) отец «Чёрного лебедя» Нассим Талеб, который сколотил состояние скупкой таких рисков. В ИТ, как, впрочем, и везде, вероятности редких событий катастрофически недооцениваются; полистайте прессу: фраза «Ну очень редкий сбой!» (привет, Марисса!) встречается чуть ли не каждый месяц.
Подвох в том, что если для атомных электростанций следовать талебовскому правилу разумно (иначе ждите новую «Фукусиму»), для того же веб-почтовика, пусть даже очень большого, это приведёт к слишком большим расходам. Иначе говоря, абсолютно надёжное «облако», почтовую службу, вычислительный кластер, вероятно, построить можно, но цена окажется заоблачной. Так что бизнес пришёл к компромиссу между ценой и надёжностью — к тем самым 99,9% аптайма: клиент вынужден терпеть многочасовые простои каждый год, зато и платит за сервис приемлемую цену.
Что имеем в сухом остатке? Марисса своим «станет лучше», уж простите за прямоту, врёт. Врёт, как и полагается главе любой публичной компании, тем более с миллиардным оборотом: клиент и держатели акций должны верить, что о них заботятся. А рецепта абсолютной надёжности сложных систем по-прежнему нет. Ну, по крайней мере рецепта приемлемо дешёвого.
Вместе с тем извлечь из случившегося полезный урок можно и следует. Раз уж адекватно оценить риски редких событий никто не пытается или не желает (уповая на вышеупомянутую дороговизну), стоит по крайней мере частично компенсировать последствия их наступления. А именно — не бояться признать случившееся и держать постоянную связь с клиентами, пока поломка не будет полностью исправлена. И очень странно, что та же Марисса, пытающаяся вытащить Yahoo! из глубочайшего кризиса за время существования компании, ничего такого не предприняла. Вместо этого техподдержка — перегруженная запросами или по приказу свыше — молчала, а топики на форуме для клиентов с криками о помощи закрывались с формулировкой «РЕШЕНО».
Брали бы пример с Apple и её грустного «Мака» или Twitter — с уставшим, уснувшим китом, спасаемым маленькими птичками…