Введение в облачную платформу Microsoft сценарии использования для игровых приложений Владимир Юнев Microsoft
Agenda Введение в облачные технологии Облачная платформа Windows Azure Реальные примеры и сценарии использования Windows Azure для игровых проектов Unity3D и Windows Azure Заключение
ВВЕДЕНИЕ В ОБЛАЧНЫЕ ТЕХНОЛОГИИ
Вычислительные ресурсы и ресурсы хранения по запросу. Подход к построению приложений, когда особенно важны масштабируемость и гибкость к текущим условиям вашего бизнеса
Эволюция через виртуализацию к облакам
Решение своими силами Хранилище Сервера Сеть ОС Системное ПО Виртуализация Данные Приложение Среда исполнения Лежит на ваших плечах Infrastructure (as a Service) Storage Сервера Networking ОС Системное ПО Виртуализация Данные Приложение Среда исполнения Заботится вендор Лежит на ваших плечах Platform (as a Service) Заботится вендор Лежит на ваших плечах Storage Сервера Networking O/S Middleware Виртуализация Applications Runtime Data Software (as a Service) Заботится вендор Storage Сервера Networking O/S Middleware Виртуализация Applications Runtime Data
ОБЛАЧНАЯ ПЛАТФОРМА WINDOWS AZURE
Глобальная инфраструктура сервера / сети / дата-центры 8 центров обработки данных и 24 краевых CDN Автоматизированная Управляемые ресурсы Гибкая По использованию виртуальные машины веб-сайтыоблачные сервисы SQL базы данных noSQL базы данных хранилище BLOB соединения виртуальные сети управление трафиком
Платите только за то, что используете.
Поминутная тарификация.
РЕАЛЬНЫЕ ПРИМЕРЫ И СЦЕНАРИИ ИСПОЛЬЗОВАНИЯ
JOYBITS НА WINDOWS AZURE 60K СИНХРОНИЗАЦИЙ В МЕСЯЦ WINDOWS AZURE TABLE STORAGE КРОСС-ПЛАТФОРМЕННОСТЬ МАСШТАБИРОВАНИЕ
JOYBITS НА WINDOWS AZURE 5 Р. В МЕСЯЦ WINDOWS AZURE TABLE STORAGE 60K СИНХРОНИЗАЦИЙ В МЕСЯЦ
computedata managementnetworking SQL database noSQL database blob connect virtual network traffic manager cloud servicesVMs websites Windows Azure предлагает несколько способов работы с данными. SQL Database (ранее SQL Azure Database) позволяет вам очень быстро создавать, управлять и масштабировать приложения с помощью имеющихся знаний и инструментов. Управление данными основано на сервисах с 99.9% ежемесячного SLA SQL Database так же включает в себя функции миграции, экспорта и внешней синхронизации через SQL Data Sync с базами данных SQL Server. Tables предлагают основанный на ключах доступ к данным с низкой ценой для приложений, которым требуются простые хранилища данных. Blobs предлагают дешевое хранилище для файлов, изображений и видео.
EntityTable Account Name =… = … Name =… Add= … contoso customers photos Photo ID =… Date =… Photo ID =… Date =… Масштабируйтесь до петабайт Table Storage – это key-value NoSQL-технология, которая используется приложениями, которым нужно работать по низкой цене с большими объемами структурированных данных computedata managementnetworking blob connect virtual network traffic manager cloud servicesVMswebsites SQL database noSQL database
BlobContainerAccount Contoso Images PIC01.JPG Video VID1.AVI / Pages/ Blocks Block/Page PIC02.JPG BLOB Storage – простейший путь для хранения большого числа неструктированных текстовых или бинарных данных (таких как видео, аудио и изображения) с высокой производительностью доступа к контенту. Масштабирование до петабайт, надежная, высокодоступная файловая система. Блобы могут быть доступны через HTTP с поддержкой CORS. Возможность установки разрешений для блобов. computedata managementnetworking noSQL database connect virtual network traffic manager cloud servicesVMswebsites SQL database blob
Облачное реляционное хранилище основанное на SQL Server Используйте те же инструменты, фреймворки для доступа к данным, язык T-SQL Датацентры по всему миру Высокая доступность & Избыточность Чтение производится из primary БД Записи реплицируются во вторичные реплики Единая логическая БД Множество физических реплик Реплика 1 Реплика 2 Реплика 3 computedata managementnetworking noSQL database blob connect virtual network traffic manager cloud servicesVMswebsites SQL database
Forza Motorsport 5
Описание Популярная гоночная игра с мультиплеером на 16 человек и сингл-кампанией Задача Увеличить качество опыта сингл-кампании, увеличить качество AI Решение Система «Drivatar» - виртуальные соперники на основе поведенческих паттернов реальных людей, ваших друзей Вычислительные мощности в облаке, анализирующие каждый ваш заезд и предлагающие ваше виртуальное присутствие для ваших друзей Полученные преимущества Сокращение времени разработки, получение вычислительных мощностей по первому требованию
Titanfall
Описание Многопользовательский шутер для Xbox и ПК, получивший множество наград, находится в бета-тестировании Задача Предложить новый опыт быстрого, оригинального многопользовательского шутера для игроков по всему миру Решение Гео-распределенные сервера на базе ЦОДов Windows Azure по всему миру Полученные преимущества Быстрый старт ВМ получаемых по первому запросу, быстрое масштабирование нагрузки с функцией автомасштабирования и ожидаемая экономия благодаря предлагаемой на платформе поминутной тарификации
Windows Azure Virtual Machines Поддержка любых серверных инструментов Простое управление хранением Возможность организации высокой доступности Продвинутые функции виртуальных сетей Интеграция с PaaS-сервисами
Размещение ВМ в облаке Портал управления >_ Скрипты (Windows, Linux и Mac) REST API Windows Server Linux Extra Small Small Medium Large X-Large Cloud Загрузка ВМ в облаке из диска
Cloud Ваш собственный Server/VHD Локально Ваш виртуальный сервер Развертывание ВМ из образа или диска с помощью портала, скрипта или API MyApp.vhd
Подсеть в Windows Azure Virtual Network Для системных администраторов Предлагает администраторам сети контроль над подсетями в облаке и управление ими из инфраструктуры предприятия так же как собственными сетями computedata managementnetworking noSQL database connect traffic manager cloud servicesVMswebsites SQL database blob virtual network
Где используется Windows Azure Mobile Services? Приложения для iOS Приложения для Android Приложение для Windows Phone
Windows Azure Mobile Services Windows Store iOS Android Windows Phone 8 iOS Android HTML5/JS Open Source SDK Source Control Scripting: table, scheduled & custom API REST API FacebookTwitterMicrosoftGoogle Active Directory SQL Table Storage Blob Storage WNS & MPNS APNS GCM Mongo DB
Поддерживаемые платформы
Создание бэкенда, мониторинг, логи
Как используется Windows Azure Mobile Services? Push-сообщение: Привет! Появились новые мультфильмы! Привет...
Трудности при рассылке уведомлений
APNsWNS Notification Hub App back-end iOS app Windows Store app Google app
Notification Hub App back-end Tag:Команда 2Tag:Команда 1 Tag:Команда 2
Service Bus Notification Hub App back-end $(message) { aps: { alert: $(message) } { message: Hello! } Hello!
Игровая студия 343 Industries Ситуация 50 миллионов проданных копий игр серии Halo Задача Анализ опыта игроков и данных накопленных в ходе многодневного турнира Halo 4 Infinity Challenge Решение Применение кластеров Apache Hadoop по запросу через сервис Windows Azure HDInsight Полученные преимущества Увеличение гибкости и реакции на запросы пользователей
Windows Azure HDInsight HDInsight на сервере и в облаке 100% opensource-реализация платформы Apache Hadoop знакомые инструменты для работы с данными (Excel, BI) HDFS, MapReduce, Pig, Hive, Zookeeper, Mahout, … интеграция с SQL Server, обмен данными быстрое развертывание инструменты управления Apache Ambari+System Center интеграция и безопасность с Active Directory доступ к сервису по требованию в облаке Windows Azure
Преимущства HDInsight Работа с большими данными с помощью знакомых инструментов: благодаря глубокой интеграции с инструментами бизнес-аналитики от Microsoft, такими как PowerPivot, Power View и Excel, сервис HDInsight позволяет вам легко анализировать ваши данные с помощью возможностей Hadoop. Гибкость – HDInsight предлагает гибкость соответствующую изменениям потребностей вашей организации. С богатым набором скриптов PowerShell вы можете размещать и администрировать кластер Hadoop за считанные минуты вместо привычных часов или даже дней Hadoop корпоративного уровня: HDInsight предлагает безопасность и управляемость корпоративного уровня. Благодаря выделенному узлу Secure Node, сервис HDInsight помогает обезопасить ваш кластер Hadoop Богатые возможности для разработчиков: сервис HDInsight предлагает мощные возможности для разработки приложений с богатым выбором языков, включая.NET, Java и другие. Разработчики на платформе.NET могут воспользоваться мощью запросов LINQ to Hive.
Архитектура кластера HDInsight
Роли и содержимое компонентов кластера HDInsight Secure Role или Gateway Node реверсивный прокси, который работает в качестве шлюза вашего кластера Hadoop Конечные точки для WebHcat, Ambari, HiveServer/2и Oozie Head Node выполняет ключевые функции кластера Hadoop: NameNode, Secondary NameNode и JobTracker HiveServer and HiveServer2 Pig, Sqoop, Metastore, Derbyserver, Oozie, Templeton, Ambari Worker Nodes отвечают за запуск сервисов, которые поддерживают планирование задач, исполнение задач и доступ к данным TaskTracker, DataNode, Pig, Hive Client
Halo 4 Ситуация 50 миллионов проданных копий игр серии Halo Задача Сбор статистики игр с постоянно растущим объемом данных, быстрая реакция на пиковые нагрузки Решение Применение механизма обмена сообщениями Windows Azure Service Bus для организации надежной системы обработки поступающих данных и выделения ресурсов по требованию Полученные преимущества Гладкий старт новой серии саги Halo, гибкий и масштабируемый механизм сбора и анализа статистики онлайн-матчей игроков
Сервисная шина - подход к построению распределённых корпоративных информационных систем, включающий в себя промежуточное ПО, которое обеспечивает взаимосвязь между различными приложениями Что такое Service Bus? - Wikipedia
Шина сообщений Windows Azure Service Bus Игровые приложения на ПК Агрегатор событий Портал управления … Игровые консоли Phone, Tablet БэкендАналитика Queues Topics Relays Notifications Bridges* * coming soon
Функциональные части Windows Azure Service Bus Service Bus Relays доступ к сервисам и данным предприятия находящимся за NAT и Firewall Service Bus Queues клиенты с переменным доступом к сети выравнивание и балансировка нагрузки Service Bus Topics and Subscriptions подписка множества клиентов на рассылку сообщений
SaaS-сервис динамического выделения мощностей Продукт Специализированный сервис, провайдер вычислительных мощностей Описание решения Пользователь отправляет задачи через клиентское приложение Задачи обрабатываются в HPC-стиле на Windows Azure Пользователи могут следить за прогрессом, получать уведомления Применение Windows Azure Service Bus Service Bus Queue для отправления задач Service Bus Relay для запросов и ответов, коммуникации с низкими задержками между контроллерами и обработчиками для размещения задач Service Bus Topic для агрегации событий и мониторинга
Windows Azure События мониторинга (Topics) Очередь задач Схема сервиса динамического выделения мощностей Данные для задачи (Blob) Реле
И еще интересные проекты…
РАЗРАБОТКА И ТЕСТИРОВАНИЕ В ОБЛАКЕ
Разработка и тестирование на своих мощностях
Трудности тестирования у себя ограниченный бюджет на приобретение, развертывание и обслуживание серверов и другого оборудования; ограниченный бюджет на лицензирование серверного и другого программного обеспечения, необходимого для тестового окружения; конкуренция за ресурсы виртуальных машин внутри компании между разными командами и отдельными разработчиками; сниженная и часто потерянная гибкость тестовой среды для разработчиков; трудности с проведением реальных тестов на масштабирование приложения.
Разработка и тестирование в облаке
Преимущества тестирования в облаке Быстрый выход качественного продукта на рынок Цена. Отсутствие и устранение капитальных расходов при доступе к тестовому окружению в облаке, которое масштабируется лучше, чем собственное. Использование знакомых инструментов Лучшее тестирование с бесконечным облаком Изолирование продакшн-серверов. Предотвращение влияния процесса разработки и тестирования и тестовых приложений на серверы работающие в коммерческой эксплуатации в компании Доступ из облака к существующим мощностями в компании Размещение в любом месте без лок-ина
Сценарии разработки и тестирования в облаке Песочница для разработки приложения и тестирования на поддерживаемой ОС Проверка качества (Quality Assurance) и совместимости приложения на новых ОС, серверном ПО Нагрузочное тестирование с реальной нагрузкой Песочница для разработки тяжелых решений (SharePoint, SQL Server, BizTalk, Active Directory…) Репродукция среды и ошибочных ситуаций и исправление багов Окружение для тренингов, обучения, демонстраций ПО Системы контроля версий, багтрекинг, инциденты и т.д Построение современных облачных приложений и их тестирование в облаке
Схемы организации разработки и тестирования в облаке Windows Azure
UNITY3D И WINDOWS AZURE
Набор плагинов Windows Azure для Unity3D Azure Mobile Services plugins for Unity3D Работает с: UnityEditor Windows 8 Store Windows Phone 8 iOS Android Другие платформы Unity3D Описание
Windows Azure API для Unity3D Инициализация: var service = new AzureMobileServices(url, token); Вставка, обновление, удаление: service.Insert (myItem); service.Delete (myItem); service.Update (myItem);
Работа с Windows Azure в коде Пример кода var data = new LevelSaveData() { SaveData = some data here, Id = 1 }; var azure = new AzureMobileServices (_azureEndPoint, _applicationKey); azure.Update (data);
Windows Azure API для Unity3D Запрос к данным: service.Where (p => p.Category == Exercise, azureResponse => { List exerciseItems = azureRepsonse.ResponseData; …
Windows Azure API для Unity3D Логин через социальные сети (мобильные платформы): azure.LoginAsync(AuthenticationProvider.Facebook, loginResponse => { var token = loginResponse.ResponseData.MobileServiceAuthenticationToken; });
Пробуйте, обменивайтесь опытом Windows Azure – популярная тема на форумах Unity3D Изучайте и пробуйте облако для своих игр Обменивайтесь опытом Делитесь в нашей русскоязычной группе на Facebook fb.com/groups/azurerus/ fb.com/groups/azurerus/
Заключение Облако – относительно новый, но эффективный способ решать задачи игровой индустрии Windows Azure – облачная платформа, решающая любые задачи Хранение данных, обмен информацией, старт с нуля, быстрый рост, своевременное реагирование, экономия средств… Сценарий разработки и тестирования в облаке эффективен для команд и проектов Проекты на Unity3D могут получить поддержку облака с помощью готовых инструментов
Пора разрабатывать в облаке!
Спасибо за внимание!