I have to build a web application that's similar to a "branch/store locater". A user types in his address and the web application will plot nearby stores on a map.
One of the requirements is:
"The web application must support 100 simultaneous users and up to 5GB/day transfer volume."
Much of the transferred data will be text and GUI images.
So my questions are:
I've worked on high traffic applications before, but I was never the architect. So although I'm aware of some (not all) strategies for managing high-traffic scenarios, I'm not familiar with their actual implementation.
Can someone offer me advice, feedback, or suggested research? Did I overlook anything?
**Also, I'm building this with LAMP with Smarty.
That's only 60kb per second (assuming running over 24hr), but you'll likely hit bursts during peak hours, so you'll need to be able to handle that. 100 simultaneous users is nothing even for an older Apache-based server.
I'm not sure memcached would really help you out so much, but its worth adding, as is APC for your PHP cahcing, and I would at least architect it to be able to be load balanced - check out ultramonkey for some good documentation on how to get that going transparently, you'll need to ensure that any user session that comes in doesn't store its session data in a per-host way; you need to consider what happens is a user hits lead-balanced server A in one call, and then hits server B in another. (ie store user id and data in the DB, not in the filesystem).