Wooga, a startup based in Berlin and founded in 2009, develops games for social networking sites that users can play on Facebook or on their smartphones and tablets as well as cross-platform. The company’s games (which include Monster World, Magic Land, Bubble Island and Diamond Dash) are available in up to 20 languages. More than 250 employees from over 40 countries work to develop new games in small, independent teams of around 15 people. Each team is free to choose their own tools and decide whether to host games in the cloud or on a physical machine.
Wooga needed a cloud solution specifically for social games, which have a variable and unpredictable number of players who require quick reaction speeds and high server reliability. These browser-based games can attract significant numbers of players in a short time. For example, Wooga’s Monster World has approximately two million players per day, corresponding to 15,000 requests per second at its peak, according to the company. Monster World runs entirely on the AWS Cloud. Another Wooga game, Magic Land, has 850,000 players per day, corresponding to 5,000 requests per second at its peak.
A game’s success or failure is determined largely by adoption rates—the number of users who decide to play. The number of players can be unpredictable; for some games, that number increases rapidly and then drops again. The challenge for Wooga is to continuously engage the players’ interest and provide for a high retention rate.
Monster World is a game with classic game architecture, using a stateless application server and central databases. Magic Land, by contrast, sits on non-standard architecture with stateful application servers, using Amazon Simple Storage Service (Amazon S3) instead of databases. See Figure 1 below for a screen capture of Monster World.
Figure 1: Monster World Screen Shot
When Wooga decided to host Monster World and Magic Land on AWS, they needed a solution that would provide them with:
Flexible scalability of compute capacity. Games draw an unpredictable number of players, making it difficult to calculate the number of instances needed at any given time. Because Wooga’s capacity needs are highly variable, the server instances used need to be determined quickly and accurately.
A high degree of automation to enable the rapid deployment of a large variety of tools, as quick reaction speeds are a decisive factor for social games in the market.
Solid server reliability. If a game is offline, players will move on to the next.
A solution that would work for small, agile teams, as Wooga runs a lean engineering organization.
Hosting two of Wooga’s most popular games on the cloud meant putting a great deal of importance in whatever cloud solution they choose. “You’re putting your equity into your provider’s hands,” says Jesper Richter-Reichhelm, head of engineering at Wooga. “For us to move to the cloud, AWS was the only choice.”
Why Amazon Web Services
Wooga requires easily scalable compute capacity to help the system adapt to fluctuating traffic volumes. The company also needed a solution that would support their lean resource allocation model, enabling small teams to work quickly to bring a game to market. AWS, with its flexibility and ease of use, provided this as well.
For Monster World, developers use AWS OpsWorks, a devops solution for managing applications of any scale or complexity on the AWS Cloud. AWS OpsWorks features an integrated experience for managing the complete lifecycle of software running on Amazon Elastic Compute Cloud (Amazon EC2), including automation tools that let Wooga adapt to the company’s computing needs flexibly. Acquiring and launching new server instances only takes a few minutes, so that capacity can be quickly scaled up or down. Billing by the hour ensures that even with strong fluctuations in demand, the company only pays for what they use. “AWS OpsWorks gives us the tools we need to automate operations,” Richter-Reichhelm says. “We can scale Monster World to millions of users without ever needing more than two back-end developers.”
Wooga uses Amazon Elastic Block Store (Amazon EBS) with Amazon EC2 instances to store social gaming data. Amazon EBS allows for storage outside the instances, thus providing independence from an instance’s lifespan. Amazon Simple Storage Service (Amazon S3) is also used for Wooga’s games, providing a simple web service interface designed to store and retrieve any amount of data at any time, from anywhere.
“With AWS, we can make decisions very quickly, on an hourly basis, whenever we want,” Richter-Reichhelm says. “Our teams can decide which servers we need, and how many we need, in a very short timeframe. AWS gives us flexibility and good service.”