Why I’ll never own another server
stu.mp
stu.mp
What I don't understand is why wouldn't they take for example collocating their servers in multiple, geographically distributed, Data Centers.
Also, this doesn't need to be black and white. One could use "the cloud" to offload peak traffic/computation but if you have a predictable usage pattern, it becomes economical to also own hardware.
And I think this is the core of the matter: if you have an unpredictable scenario, it's better to rent. And being that startups and new projects are by definition rather volatile, it makes sense not to invest money into hardware. Not to mention that unless the company / project takes off, there is no money to actually buy hardware upfront. There is also no time to manage that hardware.
So sure, raw hardware you own in a rack somewhere is probably cheaper over 18 months. But then you're still stuck with it after 18 months (whereas you can just swap out for a larger sized ec2 in the space of a few minutes, whenever you want, without penalty).
Then again, unless you're buying a whole cage/closet you're probably paying the top whack fee anyhow, since data centers almost always deal with negotiating on the cage/closet level - anything smaller is typically not worth it to them. So you're paying full rate for your 2u box, and sitting on hardware that's depreciating.
Plus, to get into the good datacenters, the ones that have provable disaster recovery, multi homed bandwidth, power and cooling , you will need to prove your creditworthiness and such. But that's OK - you'll stake all you got to get a couple cheap servers hosted somewhere that won't go down (and if it did, be trivial to heal)
Finally: to the point about predictable usage lowering costs: amazon already does this, with reserved instances. You give them a heads up about what you're going to need over the coming year, they'll give you a discount.
If distributed, fail tolerant and instant deployable are three things that describe your startup, relying on your hardware to always work, that your sysop friend is always around and that you're on top of kernel bugs seems like a pretty fast way to fail.
On the other hand, offload all this to a company who's doing it anyhow, and you might find that you get to extend your runway, grow with your customers (who says it is bad to deploy more servers based on customer orders??) and get to focus on more interesting things, such as where to find the next beer. :)
Indeed, if you are a typical startup, then you either don't have the capital, the time or the knowledge to manage your own hardware.
But at some point you should move into a hardware-owner category at least because it's the foundation on whatever your are building and you might want some control over that.
The only thing I'd recommend running outside of EC2 would be memcache, but that's only if you're really pinching pennies. If you're an early stage startup and you're not running virtual machines, you might be doing something wrong (IMHO).
FWIW, our fleet is 100% EC2 - this tradeoff didn't work for us.
http://docs.amazonwebservices.com/AmazonS3/latest/index.html...
Outsourcing is great and all, but it's hardly the panacea people make it out to be.
You can't automate hiring & managing coders, while you can automate purchasing & maintaining infrastructure.
It makes sense to outsource those functions when you can't afford to hire someone who knows what they're doing and when what you're doing exactly fits the cookie-cutter mold of what the vendor is offering, and when you're willing to trust an outside vendor with core business functionality (or when it's not core to your business). But a skilled sysadmin or DBA will absolutely add value that you won't get from outsourcing.
I earn money on the large projects (telco industry mostly) where people like us are absolutely needed and without us the things would turn into chaos & hell. Still you don't need an admin to build an infractructure for a small app when you have service providers like Heroku. Then admin can be given another work to do (esp. coding, as most of admins make excellent coders, not necessarily vice-versa).
You may think these are quite strong opinions, inconvenient for some people maybe, but I live in the industry for 15 years or so and that's what I see all around.
Of course, you can just setup your own load balancer on EC2 with HAProxy and stunnel, but that's a PITA.
and PITAs add complexity and cost.Using ELBs is the best solution, but it's a non-issue if you go dedicated.
The issues I was considering with la nuebla:
Data is a pain. S3 is great in theory but a pain to integrate. The same goes for EBS, which is really pricey for more than a little. If you can get a good connection on your own and admin a simple file server, serving data is very easy, stable, and cheap.
Amazon's options are prone to serious failure if you do something wrong with them. I don't lose my hard drive's contents when I accidentally pull the plug, but that is the case with EC2.