The title is about owning a server but all the points he makes are about owning and managing a whole Data Center by yourself. Of course that complicates matters !
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.
As a startup, owning hardware (or, sometimes, leasing) tends to eat up on your balance sheet really quickly as a cap ex (capital expenditure). You're immediately spending money and taking runway off the table and turning it into illiquid assets.
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. :)
> 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.
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.
Admittedly I never read any of these cost comparisons, but if I were to write one, especially if my own money were on the line, I would sure as hell include maintenance costs and vendor expenses. Otherwise it's like buying a car and not taking into account the cost of fuel.
One of the biggest reasons I use SimpleDB is because I don't want to admin a database. I just don't have the time to deal. The extra $ I pay for SimpleDB is the value of my time I save, and, frankly, my time is worth more than the SimpleDB premium.
When we started DotSpots in 2007, we leased physical servers from iWeb. It was far cheaper than EC2, but you lose of ton of agility when you can't pave a server and rebuild it from the command line. We switched to EC2 and starting paying a bit more, but we've been able to expand capacity much more nimbly than before.
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).
Another and somewhat more subtle consideration: if you're deploying web crawlers or related tools from EC2, an increasing number of web sites are blocking access from the Amazon IP blocks due to the volume of vermin.
Depends on your latency needs, how expensive your data is to compute from its source, how big it is, etc. In some cases it'll be cheaper to pay the cost to exit EC2, hit the big memcache box and re-enter EC2 than it would be to rent a few Quad-Mem boxes.
FWIW, our fleet is 100% EC2 - this tradeoff didn't work for us.
It's literally just blank files being requested 10s of millions of times a day, they serve no data which makes a caching layer unnecessary. I just need the log files generated by the requests.
The funny thing is is I've never owned a server, and from the look of things, probably never will. Granted I've only been running my company for a ~6 months or so but the idea of owning a server feels pretty archaic.
Am I the only one who reads "I'll never own another server" and thinks about all the folks who said "I'll never hire another programmer" back when sites like Elance first started getting popular?
Outsourcing is great and all, but it's hardly the panacea people make it out to be.
That's a fairly insulting way to look at the art of system administration, database administration, and the like. Anyone who's ever been any good at those jobs would disagree that you can automate them any more than you can automate software development.
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.
You know what.. I am supposedly skilled sysadmin, middleware admin and a DBA, so let's assume I know what I mean. And I dare to say that for many cases many tasks usually attributed to "us" can be automatized (and who's writing such layer? of course an admin, not a programmer; a casual programmer doesn't have mindset needed).
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.
He mentions all of the overhead of running your own data center, but fails to provide a balanced analysis by omitting the significant expense of running an AWS deployment properly. Just as AWS solves some problems of dedicated servers, it introduces its own challenges which one would not have to consider when running dedicated servers.
Right, like the fact that an instance can have only one ip address. Virtual hosting for multiple websites with SSL goes right out the window. There are a couple solutions to this problem, but they're either impractical or just plain unacceptable for production boxes. All platform choices have these kinds of gotchas and/or extra costs for things that are just free if you own the server. I use AWS every chance I get, but sometimes a project requirement forces you to go dedicated.
This is easily done with Elastic Load Balancers, simply proxy to different ports for SSL and instruct your webserver to listen there. The huge upside is you can automate this just as well as any other piece.
except you don't have X-Forwarded-For with ELB, which can be a problem, since if you need SSL, there's a good chance you probably also need to be logging IPs for security purposes.
Of course, you can just setup your own load balancer on EC2 with HAProxy and stunnel, but that's a PITA.
You don't even need that, and I don't know why he mentioned that as an issue...I was able to flexibly balance with virtual hosts with HAProxy on EC2 like with any other server.
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.
This is relatively trivial compared to running your own physical server setup (colo or datacenter). Think about where we're at now with EC2: EBS-backed servers are about as easy to manage as a regular VPS, plus they can be regularly snapshotted (every few minutes if you want to) and moved to another datacenter in very little time in the event of an outage.
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.