So hosting complicated programs online causes much pain.
This discussion talks about Zynga adding up to 1000 servers (including the Amazon cloud servers) a week to keep up with their huge host of customers. What with over 200 million customers per month, they needing a server for every couple hundred people, they now have tens of thousands of servers running their games. Running through a petabyte of throughput a day. Insane. 7% of their users, on average, are online playing at any time. Even cutting that number in half so it's 7% of the monthly users online at any time during 12 hours of every day, that means that over 5 billion hours get spent on these games every month.
What could we accomplish with 5 billion hours of free time? Hmm...
This is a game company site outlining what they themselves did, combining Amazon's cloud with their own servers, running Ruby on Rails and Javascript combined with Flash and their own custom "GAML" engine to get things going.
The site offered a lot of other great details. For instance, through micropayments, a well-performing online game world company can expect to make between $1-$2 (amortized) per user per month (ARPU). From here you can see that estimates are that Zynga makes the most from their Poker game at $2 ARPU, whereas farmville only pulls in $0.50 ARPU. Their war games, surprisingly, are pulling in about $1.50 ARPU per month, but from the first link's discussion, it probably costs them a ton to move all the data around in those ones.
The original discussion from hacker news also mentions that the average server should be able to handle about 500 requests per second on average and 4000 per second during peak times. These are smaller requests, like what we'd be doing with a bot that is verifying itself. If our bots check in every 15 minutes, that means we could easily manage a hundred thousand, or even a couple hundred thousand bots with a single server.
This is a cool article about how Zynga uses Amazon's EC2, with an Apache PHP front end, memcached system for active user play, and mySQL for their databases. Here is a blurb about memcached and how the Black Hat community pointed out a fatal error many companies were making, exposing all that data to anyone who cared to connect and listen. Zynga probably has it patched by now. Here is where you can find an article and tools for messing around with unsecured memcaches.
No comments:
Post a Comment