Windows Azure Platform
Customer Solution Case Study
/ Microsoft Uses Cloud Solution to Develop Scalable Gaming Web Services in Record Time
Overview
Country or Region:United States
Industry:Software engineering
Customer Profile
Based in Redmond, Washington, Microsoft Corporation is a global leader in software, services, and Internet technologies for personal and business computing.
Business Situation
With an aggressive deadline looming, the Windows Gaming Experience team needed to quickly develop web services with a scalable architecture in order to support the company’s online gaming strategy.
Solution
The team developed and deployed nine services on the Windows Azure platform in less than five months—in plenty of time to support the launch of Bing Games on the search engine’s latest release.
Benefits
  • Fast time-to-market
  • Easy scalability
  • Agile development
  • Cost-effective model
/ “Point blank, there is no way we could have built these services in the timeframe we had to work with by using anything other than Windows Azure.”
Eric Hyman, Partner Architect, Windows Gaming Experience, Microsoft Corporation
The Windows Gaming Experience team at Microsoft Corporation needed to develop multiple web services to support its online gaming platforms. With the popularity of online games, the team needed services that could scale up to handle tens of millions of gamers. A traditional infrastructure could take at least a year to build, but the team had only five months to develop and deploy its services in order to support the launch of Bing Games. The Windows Gaming Experience team used the Windows Azure platform to address its hosting, compute, and storage needs for the web services and, by doing so, supported an agile development method and brought its services to market in only five months. The cost-effective infrastructure supported nearly two million concurrent gamers at launch, and the team can easily scale up the infrastructure to support five times the amount of users.

Situation

Microsoft Corporation operates in more than 100 countries, and it offers technology solutions to individuals and organizations in a variety of industries. But it’s not all work at Microsoft—the software development company has also invested in the entertainment industry, delivering multiple gaming platforms, including the popular Xbox video game system and MSN games, to millions of casual gaming enthusiasts.

As Microsoft planned to release the next version of the Bing search engine in June 2010, the Windows Gaming Experience team decided to embark on its mission to integrate Microsoft games with social networking sites. This next version of Bing would include several features that would help support a positive experience for gamers. For instance, users would be able to search for casual games and, with a single click, play the game inside their Internet browser. Microsoft wanted the team to create security-enhanced web services that would enable fun, social features in the Bing Games experience, such as the ability to invite and play games with friends from social networks, such as Facebook, and share game scores.

Creating new services to enhance the Microsoft gaming experience posed several challenges for the Windows Gaming Experience team. First, social games have the potential to go viral and attract millions of users in a short period of time. In fact, some popular games on social networking websites have served 20 million users in the first month of operation. To be successful in the social gaming market, the team needed an elastic infrastructure that could not only handle an increase in traffic, but also scale up quickly in the case of unpredictable, high-volume growth. At the same time, considering the ebb and flow in the popularity of individual games, the team needed an infrastructure that it could quickly scale down for cost efficiency.

The Windows Gaming Experience team also needed to bring its web services to market quickly. The small team of seven, including four developers, was charged with developing the game-related services in less than five months—in time for the June release of the next version of Bing, which was to launch with several high-profile public relations and marketing campaigns. Not unlike many IT projects, however, engineering and operations resources were stretched in multiple directions and juggling other high-priority projects.

The team considered using the traditional data center that Microsoft has in place for other online services, but it needed a solution with even more dynamic scalability. “We had a five-month deadline,” explains Eric Hyman, Principal Architect for the Windows Gaming Experience team at Microsoft Corporation. “With resource constraints and our need for a highly scalable infrastructure, it seemed nearly impossible to meet that deadline even by taking advantage of a traditional rack server infrastructure that Microsoft had in place for other services.”

Solution

In February 2010, the Windows Gaming Experience team decided to use the Windows Azure platform to host its web services and address its need for a highly scalable infrastructure. Windows Azure is the development, service hosting, and service management environment for the Windows Azure platform. It provides developers with on-demand compute, storage, and bandwidth, and a content distribution network to host, scale, and manage web applications through Microsoft data centers.

Developed Nine Services to Support Online Gaming Experiences

In a little more than three months, and in time for the launch of Bing Games, the team built nine services that support gaming experiences. The team used the Microsoft Visual Studio 2008 Professional development system to develop the services from the ground up.

The nine services are grouped into two different categories: hosting and gaming. The three hosting services are used to host the front web portals where gamers can access games, such as the MSN portal and Bing Games. These services host the Game Hub feature, which displays the social components of the gaming experience, such as leader board information, gamers’ favorite games, and social networking feeds (see Figure 1). There are six gaming-related services on the back end. These services manage gamer scores, preferences, and settings; gaming binaries and metadata; social gaming components; security token services to validate user authenticity; and social services, such as the ability to publish high scores to Facebook and various RSS feeds.

Built a Scalable Infrastructure for Computing and Storage

The Windows Gaming Experience team uses the Windows Azure platform to fulfill the hosting, compute, and storage needs that its web services require. For the June launch, across all nine of the game services, the team used hundreds of instances of Windows Azure for the back-end, compute services, and more than one hundred Web role instances to host the various gaming portals. The infrastructure supported close to two million users for the launch, but the team can quickly scale up to handle additional load as the games attract more users, whether through steady growth or unpredictable burst traffic in response to a popular game.

