Эффект выключенного сервера
Часть 1
Расскажу вам историю, достойную Башорга. Хотя Башорг в лучшие годы посмотрел бы на неё, медленно закрыл ноутбук и пошёл работать курьером — там происходящее хотя бы подчиняется законам физики.
Работаю я в одной очень серьёзной организации. Настолько серьёзной, что её полномочия закреплены где-то на уровне «так решил государь». Работаем мы с очень важной, очень международной и чрезвычайно цифровой системой.
В соседних государствах существуют такие же специально назначенные организации, и, судя по всему, у них всё устроено столь же технологично: икона Николая Чудотворца, Excel с макросами и один человек, который помнит пароль.
Когда-то давно, солнечным мартовским утром, в одном из наших серверов умер вентилятор.
Не просто вентилятор, конечно. Обычный вентилятор можно было бы купить, заменить и забыть, а это противоречит корпоративной архитектуре. Поэтому он оказался уникальным, древним и настолько редким, будто его изготовили гномы по спецзаказу Министерства магии, после чего уничтожили чертежи и повесились.
По производительности он напоминал волка из «Трёх поросят»: дунет — так дунет. По доступности — гвозди с Масляничной горы были ширпотребом по сравнению с ним.
Единственный поставщик предложил бывший в употреблении экземпляр с eBay. Разумеется, втридорога. Потому что цифровизация — это когда ты покупаешь с рук десятилетний вентилятор, но согласовываешь это через электронный документооборот.
В итоге нашёлся герой, который согласился воссоздать это чудо инженерной мысли. Изготовили сразу три штуки:
- одну поставили;
- две оставили в запас;
- человечество выдохнуло.
На другом сервере того же года выпуска, с примерно таким же пробегом и, вероятно, с той же натальной картой умер — вы ни за что не догадаетесь — вентилятор.
Совершенно неожиданное совпадение. Кто мог предположить, что одинаковое десятилетнее железо, работавшее в одинаковых условиях, начнёт ломаться примерно одновременно? Для выявления такой закономерности требуется как минимум кандидатская диссертация и четыре заседания рабочей группы.
Но я человек опытный, не первый раз в этой помойке. Сценарий понятный:
Диагностируем.
Подтверждаем, что гравицапе п@@#$да.
Берём один из двух запасных вентиляторов.
Меняем.
Пепелац снова летает.
Проводим диагностику, получаем официальное заключение: да, вентилятор действительно превратился в недвижимость.
— Мы всё вам отдали. Вы потом всё передали подрядчику в дата-центр.
После этого три дня я доказывал, что в дата-центр мы забирали только один вентилятор. Три дня взрослые люди с высшим образованием и доступом к критической инфраструктуре расследовали тайну количества предметов в диапазоне от одного до трёх.
Мы подняли личные переписки, историю звонков и запись разговора, в котором обсуждалось, сколько вентиляторов забирают.
Дозвонились даже до человека, который в тот момент просто сидел рядом в машине и, сам того не подозревая, стал ключевым свидетелем по делу о пропавших вентиляторах.
— Покажите, обвиняемый, как именно вы передавали кулер.
Лишь после этого коллеги признали: да, запасные вентиляторы подрядчику никто не отдавал. Мы действительно забрали один.
Это уже сюжет второго сезона.
Часть 2
На следующий день я проводил этническую чистку серверов в контуре разработки: старые виртуалки, забытые стенды, артефакты исчезнувших цивилизаций.
Всё аккуратно: проверил, остановил, спросил, точно ли не нужно, получил подтверждение, удалил.
Не у всех, конечно. Это было бы слишком понятно. Интернет пропал выборочно, чтобы исключить все очевидные причины и придать происшествию аромат мистики.
Пока дозвонились до сетевого инженера в другом городе, пока дежурный администратор с ним общался, пока дождались, когда операторы закончат работу, чтобы перезапустить коммутатор в нашей уютной серверной-помоечке, я сказал коллегам:
Более того, вслед за ним ложится вообще вся офисная сеть.
Я, конечно, не волшебник. Просто коммутатор решили перезагрузить ровно в этот момент. Но выглядело это так, будто я наконец осознал свою истинную силу и выбрал школу магии «инфраструктурный п@@#$дец».
Сам коммутатор завис настолько творчески, что после программного выключения продолжил светить портами, изображая работающий.
Он погас, внутренне произнёс: «Ну п@@#$дец», а потом ещё минут десять обдумывал, стоит ли возвращаться в этот мир.
Самое смешное, что подобное уже происходило дважды: при миграции серверов одна из виртуалок намертво зависала — и сеть благополучно уходила из офиса.
Причины, разумеется, каждый раз были посторонними. Но репутация уже сложилась.
Поэтому, когда погас интернет, люди начали приходить ко мне и спрашивать:
А я сижу перед экраном, ржу почти до слёз и понимаю: ещё пара совпадений — и мне запретят пользоваться кнопкой питания без присутствия священника, экзорциста и представителя Ростехнадзора.
Ладно. Коммутатор воскрес. Сеть поднялась. Все разошлись.
И тут мне пишет инженер подрядчика, который поддерживает наше оборудование и виртуализацию. То есть, удаляя серверы, я частично работал и в его зоне ответственности.
Потому что только что удалил около двадцати виртуальных машин.
Мозг за полсекунды перебирает варианты:
- удалил не те;
- удалил прод;
- удалил прод вместе с бэкапами;
- удалил прод другой организации;
- случайно удалил интернет;
- вентиляторы тоже удалил я.
У нас намечается пилотный проект с крупной компанией. Эта же компания держит контракт на поддержку нашего дата-центра, а автор сообщения представляет её при работе с нами.
И вот к нему подходит коллега из той же компании и ставит задачу настроить сетевое взаимодействие с нашей организацией.
И понимает, что в конечном итоге оказался представителем исполнителя с обеих сторон соединения.
То есть подрядчик, который уже поддерживает нашу инфраструктуру, в рамках другого контракта получил задачу настроить взаимодействие между нами и собой, согласовав параметры с нами и опять-таки с собой.
Человек буквально оказался по обе стороны сетевого соединения и впервые в жизни мог честно написать в отчёте:
«Для уточнения параметров взаимодействия связался с ответственным специалистом» — и просто подумать.
Я объясняю ему, что только что удалил двадцать серверов и поэтому его «е@@#$на рот» пришлось исключительно к месту.
Но х@@#$ там плавал.
Часть 3
Напоминаю: система у нас международная. Мы должны обмениваться данными с коллегами из соседнего государства.
Проверяем сервисы, очереди, маршруты, сетевые доступы и логи. Мысленно готовимся обнаружить просроченный сертификат, ошибку конфигурации или ещё один сервер, который я неудачно выключил.
В крупнейшем городе соседнего государства и прилегающей области произошло массовое отключение электроэнергии.
Из-за аварии на магистральных линиях сработала защитная автоматика. Объём отключённой нагрузки составил 300 МВт. Без света остались сразу несколько районов города и области.
И попросили заблокировать экран и медленно убрать руки от клавиатуры.
Потому что хронология дня выглядела так:
- я удаляю сервер — пропадает интернет;
- я щёлкаю пальцами — ложится офисная сеть;
- я проверяю международный обмен — в соседнем государстве гаснет крупнейший город.
Именно в этом городе именно сегодня вечером должен выступать всемирно известный артист.
То есть я просто решил проверить международный обмен — и где-то за несколько тысяч километров целый город начал экстренно восстанавливать электроснабжение перед концертом Канье Уэста.
Но с тех пор, прежде чем я нажимаю Enter, коллеги открывают карту энергосистемы, проверяют расписание мировых звёзд и уточняют, не собирается ли где-нибудь запускаться атомный реактор.
А сервер с мёртвым вентилятором пока работает как есть.
Запасных-то всё равно нет.