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 > > >
