DataLife Engine > Новости > Этот виртуальный Xbox LIVE

Этот виртуальный Xbox LIVE


26 марта 2010. Разместил: deeper2k
Microsoft Engineering Xbox


Вы когда-нибудь задавались вопросом, что значит быть инженером Xbox, работающим над новыми функциями Xbox LIVE? Одним из основных занятий, связанных с Xbox LIVE, с которым мы сталкиваемся каждый день, является возможность развивать и тестировать наши разработки эффективно и независимо, не влияя на работу наших коллег-разработчиков. Возможность экспериментировать и испытывать различные идеи, не волнуясь о взаимодействии с другими разработчиками, дает нам определенную свободу в проектировании процессов соединения и взаимодействия Xbox 360 со службами Xbox LIVE. Это также помогает удостовериться в корректности работы наших функций до того, как они будут выложены на наши серверы.


Мини Xbox LIVE
Служба Xbox LIVE фактически состоит из различных веб-служб, баз данных, программ и инструментов, которые охватывают большое количество серверов. Некоторые машины служат для хранения больших объемов данных, некоторые специализируются на обработке данных, а другие спроектированы так, чтобы эффективно маршрутизировать и распределять трафик по машинам. Со стороны команды разработки мы обслуживаем и разрабатываем все эти службы и связи между ними. Обычно мы одновременно работаем над несколькими частями этой системы, и для нас важно вносить усовершенствования и представлять новые компоненты, не затрагивая при этом других разработчиков.

 


Так что, в качестве составной части нашего процесса разработки, мы обеспечиваем хостинг для нашей собственной миниатюрной тестовой версии Xbox LIVE на одной машине, которую один из членов нашей команды остроумно назвал "XBLOB" (Xbox LIVE on One Box). Поскольку у каждого из нас есть своя отдельная версия Xbox LIVE, мы можем экспериментировать, разрабатывать и вносить изменения, не влияя при этом на чью-либо работу. Работы по созданию XBLOB включали в себя множество составляющих, например:

  • Модификацию всех ключевых служб и процессов таким образом, чтобы они могли работать на одной и той же машине в условиях ограниченных ресурсов памяти и времени CPU (это всего одна [виртуальная] машина!)
  • Мы должны были убедиться, что наши разработчики могли легко настраивать и обновлять эти машины (рабочая среда разработчика должна соответствовать девизу "Latest & Greatest"!)
  • Создание хороших типовых тестовых данных в базах данных для представления реальных серверов Xbox LIVE, сохраняя при этом достаточно малый их объем, чтобы они могли поместиться на наших жестких дисках (миллионы пользователей = море данных! Даже с учетом пользователей-ботов).

В этой статье я собираюсь рассказать о том, как наши разработчики устанавливают и используют собственные XBLOB с помощью виртуальных машин с технологией виртуализации Hyper-V.


Пакет
Все компоненты наших серверов, из которых состоит Xbox LIVE, основываются на базовом уровне инфраструктуры, которые включает в себя операционную систему, SQL Server, службы IIS, .NET Framework и многое другое. Все это вместе с нашим уровнем общих компонентов Xbox LIVE установлено на виртуальную машину (VM), которая представляет собой программную реализацию целого компьютера, которая выполняется на физическом компьютере. Эта VM упаковывается в один файл виртуального жесткого диска (VHD) с помощью SysPrep. Для тех, кто не знаком с SysPrep, объясняю: эта та самая утилита, с помощью которой в магазинах комплектуются компьютеры с предустановленным ПО, сразу готовые к работе после их покупки.


Почему виртуальная?
Создавая XBLOB, члены нашей команды загружают копию последней версии файла VHD на свои компьютеры и загружают свой экземпляр VM, как полностью новую машину со своим уникальным машинным именем, ID безопасности и т.д. Это означает, что каждый наш разработчик начинает работу с последовательной базовой установки XBLOB, при этом он может создавать столько экземпляров XBLOB, сколько позволит производительность аппаратного обеспечения его компьютера. Даже при этом, что эти XBLOB являются виртуальными, набор разработчика Xbox 360 может быть подключен к каждому из них. Кроме того, настройки конфигурации операционной системы, программ и служб также присутствуют в VHD, так что нашим разработчикам не надо беспокоиться о наличии правильных настроек.

Использование VM также позволят нашим разработчикам делать снимки систем XBLOB и экспериментировать с их настройками. Это дает нам возможность пробовать в действии новые разработки и, если это понадобится, откатывать систему к ее изначальному состоянию. Например, если мы хотим проверить в действии различные способы создания учетных записей пользователей и их входа в систему Xbox LIVE, мы можем начать работу со снимка системы, сделанного перед тем, как на XBLOB была установлена служба учетных записей пользователей, затем установить первую версию и подключить SDK для проведения тестирования. После этого мы можем вернуться к снимку системы, установить вторую версию и опять протестировать ее с тем же, или другим комплектом разработчика.

Обычно мы используем возможность отката системы к предыдущему ее состоянию для изолированного тестирования отдельных функций. Мы можем отслеживать состояние базы данных или журнала событий, накопленного в XBLOB с начала проведения тестирования, запущенного на "чистой" машине, и сравнить его результаты с результатами контрольного теста. Мы можем разрабатывать и тестировать функции, благодаря намного более предсказуемому их поведению, и ограничить все встретившиеся изменения только теми, которые связаны с тестируемой функцией. Наличие этой информации позволяет нам объективно проанализировать, что происходило с данной установкой консоли-сервера на каждом ее уровне детализации, минимизировав при этом влияние внешних факторов, которое могло бы повредить достоверности полученных данных.

Последним по очереди, но не по значению, способом использования виртуальных XBLOB нашими инженерами, который существенно повлиял на эффективность нашей работы, является автоматизированная система сборки, развертывания и тестирования (ADT). Эта система позволяет нам планировать на ночь выполнение процессов сборки новых версий программ с применением изменений, сделанных за день, их развертывание и проведение обширного набора тестов (включая тесты консоли и сервера, которые могут занять несколько часов), после чего получать результаты на наш электронный ящик, чтобы с утра первым делом просмотреть их. Все это помогает нам работать над тем, чтобы сделать службу Xbox LIVE более функциональной и удобной для наших пользователей!

Источник: http://www.xbox.com
Перевод: Dazila


Вернуться назад