Полвека назад, в 1963 году, издательство «Знание» выпустило культовый сборник фантастики «Новая сигнальная». И там, в «Далёкой Радуге» Стругацких, звучит история о Массачусетской машине, самом сложном кибернетическом устройстве из существовавших в истории Мира Полудня, которое «начало вести себя»… Проявлять такие свойства, которых не закладывали в него его проектировщики… А сегодня, в 2013-м, вполне обыденными становятся системы, у которых самое что ни на есть штатное функционирование, направленное на выполнение предназначенных задач, происходит подобным образом.

В начале ноября на британском технологическом новостном сайте The Register появился материал с интригующим названием — «IT’S ALIVE! IT’S ALIVE! Google’s secretive Omega tech just like LIVING thing«. «ОН ЖИВОЙ! ОН ЖИВОЙ!» — такой заголовок появился отнюдь не в разделе про поисковые работы в области theoretical computer science вроде Artificial Life… Нет, так писали в рубрике «Центры обработки данных», подрубрике «Облачные вычисления». И речь шла о новейшем центре обработки данных Omega крупнейшего поисковика планеты Google.

Где-то в недрах дата-центров программное обеспечение начинает само организовывать свою работу
Где-то в недрах дата-центров программное обеспечение начинает само организовывать свою работу.

То есть — о технологической системе, которая выполняет самые привычные и самые необходимые в быту операции. Снабжающей нас информацией, нужной для повседневной жизни и такой же привычной, как вода из-под крана и газ в конфорке… Но дата-центры от Google традиционно тяготеют к скрытности, причины которой — вроде необходимости защиты данных — подробно описаны здесь. Впрочем, и в индустриальную эпоху погулять по подземному городскому водохранилищу, зайти на водокачку или вольно покурить среди газомеров у нас не получилось бы…

Так что про функционирование систем обработки данных глобального поисковика мы знаем лишь то, что фирма сочтёт нужным нам сообщить, или же то, что выскользнет в прессу. И вот The Register рассказывает об очень интересных вещах. По его словам, одна из наиболее совершенных систем центров обработки данных Omega начала вести (behaves) себя так, что это больше смахивает на поведение живого существа, чем на работу платформы, жёстко контролируемой «классической» системой управления. Причём аналогичные черты проявлял уже и предшественник Omega по имени Borg…

Тут на свет появляется такой околокибернетический термин, как «эмерджентность». Гуляет это заимствование с английского emergent («возникающий») по отечественным источникам как минимум с семидесятых годов. Более пуристические редакторы заменяли его на «системный эффект». Суть явления — в появлении на некотором уровне развития системы таких свойств, которыми не обладают её отдельные элементы. Скажем организм, даже простейший, проявляет свойства, которыми не обладают химические элементы, входящие в его состав… Организм не есть сумма клеток. Муравейник — отличен от муравья…

Для дата-центров Omega характерна правая схема организации диспетчеризации
Для дата-центров Omega характерна правая схема организации диспетчеризации.

Ну а что такое Omega? Это система вычислительных кластеров, масштабируемая более чем до десяти тысяч элементов. И вот теперь Петер Магнуссон (Peter Magnusson), главный специалист Google по облачным вычислениям, говорит о том, что эти системы начали демонстрировать эмерджентное поведение, то есть в них, говоря более корректно, проявляются присущие такому уровню сложности системные эффекты. И — по мнению «облачного шефа» — понять, что с этим поведением делать, может быть весьма трудно.

Что ж, в светлом коммунистическом Мире Полудня с Массачусетской машиной поступали просто, в духе основоположников: «Проработала эта машина ровно четыре минуты. Её выключили, зацементировали все входы и выходы, отвели от неё энергию, заминировали и обнесли колючей проволокой. Самой настоящей ржавой колючей проволокой…» Эдакий Endlösung кибернетического вопроса. В реальности же системные, никем не предсказанные свойства Omega используются для исполнения того, для чего в центр обработки данных вложены деньги, — для лучшей обработки запросов, поступающих поисковику.

Да, страшилок мы обозначили много. Но на самом деле всё и куда проще, и куда сложнее. Проще — в том смысле, что система из десятков тысяч кластеров не склонна (во всяком случае — пока) к философским размышлениям в духе лемовского «Голема XIV», и уж явно не вынашивает злобных планов по образу более популярного «Скайнета». Он всего лишь распределяет потоки информации между вычислительными мощностями и расставляет приоритеты. Ну, знаете, как когда-то барышень на телефонных станциях сменили релейные АТС. Причём эффективность работы системы от этого заметно растёт!

