SlideShare a Scribd company logo
Gaming across Multiple Devices

            Cloudshow
Patric Boscolo                    Tom Wendel
Developer Evangelist            Developer Evangelist
Microsoft Deutschland GmbH       Microsoft Deutschland GmbH
patbosc@microsoft.com           twendel@microsoft.com
http://blogs.msdn.com/patricb   http://blogs.msdn.com/twendel/

@patricsmsdn                      @bobstriker
Gaming across multiple devices
12:38




We talk about …

AGENDA
?
= Managed for You   Standalone   IaaS   PaaS   SaaS
                        Servers
Applications
Runtimes
Database
Operating System
Virtualization
Server
Storage
Networking
What is Windows Azure?




       Cloud Services                 Developer Resources

Runtime, Storage, Database, Mess   Templates, Deployment
aging, Identity, Caching, …        Tools, SDK‘s, Emulators, …
Maintanance in the Cloud



         Your Application




                                   Access to the Cloud
Runtime, Storage, Database, Mess
aging, Identity, Caching, …
                                                         Your Application
Motivation



             Logic
Gaming across multiple devices
Hardware
Microsoft Data Center Dublin
http://blogs.technet.com/b/msdatacenters/archive/2009/12/18/microsoft-receives-leaders-award-for-innovation-in-the-mega-data-centre.aspx
http://www.microsoft.com/presspass/emea/presscentre/pressreleases/DublinDataCentrePR_240909.mspx
http://www.sustenergy.org/index.php?option=com_see_projectview&view=see_projectdetail&tagId=-1&countryID=-1&catId=-1&pageNum=0&projectid=2524
http://re.jrc.ec.europa.eu/energyefficiency/pdf/CoC%20DC%20new%20rep%20form%20and%20guidelines/Best%20Practices%20v2.0.0%20-%20Release.pdf
http://blogs.msdn.com/b/msenterprise/archive/2011/04/22/earth-day-2011-cloud-computing-can-it-help.aspx
Colocation
Gaming across multiple devices
Gaming across multiple devices
Industry
  PUE  2.4



Microsoft Global
   PUE  1.6
    Dublin
  PUE  1.25
Costs

                 Cooling
                  25%

                                      IT Equipment
                                           50%
Air Transport
     12%
                  Power
                Supply, UPS
                              Light
                   10%
                               3%
Gaming across multiple devices
Gaming across multiple devices
PUE
1.06
Gaming across multiple devices
Memory Management

 Device Management

Process Management



         Hypervisor   Hypervisor
Fabric Controller Host
Windows Azure Operating System

         Hypervisor
Fabric Controller Host
Windows Azure Operating System

         Hypervisor
BACK TO
YOUR
APP
Web Role
          IIS hosted application




          Worker Role
Runtime   arbitrary application




          VM Role
          selfconfigured virtual machine
Deploy to Azure

MY FIRST CLOUD APP
Quelle: http://www.flickr.com/photos/32975477@N02/4566833793/
Gaming across multiple devices
There is no place like
  127.0.0.1
There is no place like
Production
vertical vs. horizontal scale
vertical == more resources   horizontal == more instances
Meine Superawesome Webseite
       http://myapp.cloudapp.net
   Meine Superawesome Webseite
                                              Scale me too!!! ;-)
          http://myapp.cloudapp.net
      Meine Superawesome Webseite
              http://myapp.cloudapp.net




                                                         1 Database
                            n Webroles

           • It„s better to have 50 times 1GB db, then a single 50GB db.
           • How to scale a db?
              • Partitioning
                   • Alpha
                   • User
                   • Usage
                   • Date
Gaming across multiple devices
Lessons learned…

A FEW TIPPS BY SUCCESSFULL APPS
Raidgate
SHOWCASE
AntMe!
SHOWCASE
Table   Queue   Blob
Gaming across multiple devices
Statless vs. Statefull Apps

                            Instance 1
         Loadbalancer




                            Instance 2
http://myapp.cloudapp.net




                                   Different State
SQL Azure /
                Windows Azure
Table Storage
                Caching
Fantasy Kingdom
SHOWCASE
Saudos
SHOWCASE
Browser / Control      Webpage

           WebClient   Json via MVC

             Proxy        WCF
Frontend




            Context       oData

           WebClient    CDN
                                              Logic

            Socket     Socket            Context


                                      Table        SQL
Browser / Control        Webpage

                         Json via MVC

           Json Client      WCF
Frontend




                            oData

           WebClient      CDN
                                                Logic

             Socket      Socket            Context


                                        Table        SQL
