High traffic hosting facebook app (game)

We are currently developing a high traffic facebook app. all traffic will be in one month, where from 500,000 to 1,000,000 expected users are expected. after this month the game is over and we have a winner, so the application will be archived.

Currently, we plan to develop an application with rubies on rails and look for hosting options that can work with traffic. the problem is not so much in users as in peak values: we will have about 500,000 requests arriving daily at short intervals (say, within 3 minutes in the worst case)

we expect from 500,000 to 1,000,000 users of the application, with peaks at 13:00 (GMT + 1 time zone), where most (up to 80% of users) will send most requests. requests from June 11 to 11.july - after that the application / game is closed / completed.

We are currently developing an aggressive caching mechanism - currently we are thinking of 2 or 3 small applications / web services that will handle the load.

the load is distributed as follows: a) the main application, cached data (11 screens, 200 thousand each) b) voting: every day until 1:00 pm (GMT + 1 time zone) - each user votes with the transmitted data of 10 000, high matching peak values!

questions:

  • Is there any special app setting that is recommended?
  • Are there any hosting partners that can be recommended?

thanks!

+4
source share
2 answers

Check out some of the automated scalable cloud computing solutions, such as EC2 AutoScaling http://aws.amazon.com/autoscaling/, you set options as to when EC2 will spin up new instances for you.

If you really want to be careful, you can build a botnet to simulate traffic to your website http://www.talcottsystems.com/articles/build-your-own-botnet-with-ec2-and-capistrano-to- load-test-your-server-cluster-before-launch /

+2
source

Well, if the content you serve is cached, then you can handle it well, multiple instances of nginx can serve almost unlimited static pages.

Voting seems less enjoyable, as it must take place simultaneously. The new heat for high simultaneous loads seems to be node.js, but I have no experience with this.

I really think that the vote is actually not very strong, so instead of making a full call to the rail stack, try just writing a small method that does the voting. This saves you from loading the ActionController, ActionView, and if you write your voices in the database in plain SQL, also ActiveRecord.

+3
source

Source: https://habr.com/ru/post/1310608/


All Articles