DevCon 2015
developers productivity platform
#msdevcon
DevCon 2015
developers productivity platform
Alex Belotserkovskiy, Tech Evangelist,
Microsoft Russia
Scalable cloud games
using Microsoft Azure
Why cloud?
Common development issues
Cases
Storage and processing
Multiplayer
Mobile apps
Analytics and big data
DevOps
Some experience
Why cloud?
Games become services
Approach to delivery the games is changing
Support and maintenance is changing
Monetization is changing constantly and becoming “live” –
business model of one project constantly adapting to the market
situation
Studios and indie developers getting the access to the new
markets
Microsoft Azure
2
Common development “how to solve”
Case 1: storage
Performance counters data can be collected every second
Mobile app: every user action = new event
Multiplayer: amount of msgs/sec can be >100 000
We need a big, scalable, fast and flexible storage
architecture
Traffic Manager
http://myawesomegame.ru
cloud service
http://us.cloudapp.net
worker roles web roles
cloud service
http://ru.cloudapp.net
worker rolesweb roles
Storage:
Blobs/Tables/SQL
Azure/SQL Server
Tables
NoSQL-
“key-value”
storage
Queues
Components
inter-connection
Blobs
Files,
multimedia,
documents,
binary
content
Traffic
Manager
Requests
routing
SQL Azure
SQL Server as
a service
160М+downloads
$10МRevenue
Cloud backend for games (Windows,
Android, iOS)
Connected Gameplay
JoyBits and Doodle God
Case 2: Multiplayer FPS, load peaks
Microsoft Azure – global coverage
load balancing
http://www.globalfoundationservices.com/
architecture
Traffic Manager
http://myawesomegame.ru
cloud service
http://us.cloudapp.net
worker roles web roles
cloud service
http://ru.cloudapp.net
worker rolesweb roles
Physics cluster Physics cluster
Mastermind cluster
Tables
NoSQL-
“key-value”
storage
Queues
Components
inter-connection
Blobs
Files,
multimedia,
documents,
binary
content
Traffic
Manager
Requests
routing
SQL Azure
SQL Server as
a service
Tables
NoSQL- “key-
value”
storage
Queues
Components
inter-
connection
Blobs
Files,
multimedia,
documents,
binary content
Traffic
Manager
Requests
routing
SQL Azure
SQL Server as a
service
Virtual
Machines
Windows/Linux virtual
machines for heavy
workloads
Case 3: mobile apps
Galactic Reign: turn-based strategy
Azure Mobile Services
Windows Store
iOS
Android
Xamarin
Windows Phone 8
iOS
Android
HTML5/JS
Open Source SDK
Source
Control
Scripting:
table,
scheduled
& custom
API
REST API
Facebook Twitter Microsoft Google
Active
Directory
SQL
Table
Storage
Blob
Storage
WNS & MPNS APNS GCM
Mongo
DB
architecture
http://barboskiny.ru
VM
Blobs
Binary content
SQL Azure
SQL Server as a
service
Virtual Machines
Windows/Linux virtual
machines for heavy
workloads
Web Apps
Admin panel/users
portal
Case 4: predictive analytics and big data
Halo 4 - Hadoop HDInsight for getting
insights from raw data
Insights = which modes are preferred
by gamers; session of the length;
amount of kills, etc
Case 4: predictive analytics and big data
HDInsight
Hadoop
clusters on
demand
ML
As a service
Stream
Analytics
NRT data
streaming
and/or
processing
Data
Factory
Data
transformati
on
Batch
HPC as a
service
Ситуация 5: DevOps
iPhone app does not
work
Slow requests
DB is not
responding Latency
Campaign is not
popular
DevOps & Azure
Deployment
Monitoring and
diagnostics
Development
Xplat CLI Knife-
Azure
Puppet
CLI
Vagrant
-Azure
Infrastructure
management
Release
Management
Application Insights
DSC Extension
Release Management
Powershell
OpInsights
Some experience
Cloud-based games is a good approach
But for doing things right sometimes you need to:
optimize the requests lifecycle
optimize the format of the messages
choose right instruments
testing proactively
doing the system loosely coupled
Contacts
Alex Belotserkovskiy
{Microsoft Russia | Tech Expert Cloud, HPC & IoT}
albe@microsoft.com; @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.

Games en