Well this is a given right? I've seen this tip given time and time again, dont scale before you have to. Some may completely object to that but if you are a startup and just trying to get going, grab a server or some resources in the cloud, write your minimum viable product and launch. If you cant handle the load, then scale. Yes you should have a "plan" but that doesnt mean you have to execute it until necessary.
I began my life at a startup 1 year after launch. 3 Servers, 1 web server, 2 app/db servers. As load increased and our needs changed we moved to a more complex structure, 2 load balancers with failover, 2 web servers and still 2 app/db servers but beefier. When life got harder we started optimizing web servers software and the database. When traffic grew past that along came another server cluster scaling us to an even greater degree.
Do we deal with hardware ourselves? No, managed hosting with dedicated servers. Why? Because we want to let someone else deal with the hardware problems. The cloud doesnt have the resources we need. We scale when we HAVE to, as in the site is going down every day because we cant handle the traffic. We run leaner than some of our competitors and we know this because some of them have gone public with their costs, number of developers and server architecture.
1. Have a plan
2. Find a hosting company you can scale with easily
3. Use the minimal resources necessary
4. When you have to scale determine the cost of optimization vs just adding more hardware.
5. Be Lean
I guess what I was trying to say was don't worry about over scaling. But take some time to make sure you aren't over scaling for 6 months in a row :-).
So I'd argue.
for #3
3) Don't stress out about the minimal resources necessary from day one. Figure out what the minimal resources are over time, and just take advantage of the fact you can delete servers.
The expense of going with a cloud solution is huge if you have a complicated deployment stack and large hardware requirements. my startup will easily grow into the single 8gig/1tb quad core box we are colocating, and far exceed it when we start seeing some real traffic. From what I expect to need in hardware, I would be sitting at over $3k a month in expense moving to Rackspace Cloud. Ignoring upfront cost of the servers, around $10k, colocating will only run me about $300 a month. I understand you don't have to worry about hardware issues, but I could literally hire a sysadmin to worry about hardware issues for that kind of money. It just doesn't make sense outside of well funded startups or established businesses.
Actually, I agree with you, being the sysadmin you mention. Unfortunately, the up-front cost seems to be a barrier to many a startup founder. To me, this suggests a lack of good leasing options, though it could be that's because it's not worth making a business out of it.
I understand you don't have to worry about hardware issues
I've always found this assertion to be misleading at best. One still suffers the consequences of hardware failure (both inherent and human error), yet one has very little, if any, ability to prevent them. You're at the mercy of the providers.
It just doesn't make sense outside of well funded startups or established businesses.
I'm not sure it makes sense inside them, either. I've found that the break-even point for buying versus cloud is consistently around 10 months. The rule of thumb for when the transition from cloud to colo makes sense for a startup that doesn't yet have any of their own hardware is about $10k/mo, assuming they're growing at a rapid clip.
The only situation where it would make sense is compute-heavy (but light on memory and I/O) loads that peak much higher than the average. I have yet to encounter such a one, since it's tough to meet the parenthetical requirement, thereby bypassing the Deutsch distributed computing fallacies.
Could you elaborate more about why you needed to spend $10K up front? And how you take advantage of your one giant server?
Are you using Xen to virtualize a bunch of servers on it?
I've always figured colocation + System Admin ends up costing more than a cloud solution. Especially when you need to have enough redundancy so that you don't fall over if a single server fails. In the cloud if a single server fails, it's their problem. In physical space it's your problem or your system admin's problem. How much time can you spare?
Why spend $10K on servers if you have, all things being equal, 98% chance of failing?
Most startups fail. You should be prepared to fail cheaply. You can always spend $50K on servers once you are successful. Let's say you spend $1K/month on cloud-based servers. That's quite a lot of horsepower. If you fail in 6 months, you are still $4K less broken that you would be had you spent $10K in the first place.
If you succeed, you will able to spend as much as you need in servers to keep your bases covered and still add and remove cloud-based servers to lessen your load on demand.
After my old web host made me really mad the other month I decided to grab a load of virtual servers and be my own web host (hosting client sites, projects etc.)
So now I have DNS, database/web servers etc. all under my control on shares that I can chop/change at will.
It's turned out to be phenomenally cheaper! Than having 1 dedicated server and a shard hosting package.
I'd be very interested in seeing a blog post detailing that. That would be very useful for hosting client projects. I'm working on a project that aims to be similar to Heroku but runnable on a handful of virtual servers from any VPS service.
I can only imagine the horror of running a hosting company. If you want to do it properly, there is no end to complexity. Not to mention the money part.
I've always dreamed about running my own niche hosting business, running on dead-stripped Slackware custom boxes for actual serving/hosting and OpenBSD for routers/firewalls/spamd daemons (actually I would not deal with email at all as it is a separate business in itself) etc. All it takes is few seconds thinking about it and then realizing what a crazy talk that is.
So hats off to providers with a clue! As for the 99% of cookie-cutter companies/resellers, do a favor to everyone and close your doors.
Running a hosting company was actually a pretty profitable business back in the 90s. (It probably still can be if you have a really solid niche). I should write some blog posts on our experience (there were many positives).
or just lease servers from a "dedicated hosting" company. you get all the benefits of a colocated server (customizability, security, performance) and you can let them deal with hardware failures, upgrades, and obsolescence.
Even this grows into a nightmare. I've been moving dedicated servers to cloud / virtual solutions for the last 4 months.
I'm in love with Rackspace Cloud stuff and their support, and will end up saving thousands while providing my clients with a state of the art email system and more redundancy. Plus, with their cloud servers I can replicate and backup easily.
chuhnk|15 years ago
I began my life at a startup 1 year after launch. 3 Servers, 1 web server, 2 app/db servers. As load increased and our needs changed we moved to a more complex structure, 2 load balancers with failover, 2 web servers and still 2 app/db servers but beefier. When life got harder we started optimizing web servers software and the database. When traffic grew past that along came another server cluster scaling us to an even greater degree.
Do we deal with hardware ourselves? No, managed hosting with dedicated servers. Why? Because we want to let someone else deal with the hardware problems. The cloud doesnt have the resources we need. We scale when we HAVE to, as in the site is going down every day because we cant handle the traffic. We run leaner than some of our competitors and we know this because some of them have gone public with their costs, number of developers and server architecture.
1. Have a plan 2. Find a hosting company you can scale with easily 3. Use the minimal resources necessary 4. When you have to scale determine the cost of optimization vs just adding more hardware. 5. Be Lean
bcx|15 years ago
So I'd argue.
for #3
3) Don't stress out about the minimal resources necessary from day one. Figure out what the minimal resources are over time, and just take advantage of the fact you can delete servers.
cullenking|15 years ago
mmt|15 years ago
Assuming perfectly spherical cows..
Actually, I agree with you, being the sysadmin you mention. Unfortunately, the up-front cost seems to be a barrier to many a startup founder. To me, this suggests a lack of good leasing options, though it could be that's because it's not worth making a business out of it.
I understand you don't have to worry about hardware issues
I've always found this assertion to be misleading at best. One still suffers the consequences of hardware failure (both inherent and human error), yet one has very little, if any, ability to prevent them. You're at the mercy of the providers.
It just doesn't make sense outside of well funded startups or established businesses.
I'm not sure it makes sense inside them, either. I've found that the break-even point for buying versus cloud is consistently around 10 months. The rule of thumb for when the transition from cloud to colo makes sense for a startup that doesn't yet have any of their own hardware is about $10k/mo, assuming they're growing at a rapid clip.
The only situation where it would make sense is compute-heavy (but light on memory and I/O) loads that peak much higher than the average. I have yet to encounter such a one, since it's tough to meet the parenthetical requirement, thereby bypassing the Deutsch distributed computing fallacies.
bcx|15 years ago
Are you using Xen to virtualize a bunch of servers on it?
I've always figured colocation + System Admin ends up costing more than a cloud solution. Especially when you need to have enough redundancy so that you don't fall over if a single server fails. In the cloud if a single server fails, it's their problem. In physical space it's your problem or your system admin's problem. How much time can you spare?
rbanffy|15 years ago
Most startups fail. You should be prepared to fail cheaply. You can always spend $50K on servers once you are successful. Let's say you spend $1K/month on cloud-based servers. That's quite a lot of horsepower. If you fail in 6 months, you are still $4K less broken that you would be had you spent $10K in the first place.
If you succeed, you will able to spend as much as you need in servers to keep your bases covered and still add and remove cloud-based servers to lessen your load on demand.
ErrantX|15 years ago
After my old web host made me really mad the other month I decided to grab a load of virtual servers and be my own web host (hosting client sites, projects etc.)
So now I have DNS, database/web servers etc. all under my control on shares that I can chop/change at will.
It's turned out to be phenomenally cheaper! Than having 1 dedicated server and a shard hosting package.
cmelbye|15 years ago
sramov|15 years ago
I've always dreamed about running my own niche hosting business, running on dead-stripped Slackware custom boxes for actual serving/hosting and OpenBSD for routers/firewalls/spamd daemons (actually I would not deal with email at all as it is a separate business in itself) etc. All it takes is few seconds thinking about it and then realizing what a crazy talk that is.
So hats off to providers with a clue! As for the 99% of cookie-cutter companies/resellers, do a favor to everyone and close your doors.
bcx|15 years ago
there|15 years ago
dpcan|15 years ago
I'm in love with Rackspace Cloud stuff and their support, and will end up saving thousands while providing my clients with a state of the art email system and more redundancy. Plus, with their cloud servers I can replicate and backup easily.
bcx|15 years ago