Content Delivery Network (CDN)

    Prop. “hops” oder “poor links”   Blob Storage
   Less hops
                       CDN
         Closest Point of Presence

                   X
                                                    Public Container
                                      X




                    Blob header determines
  DNS name resolves
                    time-to-live at the edge
  to closest POP
Content Delivery Network (CDN)
• 24 global distributed CDNs (99.95% availability)
• Setup a CDN via Management Portal
   – Generate 2 URLs for diffrent distributions
       • Direct Access:
         http://myacct.blob.core.windows.net/images/myimage.jpg
       • Access via CDN:
         http://azXXXX.vo.msecnd.net/images/myimage.jpg
   – CNAME Mappings for CDN URLs
     http://blog.smarx.com/posts/using-the-new-windows-azure-cdn-with-a-custom-domain

• CDN for WebApps and Windows Azure Storage
   – CSS, Images, ...
• Smooth streaming available as CTP
Lifetime of CDN Content
• Per Default Content stays alive for 72h
• Setup TTL via „cache control header“
  x-ms-blob-cache-control: public, max-age=<value in seconds>

  – hours, days, weeks
  – longer remaining objects reduces:
      • costs, latency, other caches
• Usage of versioned URIs to change Content
Versioning of URLs
Superawesome WebApp
      http://myapp.cloudapp.net



…
<img
src="http://azXXXX.vo.msecnd.                 CDN
net/images/logo.2011-11-
net/images/logo.2011-09-                  logo.2011-09-16.png
22.png"
16.png" />                                                      logo.2011-09-16.png
…                                         logo.2011-11-22.png   logo.2011-11-22.png




       • Easy to manage Rollback and different Versions
       • Enables A/B Tests
CDN für Web Apps
• CDN support for Websites
  http://blog.smarx.com/posts/using-the-windows-azure-cdn-for-your-web-application

   – Default URL:
     http://foo.cloudapp.net/default.aspx
   – CDN URL:
     http://azXXXX.vo.msecnd.net/default.aspx
   – Cached from:
     http://foo.cloudapp.net/cdn/default.aspx
• CNAME & HTTPS support
• Important! The „cache control headers“ must be
  edited in order to use the OutputCache Module
  via Webapps
  http://blogs.msdn.com/b/scicoria/archive/2011/07/10/hosted-service-as-a-windows-azure-cdn-origin-tips.aspx
Gaming across multiple devices
Why Microsoft?
•   Enterprise Business
•   Security
•   BizSpark Plus
•   MSDN
•   Support
•   Technical Resources
Why Microsoft?
• Enterprise Business
• Security

• BizSpark Plus
• MSDN
• Support
• Technical Resources
Why Microsoft?
•   Enterprise Business
•   Security
•   BizSpark Plus
•   MSDN
•   Support
•   Technical Resources
GO CHECK IT OUT

www.windowsazure.com

More Related Content

