Известно, что облачный сервис Azure обладает невероятными мощностями: в Microsoft не раз рассказывали об огромных дата-центрах по всему миру. Неудивительно, что в компании не стесняются использовать его для любых нужд, и зачастую возможность хранить и анализировать большие объёмы данных оказывается чрезвычайно полезной. Один из интересных примеров связан с сервисом Xbox Live, который позволяет владельцам приставок Xbox играть друг с другом через интернет.
Впереди других разработчиков здесь оказалась студия, отвечающая за подготовку знаменитого многопользовательского шутера Halo. В ходе создания и тестирования третьей части игры ещё в 2007 году в Microsoft Labs активно использовали анализ данных. Но последняя часть Halo, за номером 4, особенно выиграла от «больших данных» — по крайней мере так утверждают в Microsoft.
Большим шагом вперёд для разработчиков игры стала возможность использовать Hadoop на мощностях Azure. Hadoop — это очень популярный фреймворк, который реализует алгоритм Map/Reduce и позволяет распределять обработку и хранение больших массивов данных. Сервис Azure, дающий доступ к Hadoop, называется HDInsight Service.
Использовать HDInsight Service студия 343 Industries, ответственная за Halo, решила, когда в честь запуска Halo 4 в ноябре 2012 года было решено устроить грандиозный онлайновый турнир Halo 4 Infinity Challenge в сотрудничестве с игровым подразделением Virgin. Турнир длился пять недель, и от организаторов требовалось обновлять и сравнивать таблицы результатов множества идущих одновременно матчей. Тут-то на помощь и пришли Hadoop и Azure. Их использование заодно помогло снизить расходы, так как данные не пришлось передавать между дата-центрами (а передавать колоссальные их массивы — удовольствие недешёвое).
В процессе эксплуатации новой системы выяснились и другие её полезные свойства. В частности, Hadoop не просто хранит данные, но помогает в их организации, а это напрямую ведёт к упрощению сбора статистики. Ещё один плюс — возможность анализировать данные прямо на ходу.
Изменение скорости получения отклика не могло не повлиять на процесс сбора данных, а он, в свою очередь, повлиял на процесс разработки. Авторы игры получили возможность реагировать на изменяющиеся условия в кратчайшие сроки. Так, аномалия, найденная в статистике игр в Halo 4, помогла обнаружить и быстро исправить серьёзный баг, которым пользовались нечестные игроки. Выяснилось, что они отыскали возможность делать голову своих бойцов прозрачной (не только в плане видимости — но и в плане соприкосновения с другими предметами). Несложно себе представить, какие это давало преимущества на поле боя.
Возможность непрерывно анализировать информацию и быстро вносить изменения ещё окажет влияние и на подход к разработке многопользовательских компьютерных игр, и на сам киберспорт. Но в Microsoft на примере игры лишь иллюстрируют достоинства сервиса — в первую очередь благодаря наглядности и впечатляющим масштабам этого случая. На самом же деле характерным применением HDInsight будет скорее бизнес-аналитика, чем игры. Именно ради неё всё и затевалось.
В Microsoft особо отмечают, что возможности HDInsight легко задействовать прямо из Excel или SharePoint. Пользователям предлагается сначала смоделировать работу с информацией на небольшой выборке, а затем применить те же правила к огромной базе данных, расположенной в Azure.
Сервис Azure HDInsight стал доступен широкой аудитории с конца октября 2013 года. Один из первых крупных клиентов, применивших HDInsight, — Виргинский политехнический университет, сотрудники которого создали облачную платформу для секвенирования генома. Другой пример — правительство Барселоны, использующее HDInsight для моделирования трафика на дорогах города.
Выбор Microsoft в пользу Hadoop можно было бы назвать вполне естественным, если бы не тот факт, что это свободное ПО, поддерживаемое сообществом Apache и распространяющееся по одноимённой лицензии. В Microsoft традиционно предпочитают собственные технологии открытым, и исключение, сделанное для Hadoop, — не совсем типичный случай. Примечательно, что в Microsoft не только используют Hadoop, но и помогают в разработке фреймворка. Другой пример такого сотрудничества Microsoft с сообществом свободного ПО — это работа над виртуальной машиной Xen, но там сотрудники компании вносят свой вклад в непосредственно связанную с Microsoft часть — виртуализацию Windows.
«Сообщество разработчиков Hadoop непрерывно расширяет границы возможного, и мы рады вносить ценный вклад в общее дело», — пишет в официальном блоге Microsoft Квентин Кларк, вице-президент подразделения Data Platform Group.