А сложнее… Сложнее то, что мы в принципе не можем предсказать, какая структура обработки данных сложится внутри дата-центра. В целом всё просто. Есть коммутатор, хоть и очень большой и гибкий. Есть система назначения приоритетов. Ну, может быть помните, как во времена релейных телефонных станций звонок «по межгороду» отключал местные соединения… То есть уровни приоритета существовали уже и тогда. А теперь ЦОД Omega оперирует коммутациями и приоритетами сам. Нет, конечно же, в пределах, заданных создателями. Поиск обрабатывается первым — иначе потребитель метнётся к национальному поисковику-конкуренту.

Ну а обработать статистику по поисковым запросам — выяснить, кто и что больше любит и сколь часто интересуется, — можно и в режиме, близком к фоновому. Тут важно не время реакции, а достоверность, обеспечивающая эффективность рекламы, которая и приносит деньги поисковику, вкладывающемуся в Omega-центры и обеспечивающему нас бесплатным поиском, да и ещё рядом полезных услуг. И эффективность этой коммутации, и эффективность разделения приоритетов оказываются выше, чем если бы это было жёстко установлено — или на этапе проектирования, или в ходе работы.

«Хаос» организации обработки данных повышает её рентабельность. Но — как говорит старший исследователь из команды Google Джефф Дин (Jeff Dean) — вы всё время работы находитесь «на зыбком песке» и должны мириться с этим. То есть система работает. И в общих чертах понятно, как она работает. Но вот как именно работает она — не знает никто. В том числе и её разработчики. Слишком сложны решаемые поисковиком №1 задачи. Слишком велика их размерность. Классическое решение — оценить возможное число запросов, оценить требуемое время реакции, накупить мощностей с запасом — слишком дорого.

Система, самостоятельно маневрирующая ресурсами, коммутирующая кластеры, варьирующая приоритеты, может решать эти задачи местными ресурсами, то есть — дешевле! И, как говорит Джон Уилкс (John Wilkes), один из разработчиков Omega, задачей было обеспечить предсказуемое поведение системы со стороны пользователя — несмотря на сложность и масштабы системы — минимизируя ошибки. То, каким образом система работает «внутри», видимо не имеет уже принципиального значения.

Время ожидания в системе с диспетчеризацией типа Omega (правая) для многих задач оказывается минимальным
Время ожидания в системе с диспетчеризацией типа Omega (правая) для многих задач оказывается минимальным.

Попробуем привести аналогии для Omega. С живым существом, даже простейшим, его сравнивать, как это публицистически сделал The Reg, нельзя: ЦОД не способен к самовоспроизведению… А вот с органом сравнить можно вполне. И опять попрошу помощи врачей: какая там часть людей имеет сердце справа? И вроде бы на здоровье это не отражается? То есть не-марковская, зависящая от истории эволюция системы вкупе со случайными факторами может породить не то, что бывает обычно, а то, что, тем не менее, прекрасно исполняет свои функции.

Но правое сердце — редкость. А вот сосуды всякие, кажется, разбегаться могут многими способами. Такими, какими они сложились в процессе формирования Большой Системы, нашего организма. Никак не влияя на качество системы! Так и ЦОД Omega, тоже довольно большая система, программно сформирует свои информационные артерии и вены непредсказуемым изначально способом. Но потребителю — и тому, кто обращается с поисковым запросом, и тому, кто будет арендовать у Google вычислительные мощности, — будет видимо достаточно предсказуемое «лицо» системы.

Прецедент Google важен, потому что он — №1. С теми же проблемами столкнутся и соцсети, и интернет-торговля, и корпоративные облака… Тренд! Машина, которая непонятно как устроена внутри, но всё же надёжно работает. Из ИТ-сферы в голову приходит лишь адаптивный дизайн сайтов. Не ясно, что увидит на экране пользователь, но деньги владельцам «живой» сайт приносит исправно… И вскоре таких примеров будет много: эволюция технологий идёт в миллионы раз быстрее, чем шла некогда эволюция органической материи.

И уж начав с фантастики, завершим ею. Ранней книгой печатавшего свои поздние вещи в бумажной «Компьютерре» Станислава Лема. Утопией «Магелланово облако». Там фигурировали «гироматы» — автоматы большой сложности, которые никто не проектировал и про устройство которых никто не мог ничего сказать. Их скорее выращивали, чем строили, хотя и из неорганических веществ. Видимо, на Лема, читавшего свежие книжки Винера и Шеннона, сильно влияло его медицинское образование… Ну а ознакомиться подробнее с «живой» диспетчеризацией можно в статье калифорнийских исследователей «Omega: flexible, scalable schedulers for large compute clusters«.