First days online : how not to kill your site
- Cache as much as you can. Any pages that are dynamically created should be cached so that users will get a static version. In page components that query the db should also be cached.
- Try using an external service like Amazon S3 to serve images and multimedia (or have it ready to use if the site suddenly gets hit with a ton of traffic).
Going live gradually can worked for SOF and SF because they already had built-in publicity and demand, due to the popularity of Jeff and Joel's blogs. If you do not have a near-guaranteed userbase like they did, then going live gradually could be fatal.
I would avoid limiting by concurrent sessions, as it is hard to define the end of a session caused by inactivity. If a user leaves for 15 minutes and tries to reload their page, only to get an error message - you just lost a user.
How much planning went into your data model ? Have you designed a schema that will allow you to ramp up your query volume without expensive sorts, binary columns, or complex joins ? Have you tuned your database backend (assuming you have one) ?
How are you serving your 'big images' ? Can you split that out into a separate web server process, even a separate domain ?
Have you load tested your system ? Tools like ApacheBench and Siege are invaluable.
Is all your configuration in svn ? Is your deployment automated ? You'll be glad of that when you have to roll our application out to the 2nd server.