Top Banner
DevCon 2015 developers productivity platform
29

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

Jul 24, 2015

Download

Technology

jonathan donner
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Отказоустойчивые игры с облаком – как делают игры на много пользователей

DevCon 2015developers productivity platform

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

#msdevcon

DevCon 2015developers productivity platform

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

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

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

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

Agenda

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

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

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

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

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

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

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

DevOps

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

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

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

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

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

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

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

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

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

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

2

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

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

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

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

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

AI

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

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

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

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

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

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

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

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

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

Кейс 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• База данных для данных сессий

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

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

TablesNoSQL-

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

значение»

QueuesКоммуникац

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

ми

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

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

документы,

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

Traffic Manage

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

SQL Azure

SQL Server как сервис

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

160М+ЗАГРУЗОК

$10МВЫРУЧКА

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

Connected Gameplay

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

JoyBits и Doodle God

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

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

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

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

http://www.globalfoundationservices.com/

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

Ситуация 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

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

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

TablesNoSQL-

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

значение»

QueuesКоммуникац

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

ми

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

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

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

файлы

Traffic Manag

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

SQL Azure

SQL Server как сервис

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

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

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

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

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

• Windows Phone и Windows 8

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

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

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

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

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

http://barboskiny.ru

VM

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

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

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

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

файлы

SQL Azure

SQL Server как сервис

Virtual Machines

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

задач

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

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

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

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

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

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

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

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

HDInsight

кластеры Hadoop

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

ML

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

и дешево

Stream Analytic

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

данных в RT

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

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

Batch

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

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

Ситуация 5: DevOps

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

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

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

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

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

DevOps на Azure

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

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

Разработка

Xplat CLI Knife-Azure

Puppet CLI

Vagrant-Azure

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

Release Management

Application Insights

DSC Extension

Release Management

Powershell

OpInsights

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

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

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

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

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

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

Agenda

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

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

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

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

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

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

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

DevOps

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

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

Контакты

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

[email protected]; @ahriman_ru; ahriman.ru

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

http://azurehub.ru

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

© 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.