Find out why Next Games, creator of #1 mobile game, The Walking Dead: No Man's Land, chose to implement their backend services with Azure DocumentDB
The Walking Dead: No Man's Land game soars to #1 supported by Azure DocumentDB
By Aravind Ramachandran as written on Azure.com
Next Games, is a fast growing gaming company based in Helsinki, Finland. On October 7, 2015, AMC and Next Games released The Walking Dead: No Man’s Land, the official mobile game based on AMC’s record-breaking TV series, for iOS. Within a week, the game quickly skyrocketed to the #1 spot on Apple’s Top Free App chart.
To handle the massive scale and performance requirements for their highly anticipated game (over 1,000,000 downloads and 31M minutes played on opening weekend alone), the Next Games development team chose to implement their backend services on Azure. For their persistence layer, which needed to ingest massive volumes of game profile and state metadata while serving low latency queries (under 10 ms), they selected Azure DocumentDB, the fully managed NoSQL JSON database.
The Walking Dead: No Man’s Land is a turn-based mobile strategy game that supports single player and multiplayer campaigns. In the game, you build bases, find more survivors, upgrade your skills and weapons and carry out successful missions, much like in the popular TV show. You play with an online connection; player and guild metadata must be persisted and retrieved frequently during gameplay.
Why Azure DocumentDB?
A key requirement for the Next Games development team was a database that could respond seamlessly to the massive scale and performance demands of this hotly anticipated game.
With millions of users expected to be online on day one, the database had to handle numerous real time player metadata updates as players logged in and logged out, AND elastically scale performance up or down as required.
Responsiveness was critical to user experience. Saving player profiles and score information had to complete within milliseconds to avoid any lags during game play.
In addition to simple key-value lookups, the data tier needed to filter against different properties in real-time, e.g. locate players by their internal player IDs, or their GameCenter, Facebook, Google IDs, or query based on player membership in a guild.
The game includes social features including in-game chat messages, player guild memberships, challenges completed, and a social graph, which required a flexible schema. Next Games also need to perform ordering against various groupings of players (ex. by country, or social network) to build real-time “high score” leaderboards.
Time to market was critical for Next Games, and the team made a conscious decision to develop only with platform-as-a-service (PaaS) offerings. It was important that the database required minimal setup and management work to allow for rapid iteration.
After evaluating various solutions, Next Games chose Azure DocumentDB as a core component of the game since it met and exceeded all these requirements.
How they used DocumentDB
Next Games created DocumentDB accounts for their development, load testing and production environments to store player metadata and social grouping data. For partitioning data within these accounts, the Next Games team used the DocumentDB .NET SDK and the hash partition resolver to distribute data among DocumentDB collections using consistent hashing. DocumentDB collections were configured with the S3 performance level for the highest throughput and best performance, setup with string range indexing policy for efficient and flexible sorting.
The Next Games team implemented a repository class that performed writes using atomic upserts, and reads using one of the following three query patterns:
Single partition queries based on a single player ID
Multi-partition queries with a fixed page size/maximum item count that scanned DocumentDB partitions in series (to list the top N groups or friends for a player)
Multi-partition queries that scanned partitions in parallel for lowest latency using ResolveForRead, e.g. locating players through a “secondary index” e.g., their Facebook ID, Google ID, or GameCenter ID
Another key feature in the game was displaying the highest scores in real-time. This included global high scores, high scores by a gamer’s country, and among their group of friends. This was implemented as a service which performed intra-collection sorting using DocumentDB query, and subsequently aggregated results as separate “high score” documents also stored as JSON documents within separate collections.
Cloud.gov to give agencies a PaaS
Cloud.gov to give agencies a PaaS
By Amanda Ziadeh as written on Gcn.com
OAKLAND, Calif. -- Agencies will soon have a faster and easier way to develop, run, and manage web applications without the complexity and cost of building and maintaining infrastructure.
Cloud.gov, a joint project of the U.S. Digital Services and the General Services Administration’s 18F agile development shop, will be a platform-as-a-service option that gives agencies an already-stable infrastructure and lessen the burden on IT departments.
According to Noah Kunin, 18F's director of delivery architecture and infrastructure services, the goal with this project was to “bureaucracy hack” a way to the cloud.
When agencies build a new system or implement new technology, they must comply with a long checklist of federal regulations, acts and schedules. Kunin, who discussed Cloud.gov at the Code for America Summit on Oct. 1, told the audience he found he had to read through 4,006 pages of regulatory guidance.
The lengthy development process also affects planning. “In order to create rational plans around technology, we have to have some idea of what our cycle time for our innovations are,” Kunin said. A minor release around new technology, Kunin calculated, would take six to 14 months. However, difficulties along the way with the checklist of compliances could heavily prolong delivery and cause delays.
To fix this process before shipping the final product, Kunin and his team created a new Cloud.gov back-end service. Launching “very soon,” according to Kunin, the platform is a pre-approved PaaS for government, built as a true production cloud that gives agencies a ready-to-use infrastructure upon which to build.
When Cloud.Gov debuts, Kunin said, agencies will not have to wait for approvals or juggle requests when creating applications. In the meantime, users can access Cloud.18F.gov to learn more, receive updates and explore the service’s capabilities.
Other projects that USDS and 18F announced at the summit include an improved, scalable login system for HealthCare.gov, a revamped electronic healthcare information network for the Department of Veterans Affairs, a replacement for VA's outdated Veterans Appeals Control and Locator System, and a preview of the Federal Election Commission's efforts to better consolidate and share campaign finance data online.
What is Cloud Computing?
"Cloud Computing", by definition, refers to the on-demand delivery of IT resources and applications via the Internet with pay-as-you-go pricing.
Whether you are running applications that share photos to millions of mobile users or you’re supporting the critical operations of your business, the “cloud” provides rapid access to flexible and low cost IT resources. With cloud computing, you don’t need to make large upfront investments in hardware and spend a lot of time on the heavy lifting of managing that hardware. Instead, you can provision exactly the right type and size of computing resources you need to power your newest bright idea or operate your IT department. You can access as many resources as you need, almost instantly, and only pay for what you use.
How Does it Work?
Cloud Computing provides a simple way to access servers, storage, databases and a broad set of application services over the Internet. Cloud Computing providers such as Amazon Web Services own and maintain the network-connected hardware required for these application services, while you provision and use what you need via a web application.
Six Advantages and Benefits of Cloud Computing
Trade capital expense for variable expense - Instead of having to invest heavily in data centers and servers before you know how you’re going to use them, you can only pay when you consume computing resources, and only pay for how much you consume.
Benefit from massive economies of scale icon - Benefit from massive economies of scale - By using cloud computing, you can achieve a lower variable cost than you can get on your own. Because usage from hundreds of thousands of customers are aggregated in the cloud, providers such as Amazon Web Services can achieve higher economies of scale which translates into lower pay as you go prices.
Stop guessing capacity - Eliminate guessing on your infrastructure capacity needs. When you make a capacity decision prior to deploying an application, you often either end up sitting on expensive idle resources or dealing with limited capacity. With Cloud Computing, these problems go away. You can access as much or as little as you need, and scale up and down as required with only a few minutes notice.
Increase speed and agility - In a cloud computing environment, new IT resources are only ever a click away, which means you reduce the time it takes to make those resources available to your developers from weeks to just minutes. This results in a dramatic increase in agility for the organization, since the cost and time it takes to experiment and develop is significantly lower.
Stop spending money on running and maintaining data centers icon - Focus on projects that differentiate your business, not the infrastructure. Cloud computing lets you focus on your own customers, rather than on the heavy lifting of racking, stacking and powering servers.
Go global in minutes - Easily deploy your application in multiple regions around the world with just a few clicks. This means you can provide a lower latency and better experience for your customers simply and at minimal cost.
Types of Cloud Computing
Cloud computing has three main types that are commonly referred to as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Selecting the right type of cloud computing for your needs can help you strike the right balance of control and the avoidance of undifferentiated heavy lifting.