I've had quite a lot of experience helping teams who use both cloud-based and 
physical-server hosting.

The promise of the cloud is that you can start/stop servers to meet dynamic 
demand. In the simple case, run ten servers during the day in your timezone, 
and only one at night to keep the lights on. In a slightly more complicated 
case, have some software tools (that you probably have to write yourself) that 
spin up and add new servers to the pool when server load reaches a certain 
threshold. In the usual case, spin up new servers to do computationally 
intensive background workers.

Since you typically pay for cloud services by the running hour, very careful 
management of this can lead to lower costs. In theory.

In practice, people don't really do this. They spin up some servers, deploy 
their stuff. When they need more, they spin up some more, and never really 
manage growth or two to manage expenses. In fact, because it's *so* easy to 
spin up a new server, folks will often end up with far more than they need very 
quickly.

My experience has been that the average non-profitable startup will spend 
between $10,000 and $30,000 per month on their cloud hosting. For hosting that 
can be adequately served by two $2500 servers for $250/mo in co-location fees. 
I have literally gone to clients, moved them off of cloud provider to real 
hardware for significant and nearly immediate gains. One month of their hosting 
fees can typically pay for my time (and I'm not cheap), the new hardware, and a 
year of co-location fees.

There are rare cases when this is reasonable. Also, since I'm in Canada, 
companies typically can't store their data in the US because of the Patriot 
Act, and that makes Rackspace Cloud one of the few options we have. Finally, 
you can install VMware's vCloud Director (or similar; they have many products) 
on your own hardware and have "the cloud" on your own hardware. It's amazing.

That said, there are some good reasons to us cloud-based services: hardware 
management, backups, security.

- Hardware management is the most obvious. When you use a product like 
Rackspace Cloud, you don't ever have to think about disks, servers, locations, 
network configurations, etc. When you want more power, you click a button. 
Someone else manages all of that. When there's a bad disk, you don't notice, 
because it's someone else's job to swap out the bad one and make sure that 
everything was redundant. 

- Backup and reliability are a really important feature that cloud providers 
offer. All will offer redundant disks and the like, but most go further than 
that. Most cloud providers have multiple datacentres and can spread out your 
servers, or move your data between them quickly. In Canada, we have one cloud 
provider who will transparently fail over your stuff from Vancouver to Toronto 
and vice versa.

- Security is probably the most often overlooked point. Most cloud providers 
will manage firewalls, and do the "infrastructure bits" of PCI compliance and 
related things which significantly reduces the work you have to do yourself.

In the end, it depends on the business. My experience is that it's foolish to 
use cloud providers for anything more than small VPSes without taking a hard 
look at the costs. Most businesses will have someone on staff who can manage 
the building and deployment of these servers, and well managed servers don't 
need babysitters anyhow. Plus, as software developers, we'll automate 
everything (they call that Devops now) and make it even easier.

I have recommended two past clients switch to the cloud. They had a rack full 
of aging servers, and were paying a staff of four system administrators ~ 
USD$80k/yr to manage those. Moving to the cloud was cheaper for them in both 
the short and long term. But it's rare.

Finally, when your stack is "simple Rails app running on MySQL", which is a 
completely boneheaded stack in the first place, it's *easy* to scale and can be 
done nearly transparently. Plus, do you really want the Rails kids touching 
infrastructure bits? Some things are best left to the experts, and using a 
cloud provider makes that easy even if it is more expensive.

Cheers!

-Steven




On 2013-06-21, at 8:29 AM, Stephan Eggermont <[email protected]> wrote:

> When I see the enthousiast reactions to the cloud hosting tip, 
> I often wonder why? What do you see as the advantages, 
> and where does it provide a good fit? I can understand the 
> 5 euro/month vps for a single instance case.  
> 
> As soon as I need redundancy, monitoring and scaling, 
> I still need to understand so much of the underlying infrastructure 
> that the step to DevOps seems awfully small. Neiher Heroku, 
> nor AWS make scaling transparent, AFAIK. That is to say, they'll 
> start up new instances just fine. That only helps when processing 
> is the problem, not internal bandwidth. And solving the wrong 
> problem only leads to high costs. 
> 
> The cost figures I've seen published on the web suggest that most
> larger scale usage would be better of with at least their regular demand 
> covered by dedicated servers. I know hosting in the US is much more 
> expensive than in Europe. Digitalocean at least seems to give more
> reasonable price/performance. AWS vs Hetzner seems uncomparable
> 
> Your thoughts?
> 
> Stephan
> 
> 
> 


Reply via email to