Отказоустойчивые игры с облаком – как делают игры на...

29
DevCon 2015 developers productivity platform

Upload: microsoft

Post on 24-Jul-2015

127 views

Category:

Technology


2 download

TRANSCRIPT

DevCon 2015developers productivity platform

#msdevcon

DevCon 2015developers productivity platform

Александр БелоцерковскийЭксперт по стратегическим технологиям, Microsoft

Отказоустойчивые игры с облаком – как делают игры на миллионы пользователей

Agenda

Предпосылки к облаку

Проблемы в разработке

Игровые ситуации и облако

Хранение и обработка данных

Внутриигровые коммуникации и мультиплеер

Мобильные приложения

Аналитика и большие данные

DevOps

Работа с игровыми проектами в облаке – несколько замечаний

Предпосылки к облаку

Игры становятся сервисами

Меняется подход к поставке игровых проектов

Соответственно, меняется подход к дальнейшей поддержке

Монетизация проекта становится постоянно-живущим процессом – бизнес-модель в пределах одного проекта постоянно оттачивается и адаптируется

Игровым студиям открываются новые рынки

Microsoft Azure – это большая платформа

2

Конкретные проблемы конкретных разработчиков

Приложения-компаньоны

Сохранение состояния (хранение данных)

Телеметрия и аналитика

AI

Мультиплеерные коммуникации

Высокие и экстремально-высокие нагрузки

Ситуация 1: хранение и обработка данных

Счетчики производительности можно собирать каждую секунду

В мобильных приложениях действие пользователя = новое событие

В мультиплеере количество сообщений/сек может превышать сотни тысяч

Нужно большое, быстрое, гибкое хранилище.

Кейс 1: Хранение и обработка данныхархитектура

Traffic Manager

http://myawesomegame.ru

cloud servicehttp://us.cloudapp.net

worker roles web roles

cloud servicehttp://ru.cloudapp.net

worker rolesweb roles

Storage:Blobs/Tables/SQL Azure/SQL Server

• Azure Web Role• Фронтенд

• Azure Blob• Сохранение состояния• Другие (мета)данные

• Azure Queue/Service Bus• Соединяет компоненты

• SQL Database• База данных для данных сессий

Компоненты решения

TablesNoSQL-

хранилище «ключ-

значение»

QueuesКоммуникац

ии между компонента

ми

BlobsФайловые данные,

мультимедиа,

документы,

двоичные файлы

Traffic Manage

rПеревод запросов

SQL Azure

SQL Server как сервис

160М+ЗАГРУЗОК

$10МВЫРУЧКА

Общий облачный back-end для игр на Windows, Android и iOS

Connected Gameplay

JoyBits и Doodle God

Ситуация 2: Multiplayer FPS, всплески

Microsoft Azure – глобальное покрытиераспределение нагрузки

http://www.globalfoundationservices.com/

Ситуация 2: Multiplayer FPS, всплескиархитектура

Traffic Manager

http://myawesomegame.ru

cloud servicehttp://us.cloudapp.net

worker roles web roles

cloud servicehttp://ru.cloudapp.net

worker rolesweb roles

Physics cluster Physics cluster

Mastermind cluster

Компоненты решения

TablesNoSQL-

хранилище «ключ-

значение»

QueuesКоммуникац

ии между компонента

ми

BlobsФайловые данные,

мультимедиа,

документы, двоичные

файлы

Traffic Manag

erПеревод запросов

SQL Azure

SQL Server как сервис

Virtual Machines Виртуальные

машины с Windows/Linux для тяжелых нагрузок

Ситуация 3: мобильные приложения

Galactic Reign: пошаговая стратегия

• Windows Phone и Windows 8

• Рендеринг последовательности битв происходит в облаке

Azure Mobile Services

Пуш-уведомления

Хранение данных в облаке

Аутентификация пользователей

Windows Store iOSAndroidXamarin

Windows Phone 8iOSAndroidHTML5/JS

Open Source SDK

Source Control

Scripting: table,

scheduled &

custom API

REST API

Facebook

Twitter Microsoft Google

Active Director

y

SQL Table Storage

Blob Storage

WNS & MPNS

APNS GCM

Mongo DB

Ситуация 3: мобильные приложения, Барбоскиныархитектура

http://barboskiny.ru

VM

Компоненты решения

BlobsФайловые данные,

мультимедиа, документы, двоичные

файлы

SQL Azure

SQL Server как сервис

Virtual Machines

Виртуальные машины с Windows/Linux для тяжелых нагрузок и администраторских

задач

Web Apps Веб-сайт для

пользователей и администраторов

Ситуация 4: предиктивная аналитика и большие данные

В Halo 4 используется реализация Hadoop HDInsight для получения инсайтов из сырых игровых данных

Инсайты – какие режимы предпочитают игроки, длительность игры, количество убийств и др.

Ситуация 4: предиктивная аналитика и большие данные

HDInsight

кластеры Hadoop

в облаке по запросу

ML

машинное обучение быстро

и дешево

Stream Analytic

sаналитика огромных потоков

данных в RT

Data Factoryтрансфор-мирование

потоков данных

Batch

HPC по запросу на тысячи VM

Ситуация 5: DevOps

Клиент на iPhone упал

Запросы тормозят

БД лежитПинги большие

Разделом никто не пользуется

DevOps на Azure

Развертывание

Мониторинг и диагностика

Разработка

Xplat CLI Knife-Azure

Puppet CLI

Vagrant-Azure

Инфраструктура и скриптование

Release Management

Application Insights

DSC Extension

Release Management

Powershell

OpInsights

Опыт работы с игровыми проектами показал:

Игры в облаке работают, и работают хорошо

Но для того, чтобы игры в облаке работали хорошо, существует необходимость:

оптимизировать жизненный цикл пользовательского запроса оптимизировать формат внутренних сообщений правильно использовать правильные инструменты активно тестировать максимально отвязывать компоненты проекта друг от друга

Agenda

Предпосылки к облаку

Проблемы в разработке

Игровые ситуации и облако

Хранение и обработка данных

Внутриигровые коммуникации и мультиплеер

Мобильные приложения

Аналитика и большие данные

DevOps

Работа с игровыми проектами в облаке – несколько замечаний

Контакты

Александр Белоцерковский{Microsoft Russia | Tech Expert Cloud, HPC & IoT}

[email protected]; @ahriman_ru; ahriman.ru

http://blogs.msdn.com/b/albe

http://azurehub.ru

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.