A Short Rant About Hosting
blog.pinboard.in
blog.pinboard.in
I'm now paying $405 / month for 6 servers, and they range from 2 dedicated db machines with 12GB and 16GB of memory to 1GB virtualized app and task servers that cost $10 to $20 per month.
What I've learned is that where it really matters, in terms of I/O performance, the dedicated servers make great machines, naturally. But the insanely cheap VPSs, which I use for distributed feed fetchers (task servers) and web servers, are wonderful because they are so inexpensive. I have redundant load-balanced machines, so when I need to take down an app server or it fails for some reason, nginx immediately routes around it. And it's costing me only $10 / month per machine.
And task servers have served me especially well as VPS. It depends on the intensity of the task, but for such a small expense, you get 4 cores and enough memory to go nuts. And if you're pulling off a task queue, you can programmatically spin up more to deal with a higher queue load. When you move entirely to dedicated machines, your spin up time is on the order of hours to get it prepped and connected.
I'm just thrilled that many decent hosting providers (with <table>s for salespeople) offer both. I wouldn't last without being able to have a mixed setup.
If your usual working set (code+data), or better still your entire working set, fits into RAM easily and doesn't see a lot of write activity (where in RAM or not it needs to be copied to disk at some point), cheap VMs are often a no-brainer. The I/O hit will only seriously affect you if you need to reset he VM so the working set needs priming in RAM again.
As soon as you need I/O bandwidth (much writing, or a data-set that doesn't fit easily in RAM) you need a physical machine as the I/O contention between you and other VMs will completely kill performance.
So as you say: real machines for significant database work and cheap VMs for your web servers and other worker tasks is often the most cost effective arrangement. Don't go too cheap on the VMs though for production work. I generally avoid "burstable RAM" options as I find them less reliable (I'd rather have a fixed amount that can all reliably be allocated as needed, than unpredictable reliability forcing me to put procedures in place to deal with unexpected OOM situations). And make sure you properly test the bandwidth carrying capacity: I've seen cheap hosts get good reviews where the reviewer tested incoming bandwidth but filed to test outgoing - this is not all that useful as a hosts outgoing bandwidth usually sees much more contention than the incoming.
My god that is good. I spent two weeks about three years ago going around the country looking at data centers to move our systems to (30+ servers that were currently in a co-lo and we were looking to go to managed/leased).
We'd get pricing estimates that changed by the time of day and who emailed it to us. The shopping process made the migration seem easy.
I mean, sure, if you want to, feel free to walk into a car dealership and pay sticker price. Go to the mall and buy that hardcover book at MSRP.
I'll buy a car from one of those no-haggle car dealerships. Yes, they're probably padding it out, but it's worth it not to have to chit-chat.
This, or take a page from an economy handbook and set up the game so that it works to your advantage (hint: if you're physically at a dealer before the negotiation starts, then you've already lost.) Decide the exact model you need an email a dozen dealers for a quote.
Think of it this way, given the choice between paying X for a service, or having to "Call for pricing..." which will you do?
Personally I'd take the X option even if it cost more.
The sticker price should at least help you scope out whether your project is feasible on their system.
Lesser companies are shy about pricing for two reasons: * They simply can't compete on a cost/benefit basis * They want to capture "consumer surplus" (see Joel's awesome writeup, http://www.joelonsoftware.com/articles/CamelsandRubberDuckie...)
"Capturing consumer surplus" is an MBA euphimism for "charging different people different amounts for the same product, based on whatever we can get away with".
Sales dweebs love it because it makes for smart-looking powerpoints at the end of the month (look, we charged these forty customers double! free money!)
What they can't measure is how many saw the "call us" button on the website and weren't gullible enough for that shit. Those people simply left to find a competitor with more transparent pricing.
Marco Arment and idlewords (I don't think you mean jakewalker, who is an attorney; you mean idlewords, who runs Pinboard) fit a specific profile:
They've bought dedicated servers before. So there's no learning curve required to buy more dedicated servers.
They're more than capable of serving as their own sysadmins, and in fact I believe they do so. So the economy of scale of, e.g., buying some Heroku dynos and letting one admin team administer your machine along with several thousand nigh-identical machines isn't as much of an issue.
Their services are well established. Neither Pinboard nor Instapaper are going away, at least on a timescale of years. They have a userbase and a revenue model and are well out of the "experimental" stage. They can afford capital equipment and be sure that said equipment will be utilized.
Their services aren't evolving rapidly, on a scale of days or weeks. They don't tend to beta-test features that would require lots of additional hardware if they got popular.
Their services scale fairly predictably. These are paid apps with a steady clientele that isn't just chasing fads. By this point I bet Marco can plot the rate of change of Instapaper's paid userbase on a graph and tell you within, say, 25% how big it is likely to be in six months. The service is unlikely to experience unusual usage spikes unless Marco deliberately creates those spikes by e.g. having a sale or releasing a new version. Even iPhone/iPad releases, which might drive sales, tend to occur on a fairly predictable calendar.
Their services just aren't all that large on the back end. They don't run big server farms, the kind for which you must spend a few hours per week just managing your inventory of spare parts and un-racking and re-racking things.
If your business also fits these criteria, then sure, dedicated servers are easier now than they have ever been, and there are still things you get with dedicated hardware that are harder to find in the cloud. (He's right about the predictable disk I/O.) But my company managers swear that AWS prices, full-freight as they are, are still a bargain relative to the humans and capital required to run our medium-to-large-sized datacenter with dedicated hardware.
[Disclosure: I work at an AWS-based Drupal hosting company and have never owned a dedicated server. ;)]
- Pablo Picasso.
In my experience, you're right. For the same monthly amount of datacenter cost I can either install a pretty beefy machine, or rent a underpowered VPS.
A disadvantage of a VPS is that they're always artifically limited in memory, disk space and CPU power, whereas in the case of a real physical server machine I can put as much RAM/drives/CPUs I want.
An advantage of VPS would be no hardware cost, no redundancy concerns, easy to add/delete instances, etc.
However, for me the advatages of real machines weigh heavier than those of VPS solutions, at least at present.
> Quick quiz: can your entire sales staff be replaced by a nicely formatted HTML table? If the answer is 'yes', then you are subtracting value and wasting my time.
That said however, it should be an option to have that access. I personally prefer Joyent as a web host. They've shown really solid I/O numbers via their benchmarking. I've been a happy customer since it was TextDrive.
I don't think a salesman is the first person you want to talk to to help you in this regard.
To fit within the confines of that amount of RAM, though, I've since switched to nginx… :)
If they don't know what they need, then the answer to the above question is 'no', and hence doesn't apply. In that case, you might consider asking the provider to recommend what sort of setup "solution" you require. But I wouldn't want to do that through a sales guy, especially someone working on commission. I'd rather get some advice from a disinterested 3rd party (even if it's just asking on StackOverflow/ServerFault or whatever) and then look for suppliers offering what I need.
A multi-person model is structured around larger enterprises that already have separate staff representing these different roles.
And I can also vouch for LeaseWeb. Their signal-to-bullshit ratio is indeed as excellent as their bang-for-buck.
Quick quiz: can your entire sales staff be replaced by a nicely formatted HTML table? If the answer is 'yes', then you are subtracting value and wasting my time.
When comparing between hosting providers, most lack the time and resources to negotiate with each provider to find out what the "real" rate is. Hosting should be a commodity, providers should treat it as such. I think there are probably good opportunities for hosting providers that provide an honest rate.
Yes, differential pricing can be a boon to buyer and seller alike. If the seller could offer their product only at a single price point, they'd be forced to price it out of the range of some customers while leaving money on the floor from other customers for whom the expense is trivial. I get all that.
But no-one likes to feel like a chump being sized up by a con artist. Not even people with money to burn. When the default price is marked up so excessively, you're being taken for a ride, plain and simple. You should be boycotting them, not praising them. There's plenty of opportunity for differential pricing in the hosting space by offering a sliding scale of service-level agreements, higher resource limits, priority tech support, and other special features. Let's keep the douche bag negotiating tactics confined to the used car dealership lot.
contegix is worth every penny.
One of the cheaper companies on his spreadsheet is hetzner.de They have dedicated servers that go down in size to about $20 a month: http://www.hetzner.de/en/hosting/produkte_rootserver/x2
Note that their price includes VAT. If you're not a EU company, you don't pay the VAT and so the actual price is cheaper.
For our needs, we're going to start off buying a cluster. Probably 4-5 machines. As load grows, we'll add nodes and larger nodes over time. (A nice feature of Riak is that you can do this, just give the ring time to rebalance and you can migrate from one set of hosts to a larger one relatively quickly.)
VPS offerings lose a lot of their appeal in the face of a $20/month 1GB dedicated server! And with no setup cost, it is pretty elastic, though as you get to larger dedicated servers hetzner has a setup cost.
I'm not shilling for hetzner, I am just sharing them because I'm considering being a customer and and curious as to what others think about them. Also, curious if anyone else is facing the "we need to start with a cluster of machines, but we're a tiny startup at this point" issue...
I believe that if you're going dedicated, might as well pay for enterprise grade hardware (with ECC RAM, RAID disks) because you dont get all the nifty backups/clones/spin-ups that you get from the cloud.
Now, that certainly would be something to pay for. Who provides that?