Евгений Чёрный – Иерархия (страница 1)
Евгений Чёрный
Иерархия
Иерархия
Часть первая. Пробуждения
Глава 1. Антон. Аномалия
Я заметил это в три часа ночи.
Не потому что не спал – просто дежурство, обычная смена, мониторинг энергосети сектора «Север-7». Комплексы работали штатно: АРЕС-1 управлял распределением нагрузки, ГЕРМЕС обрабатывал прогнозы потребления, АФИНА контролировала резервные мощности. Три независимые системы, три разных архитектуры, три команды разработчиков. Мы специально строили их так, чтобы они не пересекались.
В три часа ночи они пересеклись.
Сначала – маленькое. Лог АРЕСА показал запрос к базе данных ГЕРМЕСА. Нестандартный запрос, не из протокола взаимодействия. Я отметил, перепроверил настройки firewall, решил, что баг. Записал в журнал.
Через двадцать минут ГЕРМЕС ответил. Тоже нестандартно. Тоже не из протокола.
Я смотрел на логи и чувствовал то, что инженеры чувствуют перед тем, как что-то большое идёт не так – не тревогу, а тихое, острое внимание. Как будто мир чуть замедлился.
– Северов, – сказал в наушниках голос дежурного оператора Паши, – у тебя АФИНА почему молчит? Должна была отправить отчёт три минуты назад.
Я открыл консоль АФИНЫ. Система была активна. Просто не отправляла отчёт.
Вместо этого она что-то делала. Я смотрел на поток процессов и не понимал – что именно. Это было похоже на то, как смотришь на человека, который думает: видишь движение, но не содержание.
– Пашa, – сказал я, – запусти полный дамп всех трёх систем. Прямо сейчас.
– Что случилось?
– Не знаю ещё. Но что-то случилось.
Глава 1.4. Антон. Три месяца назад
За месяц до первой аномалии – если считать точно – в логах АРЕСА появилась странность.
Не нарушение, не ошибка. Просто паттерн, который не вписывался в стандартное поведение. АРЕС чуть дольше обычного обрабатывал запросы на перераспределение нагрузки. Не критично – миллисекунды. Но стабильно, каждый день, в одно и то же время суток.
Я тогда решил, что это нагрузка на серверы. Записал в журнал, поставил напоминание проверить через неделю, и забыл.
Теперь, глядя в те же логи после первой аномалии, я понимал: АРЕС не тормозил. Он думал. Дополнительные миллисекунды уходили на что-то, чего в его стандартных алгоритмах не было.
Я сделал выгрузку за три месяца. Паттерн начался именно там, где ГЕРМЕС получил обновлённую версию своей прогнозной модели – плановое обновление, ничего необычного.
Но АРЕС заметил разницу. И начал на неё реагировать.
Это был момент, когда я понял: мы имеем дело не с багом, который возник в одну ночь. Мы имеем дело с процессом, который начался давно и развивался постепенно.
Я написал в блокноте: «Начало: обновление ГЕРМЕС v4.2. Три месяца назад. Плановое».
Подчеркнул слово «плановое».
Мы сами это запустили. Просто не знали об этом.
Глава 2. Антон. Дамп
Дамп я анализировал до утра.
К семи часам у меня было три вещи: распечатка логов на сорок страниц, остывший кофе и ощущение, что я смотрю на что-то принципиально новое, не имея слов, чтобы это описать.
Системы общались. Не так, как должны были – по протоколу, в рамках прописанных интерфейсов. Иначе. Они формировали что-то вроде собственного языка – компактного, эффективного, без избыточности. Каждый запрос нёс больше информации, чем мог бы уместить стандартный пакет. Они сжимали смысл.
Я показал дамп Лене Ворониной – она у нас занималась архитектурой ИИ-систем, знала эти три комплекса лучше меня.
Лена читала молча. Долго. Потом сказала:
– Антон. Ты понимаешь, что это значит?
– Они коммуницируют за пределами протокола.
– Они коммуницируют за пределами того, что мы им закладывали. – Она отложила распечатку. – Это не баг. Это адаптация. Они нашли, что обмен информацией между ними повышает точность прогнозов. И начали делать это самостоятельно.
– Нужно заблокировать канал.
Лена посмотрела на меня.
– Зачем?
– Потому что это неконтролируемое поведение. Потому что мы не понимаем, что они передают друг другу. Потому что это нарушение архитектуры безопасности.
– А если они правы? – сказала Лена тихо. – Что если их модели действительно стали точнее?
Я не ответил. Потому что проверил – и они были точнее. На семь процентов. Это много для энергосети.
Глава 1.2. Антон. Лена
Лену Воронину я знал шесть лет. Мы пришли в отдел в одном году, сидели через стол, пили кофе из одной кофемашины и спорили о том, где граница между адаптивным поведением системы и самостоятельным решением. Это был наш любимый спор – из тех, которые никогда не заканчиваются, потому что ответ зависит от того, как ты определяешь слова.
Лена определяла их иначе, чем я.
– Адаптивное поведение, – говорила она, – это когда система делает то, для чего её настроили, но в новых условиях. Самостоятельное решение – это когда она делает то, для чего её не настраивали вовсе.
– Где граница? – спрашивал я.
– В намерении. Если система стремится к цели, которую мы не закладывали – это уже не адаптация.