Every time I see a cloud pricing page, I think "this is 100x more expensive than my 50 Eur Hetzner server".
It's hard to get excited when I see 1 GB of total RAM costing $350 when my 24 GB, 2 TB, i7 server costs $60. Sure, scalability, blabla, but if you're talking startup-friendly, then a dedicated server is hundreds of times cheaper.
I always regret getting a Linode box for historious rather than a Hetzner server.
+1 Everyone agrees with you that dedicated boxes rented from companies like Hetzner are a much better deal for what resource you get for your money.
However managing servers is a form of technical debt. A lot of private corporate and public web apps are written, deployed, and not changed much assuming that they do what people need. "Set and forget" PaaS reduces technical debt.
That said, I have been thinking myself of getting one large memory Hetzner box to replace machine learning and other background stuff that I might otherwise do with Elastic MapReduce. Scale vertically rather than horizontally.
I definitely agree with you. This is why, nowadays, I design all my deployments to be repeatable, and document what cannot be (not much, so far).
I get a Hetzner box that I know will probably last me for the lifetime of the app. If it doesn't, and I actually have ten million users, I have a good problem, and will study how to overcome it at that point.
I think I don't need the cloud until I need a fourth dedicated server. That sounds like a good rule of thumb. It also depends on your growth rate, if it looks like another server will last me another five years, why pick a cloud offering?
I think that EC2/dotcloud/etc are pretty close to the metal anyway, it seems to me that you get the high prices with fewer benefits. Can someone tell me what the advantage of EC2 is, given that each dedicated server has 32 GB RAM and no contention, and that EBS is known to be really flaky?
While you're right that EC2 is pretty close the metal, dotCloud starts at a very different level of abstraction. On most VPS providers (as with dedicated hosting) the first question you answer when you go to deploy your web app is "what Linux distro do you want to run?" If you're trying to learn sys admin skills, that's great, but for most people, the end goal is to deploy a web app, not run a Linux box.
With dotCloud, you start higher up: list the components (eg Python web frontend, MySQL and Redis) that make up your actual application, push your code and you're handed back a URL with your app running. A single command lets you scale out for reliability, with load balancing across your multiple web front-ends and master-slave replication for your databases. Running a single physical server? Sure, not that hard. Setting up reliable, automated failover for every component in your stack? That's a bit more work.
In the end, it's really a question of the value of your time. Can you do all your own sys admin work? Sure. You could also build and maintain your own hardware, but from the sounds of it, you've decided that work is worth outsourcing Hetzner.
In the same way, for a lot of people, wasting time administering servers is just time taken away from building a real business: a distraction that is worth paying a few extra dollars a month to make disappear.
Hi Stavrosk, I work at dotCloud. I understand your concern. However allow me to contribute 3 points:
- If you think of dotCloud as expensive hosting, then don't use it because you're missing the key value proposition. DotCloud is affordable managed hosting: we do the work of operating, monitoring, maintaining which you would otherwise need to do yourself. And we do it better and more cost-effectively than our customers could do it, because it's all we do for hundreds of thousands of deployments.
- dotCloud scales down way better than iaas. What's the cheapest ec2 setup with production trafic, load-balancing, failover and monitoring, plus a bunch of sandbox environments? Hint: we're cheaper.
- Our large customers benefit from volume discounts
Hmm, affordable managed hosting sounds better. If I need, say, my Postgres instance tuned to my specific workloads, is that included in the price? I assume service configurations are editable, please correct me if I'm wrong.
What do you guys manage exactly? What sort of work am I saving if I get dotcloud?
Here's a non-exhaustive list of things we take care of for you:
- We curate a configuration of each service that "just works", and we maintain it over time for upgrades and security patches.
- We implement scaling and reliability best practices for each service: load-balancing, deployment across multiple datacenters, database replication and failover, hot deploy, strict change management, etc. We do this in production at a very large scale, so even for a very small application you benefit from the equivalent of a 20-people ops team serving tens of millions of uniques.
- We actively monitor and support everything we deploy, and are on call 24/7 to fix things when they break. This is important because 100% automation never happens in the real world. When things break we fix them, or help you fix them. We've been known to fix bugs in our customer's code, but don't tell anybody :)
Our job is to be a provider you can trust to run your stuff in the long run. That's what PaaS is supposed to be.
It's hard to get excited when I see 1 GB of total RAM costing $350 when my 24 GB, 2 TB, i7 server costs $60. Sure, scalability, blabla, but if you're talking startup-friendly, then a dedicated server is hundreds of times cheaper.
I always regret getting a Linode box for historious rather than a Hetzner server.