Building High Availability of online gaming in Azure IaaS

Usually after migrating gaming solution to Azure IaaS or integrating azure services with gaming modules, customer might be impacted by monthly Azure backend update or exceptional backend physical issues, that resulted in availability loss and business degrade to customers. In order to improve service availability and avoid troubles as much as possible from those VM reboot by either Azure platform upgrade or other unexpected reasons, here below concluded 4 designing proposals to relieve and overcome such headaches.

Scenario 1: Solution migrated from On Premise

20160130033153

Solution on Azure:

  1. Setup VM solutions in multiple datacenters.
  2. Solutions from different datacenter were connected to on premise DC via virtual networks.
  3. Each solution has its own cloud domain, like test.chinacloudapp.cn.
  4. Only primary solution is active at most time, while other solution VMs are shut down at that period.
  5. Gaming is served at a custom name like www.game.com, the custom domain is pointing to cloud domain, which is actually working.

Actions to take:

  1. Gaming Company has got the notification on when the primary solution VM will be rebooted/updated.
  2. Notify gaming players the time of their following solution switch.
  3. Gaming Company starts the secondary solution VMs by a script or management portal.
  4. Once a secondary solution is up, Gaming Company configures its custom domain to point to the domain of secondary solution.
  5. After backend reboot/update is finished, Gaming Company can start the primary solution back with same way.

Scenario 2: Solution deployed with Azure features

20160130033233

Solution on Azure:

  1. Setup VM solutions in multiple datacenters.
  2. Solutions from different datacenter were connected to on premise DC via virtual networks.
  3. Each solution has its own cloud domain, like test.chinacloudapp.cn.
  4. Only primary solution is active at most time, while other solution VMs are shut down at that period.
  5. Gaming is served at a custom name like www.game.com, the custom domain is pointing to traffic manager domain, which is load balancing multi cloud services with failover strategy. (traffic manage is reported to be released in China Azure very soon, in the short time before it is released, custom name can be set to map cloud domain.)
  6. Each solution is decoupled into multi layers, like cache layer and DB layer, and in each layer, high availability is implemented with Azure IaaS feature.
  7. Multiple cloud services can share the same database layer or cache layer via virtual network, the shared layers can be hosted either in Azure end or on premise datacenter.
  8. In order to set up database layer and cache layer, customer can refer to traditional expertise to build service cluster.

Actions to take:

  1. Gaming Company has got the notification on when the primary solution VM will be rebooted/updated.
  2. Notify gaming players the time of following switch.
  3. Gaming Company starts the secondary solution VMs by a script or management portal.
  4. If traffic manager is not used here, once a secondary solution is up, Gaming Company configures its custom domain to point to the domain of secondary solution.
  5. After backend reboot/update is finished, Gaming Company can start the primary solution back with same way.

Scenario 3: Solution integrated with Azure services

20160130033339

 

Solution on Azure:

  1. Setup VM solutions in multiple datacenters.
  2. Solutions from different datacenter were connected to on premise DC via virtual networks.
  3. Each solution has its own cloud domain, like test.chinacloudapp.cn.
  4. Only primary solution is active at most time, while other solution VMs are shut down at that period.
  5. Gaming is served at a custom name like www.game.com, the custom domain is pointing to traffic manager domain, which is load balancing multi cloud services with failover strategy. (traffic manage is reported to be released in China Azure very soon, in the short time before it is released, custom name can be set to map cloud domain.)
  6. Each solution is decoupled into multi layers, like cache layer and DB layer, and in certain layer, high availability is implemented with Azure IaaS feature.
  7. Multiple cloud services can share the same database layer via virtual network, the shared layers can be hosted either in Azure end or on premise datacenter.
  8. In order to set up database layer, customer can refer to traditional expertise to build service cluster.
  9. Cache layer is realized by applying Azure caching service instead of customer’s own caching solution. (currently managed cache and Redis cache is not released in China Azure, but it is widely used in global, suppose that will come to China customers soon)

Actions to take:

  1. Gaming Company has got the notification on when the primary solution VM will be rebooted/updated.
  2. Notify gaming players the time of following switch.
  3. Gaming Company starts the secondary solution VMs by a script or management portal.
  4. If traffic manager is not used here, once a secondary solution is up, Gaming Company configures its custom domain to point to the domain of secondary solution.
  5. After backend reboot/update is finished, Gaming Company can start the primary solution back with same way.

Scenario 4: Solution integrated more with Azure services

20160130033416

This solution works similar to the 3rd one above, the main highlight in this one is sharing database layer between multiple application layers and that will try to reduce the impact at most during backend update and manual switch, database layer can be done with SQL cluster. Since one database layer can be filled with multiple servers and is distributed in several upgrade/fault domains in Azure end, the database layer should still work fine even one/two machines get restarted/recycled.

One thought on “Building High Availability of online gaming in Azure IaaS”

  1. Greetings I am so grateful I found your webpage,
    I really found you by accident, while I was browsing on Bing
    for something else, Nonetheless I am here now and would just like to say thanks a lot for
    a incredible post and a all round exciting blog (I also love the theme/design), I don’t have time to browse it all at the moment
    but I have saved it and also added your RSS feeds, so when I have
    time I will be back to read more, Please do keep up the excellent
    job.

Leave a Reply

Your email address will not be published. Required fields are marked *