Мы с Патти киваем. Это хорошая идея. Мы должны построить полную и последовательную цепь событий. Пока же мы делаем предположения, исходя из слухов и догадок.
Это не работает при расследовании преступлений, и это определенно не работает при попытках разобраться в сбоях системы.
Глава 3
Хрупкая система
Вторник, 2 сентября
Я иду за Вэсом и Патти в глубину здания. В конце концов мы приходим в гигантский офис, объединяющий шесть стандартных кабинетов. Вдоль одной из стен располагается большой стол с множеством клавиатур и огромных мониторов, вроде рабочего места трейдера с Уолл-стрит. Повсюду башни из серверов, мигающих разными огоньками. Каждый сантиметр стола покрыт мониторами, на которых показываются графики, окна авторизации, текстовые редакторы, вордовские документы и еще бесконечное количество приложений, которых я не знаю.
Брент печатает что-то в одном из открытых окон, не обращая внимание на происходящее вокруг. Из его телефона раздаются звуки с обсуждения в NOC. Его, очевидно, не заботит, что звуки громкой связи могут помешать его соседям.
«Привет, Брент. Есть минутка?» – спрашивает Вэс, кладя руку ему на плечо.
«А это не может подождать? – отвечает Брент, даже не подняв глаза. – Я вроде как немного занят прямо сейчас. Работаю над проблемой с SAN, слышал?»
Вэс хватает стул. «Да, именно об этом мы и хотели поговорить».
Когда Брент оборачивается, Вэс продолжает: «Расскажи мне еще раз о вчерашнем вечере. Что привело тебя к выводу, что именно обновление SAN вызвало сбой в работе системы расчета зарплаты?»
Брент закатывает глаза: «Я помогал одному из инженеров SAN с обновлением прошивки, когда все ушли домой. Это заняло намного больше времени, чем мы думали, – все работало не так, как должно было. Ситуация была уже довольно напряженной, когда мы наконец-то закончили часов около семи.
Мы перезапустили SAN, и потом вся автоматическая самодиагностика системы стала давать сбои. Мы посидели над ней минут пятнадцать, пытаясь выяснить, что пошло не так. Именно в этот момент мы стали получать имейлы о сбое в работе системы расчета зарплаты. Тогда я и сказал «Game over».
Мы просто отставали на слишком много версий ПО. Производитель SAN, видимо, ни разу не устанавливал то обновление, которое мы загрузили. Я позвонил тебе и рассказал, что мы хотим отменить эту операцию. Когда ты дал согласие, мы начали откат.
И именно в этот момент SAN обвалился, – говорит он, качаясь на стуле. – И потянул за собой не только систему расчета зарплаты, но и несколько других серверов».
«Мы хотели обновить программное обеспечение SAN годами, но все никак не представлялось возможности, – объясняет Вэс, поворачиваясь ко мне. – Однажды мы уже почти собрались это сделать, но не смогли добиться достаточно большого перерыва на техническое обслуживание.
Работа программы шла все хуже и хуже до тех пор, пока несколько жизненно необходимых приложений не были повреждены. И в итоге прошлой ночью мы скрепя сердце решили установить-таки эти обновления».
Я киваю. Затем у меня звонит телефон.
Это Энн, поэтому я включаю громкую связь.
«Как ты и предлагал, мы просмотрели данные, которые выгрузили из системы расчета вчера. Последний платежный период в порядке. Но в этом платежном периоде все номера социального страхования для почасовых работников фабрики – полнейший бардак. А в полях с количеством отработанных часов только нули. Никто ничего подобного раньше не видел».
«Только одно поле в беспорядке? – спрашиваю я, брови от изумления взлетают на лоб. – Что ты имеешь в виду под словом «беспорядок»? Что в полях?»
Она пытается описать, что видит на экране. «Ну, это не цифры и не буквы. Тут немного червей, пики и волнистые линии… И еще здесь есть иностранные буквы с умлаутами… И никаких пробелов. Это важно?»
Брент хихикает, пока Энн пытается описать то, что видит на экране, я сердито гляжу на него. «Думаю, мы получили некоторое представление, – говорю я. – Это очень важно. Ты можешь переслать мне файл с поврежденными данными?»
Она соглашается. «Кстати говоря, полетели еще какие-то базы? Интересно. Вчера вечером все работало».
Вэс бормочет что-то сквозь зубы, заставляя Брента замолчать до того, как он успеет хоть что-то сказать.