The team uses Microsoft SQL Azure to store game data and metadata, such as leader board information. SQL Azure offers a highly available, full relational database in the cloud and is built on Microsoft SQL Server 2008 data management software. The team defined a partitioning strategy that provides concurrent access for millions of users, without causing latency issues. The team also defined a database strategy that will support future growth—200 SQL Azure databases that can each store 10 gigabytes of data, for a total of 2 terabytes capacity.

To further enhance the performance of the online games, and to avoid latency issues with a worldwide audience, the Windows Gaming Experience team takes advantage of the Windows Azure Content Delivery Network. Developers use the network to cache and deliver content at strategically placed locations around the globe. The team uses the Content Delivery Network to store assets for the Flash-based games that it delivers through Bing Games and MSN Games. “Gamers expect that if they can play a game within the search engine on their browser, they will get the same performance and response from the gaming experience that they would with a simple search using Bing,” explains Hyman. “The Content Delivery Network enables us to deliver that level of performance and avoid latency for users around the world.”

Benefits

The Windows Gaming Experience team used the Windows Azure platform to develop and deploy nine services for multiple Microsoft gaming platforms, including Bing Games, in time to meet an aggressive launch schedule. The small team took advantage of the agile development methodology to bring its services to market and established a cost-effective, scalable architecture that can support tens of millions of concurrent users. “Point blank, there is no way we could have built these services in the timeframe we had to work with by using anything other than Windows Azure,” says Hyman.

Fast Time-to-Market

To support other initiatives and prepare for the launch of the next version of Bing, the Windows Gaming Experience team needed to develop and deploy its services in only five months. So it decided to use the Windows Azure platform instead of a traditional on-premises solution or virtualized servers. Although the aggressive schedule seemed impossible, the team exceeded its goal and delivered its services in three months and one week.

“Realistically, to build an infrastructure to handle peak traffic would have taken a year without Windows Azure,” says Craig Osborne, Principal Program Manager on the Windows Gaming Experience team at Microsoft Corporation. “We would have been lucky to even have machines racked by the time we wanted to launch our services with a traditional architecture.”

Easy Scalability to Meet Current and Future Demand

By using Windows Azure and SQL Azure for its compute and storage needs, the Windows Gaming Experience team is confident that it has the scalability it needs to grow or shrink its infrastructure according to customer use demands. At the time that Bing Games launched, the gaming platform could support millions of concurrent users. However, the team has compute and storage resources in reserve that will allow it to scale up to support at least five times the number of concurrent users, and the infrastructure can easily scale up to support tens of millions of users.

“Windows Azure and SQL Azure give the elasticity that we need to support the tens of millions of users we might see with a popular game. We would not have gained this scalability with any other infrastructure,” says Osborne. In addition, the team is building custom components that will give it the ability to dynamically scale and automatically add or remove compute and storage instances as its services reach specified capacity levels for a determined period of time.

Agile Development

With a small team, the Windows Gaming Experience team rapidly built the services using an agile development method. Developers created the services so quickly due, in part, to the familiar development environment that Windows Azure offers.

In addition, the ability to quickly scale also supported the team’s development cycle. Leading up to the launch, the team developed and deployed just one instance of Windows Azure. For testing purposes, the team tried out the scalability of Windows Azure, increasing its instances to production levels—hundreds of instances—and scaling down to a single instance in just one day without additional operations help. “To do that in a traditional environment would take weeks of planning and hours of coordination with operations teams. We did it ourselves in a couple of hours,” says Osborne. “The flexibility of Windows Azure is what helps facilitate that agile development environment.”

Cost-Effective Model

By using the Windows Azure platform, the Windows Gaming Experience team benefits from scalable infrastructure that is already in place at Microsoft data centers. “What is great about Windows Azure is that, even though we’re supporting tens of millions of users, we don’t have to purchase racks and racks of servers,” explains Hyman. “Instead, we simply add compute and storage instances as we need them, paying as we go and only paying for what we use.”

In addition, the team does not have to maintain servers as it would in a traditional infrastructure. “Unlike other services that support millions of users, we don’t need an army of support staff,” says Osborne. “In total, Windows Azure is 20 times less expensive compared to a traditional infrastructure—it’s so amazing.”

Windows Azure Platform

The Windows Azure platform provides an excellent foundation for expanding online product and service offerings. The main components include:

  • Windows Azure. Windows Azure is the development, service hosting, and service management environment for the Windows Azure platform. It provides developers with on-demand compute, storage, and bandwidth, and a content distribution network to host, scale, and manage web applications through Microsoft data centers.
  • Microsoft SQL Azure. Microsoft SQL Azure offers the first cloud-based relational and self-managed database service built on Microsoft SQL Server 2008 technologies.
  • Windows Azure AppFabric. WithWindows Azure AppFabric, developers can build and manage applications more easily both on-premises and in the cloud.

−AppFabric Service Bus connects services and applications across network boundaries to help developers build distributed applications.

−AppFabric Access Controlprovides federated, claims-based access control for REST Web services.

  • Microsoft Codename "Dallas." Developers and information workers can use the new service code-named

Dallas to easily discover, purchase, and manage premium data subscriptions in the Windows Azure platform.

To learn more about the Windows Azure platform, visit: