How to plan for the unknown (with little Linux experience)?

So you’ve got a great business idea, a great prototype of a site running locally with Mongrel on OS X, but then what? This is the situation I’m in. We’ve got an idea that will involve rolling out to communities of anywhere between 4-20k people, one community at a time. So lets say launch day its opened up to a potential user pool of about 5000 at abc.domain.com , then the next week its opened up to another community at xyz.domain.com, and so forth. I have no idea what kind of server setup can handle this. Is a VPS big enough, or even 1 dedicated server? What it only a fraction of the people start using it? How easy is it to ramp up from a VPS to a Dedicated server, or one dedicated server to many? How do you know when you need to (tools, etc.?). On top of this, this will be my first non shared hosting *nix deployement. Is there tools or strategies to simulate bandwidth, etc?

Thanks

blinking bear wrote:

We've got an idea that will involve rolling out to communities of anywhere
between 4-20k people, one community at a time. So lets say launch day its
opened up to a potential user pool of about 5000 at abc.domain.com , then
the next week its opened up to another community at xyz.domain.com, and so
forth. I have no idea what kind of server setup can handle this.

Think about how many requests per second your site will have to deal
with, rather than how many users you're going to have registered. Of
those 5000 users, how many will actually use it in an average day? How
many page requests make up your typical visit? Are they likely to be
concentrated during the lunch hour, or spread out during the day?

And, how long does your app take to respond to the average request?

Your key numbers are how many requests you'll be handling per second,
and how many requests you'll be handling simultaneously.

Is a VPS
big enough, or even 1 dedicated server?

If you can easily afford it, go for the dedicated server. My own
experience is that VPSs are fine for hobby sites and for hosting your
internal development site, but there's nothing like the reliability and
sheer response you can get from having your own box all to yourself.

And unless you're seriously going to be pushing many 10,000s or even
100,000s of requests a day (and chances are, you won't be), one
dedicated server should be plenty to start with.

What it only a fraction of the
people start using it?

Then you pat yourself on the back for being so well prepared, and start
focusing on your marketing plan!

How easy is it to ramp up from a VPS to a Dedicated
server

Easy. You're going from one box to one box. Rails won't notice the
difference.

or one dedicated server to many?

Harder. But you can smooth the process by anticipating this move, and
setting your application up so that you're 'sharing nothing' (e.g.
sessions in database), and so that the various components (web server,
app servers, database server) aren't relying on each other all being on
the same machine.

Finally, this sample chapter from 37s' Getting Real might be worth a
read :wink:
https://gettingreal.37signals.com/samples/37s-scale-later.pdf

Chris

You could let us scale it for you :wink: http://engineyard.com . We are building a service that lets you start with one or two 'slices' in our cluster and then you can scale up to as many as you need when you get the traffic. So each month you can adjust, if you get slashdotted we can add slices for you and then remove them when its over.

-Ezra