tags:

views:

201

answers:

2

I am building a .NET MVC web application. Is cloud hosting the way to go for a 1 man show?

Since StackOverflow runs off a simple 2-node setup, and can easily be doing 1 million page views/day, does cloud hosting even make sense until one gets to that level?

Do you think cloud hosting will really take away the server hosting side of things?

+1  A: 

A significant benefit can be cost savings in some circumstances.

Suppose you require a co-location for a backup datacenter that can 'kick in' in case of natural disaster or power outage. Maintaining two sets of servers in two locations might be prohibitively expensive. If the cloud already offers this sort of redundancy against disaster, it might save quite a lot of money over time.

tehblanx
+1  A: 

There are very different kinds of cloud hosting, and the answer depends on which kind of hosting you are talking about.

One excellent resource is the second half of this presentation.

I will oversimplify and classify them into two extremes: hosting services that just provide you with a virtual machine (VM) such as Amazon's EC2, and those that provide you with an application environment such as Google's AppEngine.

Thinking first about the VM approach, I would say that for a small "1 man show", I really wouldn't worry much about the scaling problem: it won't matter unless you are successful, and so you're better off taking the Twitter approach and working on being successful, then dealing with scaling later. Sure, it will come back to bite you later, but only if you ARE successful. Worry about designing a scalable ARCHITECTURE, but don't bother with scalable HARDWARE.

Even with that proviso, using EC2 or some other cloud hosting can be a good idea. It means you are paying someone else to worry about electric bills, purchasing of hardware, network connectivity, system maintenance, and things like that. And this person is probably cheaper than YOUR TIME unless you have experience as a professional sysadmin (or a friend who you can pay in smiles and stock).

The entire way to think about it changes if you consider something like Google's AppEngine. (NOTE: given that it's a .NET MVC web application, that probably isn't an option for you. I'll explain the pros and cons anyhow.) This changes the entire way you architect your application, and it means that you are effectively tied to this host (or at least this kind of hosting) forever (or until you do a complete-from-scratch rewrite of your system... don't make any plans that rely on doing that!). In the long run, that may be bad or good, it's kind of hard to tell right now. But you can't beat the startup costs: from Google it's FREE until you get up to traffic sizes that ought to be bringing in some profit. It's really hard to beat FREE for all hosting AND operating expenses, so I think some small, 1-man shops will be taking this route in the future.

On the whole, I advise using cloud based hosting simply because if you want to be a success you need to focus like a laser on the one thing you do well; whatever that is, it probably isn't system administration.

mcherm
I've been thinking AppEngine. Are you really tied to it forever if you use Django or Pylons?
Nosredna
Not necessarily, but you may well be. Using AppEngine means you will take a different approach to persistance and a different approach to background processes/threading. If none of these things matter, then you can freely move to different hosting. But if some of them DO matter than you will have somewhat more trouble. It is NOT easy to abstract these issues behind an interface.
mcherm