Gaming across multiple devices

  • 1. Gaming across Multiple Devices Cloudshow Patric Boscolo Tom Wendel Developer Evangelist Developer Evangelist Microsoft Deutschland GmbH Microsoft Deutschland GmbH patbosc@microsoft.com twendel@microsoft.com http://blogs.msdn.com/patricb http://blogs.msdn.com/twendel/ @patricsmsdn @bobstriker
  • 3. 12:38 We talk about … AGENDA
  • 4. ?
  • 5. = Managed for You Standalone IaaS PaaS SaaS Servers Applications Runtimes Database Operating System Virtualization Server Storage Networking
  • 6. What is Windows Azure? Cloud Services Developer Resources Runtime, Storage, Database, Mess Templates, Deployment aging, Identity, Caching, … Tools, SDK‘s, Emulators, …
  • 7. Maintanance in the Cloud Your Application Access to the Cloud Runtime, Storage, Database, Mess aging, Identity, Caching, … Your Application
  • 8. Motivation Logic
  • 11. Microsoft Data Center Dublin http://blogs.technet.com/b/msdatacenters/archive/2009/12/18/microsoft-receives-leaders-award-for-innovation-in-the-mega-data-centre.aspx http://www.microsoft.com/presspass/emea/presscentre/pressreleases/DublinDataCentrePR_240909.mspx http://www.sustenergy.org/index.php?option=com_see_projectview&view=see_projectdetail&tagId=-1&countryID=-1&catId=-1&pageNum=0&projectid=2524 http://re.jrc.ec.europa.eu/energyefficiency/pdf/CoC%20DC%20new%20rep%20form%20and%20guidelines/Best%20Practices%20v2.0.0%20-%20Release.pdf http://blogs.msdn.com/b/msenterprise/archive/2011/04/22/earth-day-2011-cloud-computing-can-it-help.aspx
  • 15. Industry PUE  2.4 Microsoft Global PUE  1.6 Dublin PUE  1.25
  • 16. Costs Cooling 25% IT Equipment 50% Air Transport 12% Power Supply, UPS Light 10% 3%
  • 21. Memory Management Device Management Process Management Hypervisor Hypervisor
  • 22. Fabric Controller Host Windows Azure Operating System Hypervisor
  • 23. Fabric Controller Host Windows Azure Operating System Hypervisor
  • 25. Web Role IIS hosted application Worker Role Runtime arbitrary application VM Role selfconfigured virtual machine
  • 26. Deploy to Azure MY FIRST CLOUD APP
  • 29. There is no place like 127.0.0.1
  • 30. There is no place like Production
  • 31. vertical vs. horizontal scale vertical == more resources horizontal == more instances
  • 32. Meine Superawesome Webseite http://myapp.cloudapp.net Meine Superawesome Webseite Scale me too!!! ;-) http://myapp.cloudapp.net Meine Superawesome Webseite http://myapp.cloudapp.net 1 Database n Webroles • It„s better to have 50 times 1GB db, then a single 50GB db. • How to scale a db? • Partitioning • Alpha • User • Usage • Date
  • 34. Lessons learned… A FEW TIPPS BY SUCCESSFULL APPS
  • 37. Table Queue Blob
  • 39. Statless vs. Statefull Apps Instance 1 Loadbalancer Instance 2 http://myapp.cloudapp.net Different State
  • 40. SQL Azure / Windows Azure Table Storage Caching
  • 43. Browser / Control Webpage WebClient Json via MVC Proxy WCF Frontend Context oData WebClient CDN Logic Socket Socket Context Table SQL
  • 44. Browser / Control Webpage Json via MVC Json Client WCF Frontend oData WebClient CDN Logic Socket Socket Context Table SQL
  • 45. Content Delivery Network (CDN) Prop. “hops” oder “poor links” Blob Storage Less hops CDN Closest Point of Presence X Public Container X Blob header determines DNS name resolves time-to-live at the edge to closest POP
  • 46. Content Delivery Network (CDN) • 24 global distributed CDNs (99.95% availability) • Setup a CDN via Management Portal – Generate 2 URLs for diffrent distributions • Direct Access: http://myacct.blob.core.windows.net/images/myimage.jpg • Access via CDN: http://azXXXX.vo.msecnd.net/images/myimage.jpg – CNAME Mappings for CDN URLs http://blog.smarx.com/posts/using-the-new-windows-azure-cdn-with-a-custom-domain • CDN for WebApps and Windows Azure Storage – CSS, Images, ... • Smooth streaming available as CTP
  • 47. Lifetime of CDN Content • Per Default Content stays alive for 72h • Setup TTL via „cache control header“ x-ms-blob-cache-control: public, max-age=<value in seconds> – hours, days, weeks – longer remaining objects reduces: • costs, latency, other caches • Usage of versioned URIs to change Content
  • 48. Versioning of URLs Superawesome WebApp http://myapp.cloudapp.net … <img src="http://azXXXX.vo.msecnd. CDN net/images/logo.2011-11- net/images/logo.2011-09- logo.2011-09-16.png 22.png" 16.png" /> logo.2011-09-16.png … logo.2011-11-22.png logo.2011-11-22.png • Easy to manage Rollback and different Versions • Enables A/B Tests
  • 49. CDN für Web Apps • CDN support for Websites http://blog.smarx.com/posts/using-the-windows-azure-cdn-for-your-web-application – Default URL: http://foo.cloudapp.net/default.aspx – CDN URL: http://azXXXX.vo.msecnd.net/default.aspx – Cached from: http://foo.cloudapp.net/cdn/default.aspx • CNAME & HTTPS support • Important! The „cache control headers“ must be edited in order to use the OutputCache Module via Webapps http://blogs.msdn.com/b/scicoria/archive/2011/07/10/hosted-service-as-a-windows-azure-cdn-origin-tips.aspx
  • 51. Why Microsoft? • Enterprise Business • Security • BizSpark Plus • MSDN • Support • Technical Resources
  • 52. Why Microsoft? • Enterprise Business • Security • BizSpark Plus • MSDN • Support • Technical Resources
  • 53. Why Microsoft? • Enterprise Business • Security • BizSpark Plus • MSDN • Support • Technical Resources
  • 54. GO CHECK IT OUT www.windowsazure.com

Editor's Notes

  1. Macht das Sinn?
  2. Erklären von Fault Domains, Fabric Controller Host + Client
  3. http://www.flickr.com/photos/32975477@N02/4566833793/