I've been doing a bit of making up ground recently by reading through about cloud hosting.
For any client which has comparable qualities as StackOverflow (Home windows stack, equivalent site visitors), I have to setup a hosting atmosphere. Stackoverflow went from leasing to purchasing.
Now you ask , why did not they choose cloud hosting?
Since Stackoverflow does not use any strange stuff that must operate on a devoted server and allegedly cloud hosting is 'the' solution, why don't you utilize it?
Through getting solutions for this question I really hope to have the ability to create a weighted decision myself.
I honestly don't know why SO runs enjoy it does, on independently possessed servers.
However, I'm able to assume why an internet site would rather this:
- Maintainability - when things DO fail, you need to be hands-on around the problem, and solve it as being rapidly as you possibly can, without requiring to rely on some third-party. Obviously however that you have to be available 24/7 to deal with these complaints.
- Scalability - Cloud hosting (or any exterior hosting, for your matter) is extremely convenient for any promising small to medium-sized site. And the majority of the hosting companies today do provide you with the choice to begin small (hosting that is shared for instance) and grow to personal servers/VPN/etc... But when you undoubtedly believe you'll need that extra growth space, you might like to count only by yourself infrastructure.
- Full Control - with your personal servers, you're never certain to any limitations or restrictions a hosting service might impose you. Run anything you want, hog your CPU or perhaps your RAM, whatever. It is your server. Many hosting companies don't provide you with this freedom (unless of course you repay, obviously :) )
Again, this can be a cost-effectiveness problem, and every business will handle it in a different way.
I believe this can be a large reason:
Cloud databases are usually more limited in functionality than their local alternatives. Application Engine returns as much as 1000 results. SimpleDB occasions out within 5 seconds. Joining records from two tables in one query breaks databases enhanced for scale. Application Engine offers specialized storage and query types for example physical coordinates.
The database layer of the cloud instance could be abstracted like a separate best-of-breed layer inside a cloud stack but designers are likely to make use of the neighborhood solution for its speed and simplicity.
Clearly I am unable to say for StackOverflow, but I've got a couple of clients that went the "cloud hosting" route. Which are actually anxiously looking to get from the cloud.
In many cases, it simply is not 100% there yet. Restrictions in user monitoring (passing of requestor's Ip), changing performance because of other strain on the cloud, and unknown usage number are only a couple of from the problems that have emerged.
From what I have seen (and case according to reading through various blogged tales) more often than not the dollar-costs of cloud hosting just aren't effective out, especially given some planning or analysis. It's only really valuable for an individual who needs highly changing traffic which defies conjecture, or periodic bursts. I suppose in it's infancy it is simply less than competitive enough.
IIRC Shaun and Joel stated (within the podcasts) they did really run the amounts also it did not exercise cloud-favouring.
I believe Shaun stated within the Podcasts he desired to learn several things about hosting, and usually has fun doing the work. Some head aches aside (begin to see the SO blog), I believe it is a great chance to learn.
Cloud computing certainly has it's advantages as most of the other solutions have noted, but sometimes you want to have the ability to control just of the server.