My abiding and irrational loathing for WordPress has at last yielded fruit.
WordPress thrives in the classic shared hosting market, where the LAMP stack — Linux, Apache, MySQL, PHP — is almost universally installed. It’s free, fairly user-friendly, well-marketed, widely used, has oodles of third party plugins and themes. My only objection to WordPress is that it’s rubbish11. Har Har: Yes, I realise I’m saying this on a WordPress website. Sometimes the poor workman doesn’t get to choose his tools. [↩].
But that’s not my point today. What WordPress has given me is the impetus to think, and think, and think some more about what blogging software is and what it should do. The dozen or so computer types who follow Club Troppo have seen my sketches in this direction before. Starting with a pre-history of blogging, I moved through a call for a “next generation”, through to consideration of the various interested participants in the world of blogging software. Later I returned to the topic of WordPress to complain about its architecture, then foreshadowed this post with remarks about a PHP performance benchmark.
My topic today is a discussion of how and why I think shared hosting is doomed. Let me start with a chart which I think will attract no argument22. About the charts: All charts in this post are illustrative, not data-driven. So YMMAPWV. [↩]:
This chart looks at the long tend trends of wages and hardware. In the long run, administrator wages rise. How and why this is so is unimportant for our discussion. Likewise, in the long run, hardware prices fall. This trend is essentially informed by Moore’s Law.
It follows naturally that when a firm enters the hosting market, administrator wages will form a larger and larger fraction of their costs per customer, and hardware a smaller and smaller portion. So whatever can reduce administrative overhead will reduce costs, and in a competitive market, prices for hosting.
One way to do this is to set up your business as a host for Virtual Private Servers. This has the nifty property of pushing a lot of the administration cost back on to those customers who are able to sustain it:
So far, so good. Except that virtualisation has a large resource overhead. Each customer is running another copy of the operating system, another copy of the web server, another copy of WordPress or whathaveyou.
Furthermore virtualisation introduces facilities for guaranteeing a minimum portion of resources per customer, meaning that it is
no longer possible more difficult to oversell each piece of hardware.
Thus, the current state of things is somewhat like this:
In the current market, this difference is so large that it dominates the cost of virtual private server hosting. Consequently, VPS hosting costs more, despite the fact that much of the admin overhead is pushed onto the client. A well-known top-tier shared host like Dreamhost charges $7.95 per month with very generous allocations of disk space and bandwidth. Meanwhile top-tier VPS host Slicehost charges $20 per month for their smallest option, with a tiny fraction of the bandwidth or disk space offered by Dreamhost. And you have to run it yourself.
A slam dunk for the shared host, it would seem. Except, as we recall from the chart at the top, hardware continues to grow cheaper and cheaper. So what does this do to the resource overhead problem? Assuming that the resource overheads remain essentially constant, then both shared hosting and VPS hosting overheads per customer will converge towards zero:
Eventually, while there is still a difference, it doesn’t matter any more. It becomes irrelevant.
The same thing happened to RISC chips when AMD and Intel introduced instruction decoders that took the CISCy x86 instruction set, chopped it up, and reissued RISCy micro-ops to the internal architecture. At first this cost a significant portion of the total transistor budget, but as time passed, the transistor budget grew while the cost of the decoder remained roughly constant. So here we are, a decade later, not caring about instruction set overhead.
So the hardware overhead is destroyed by Moore’s Law in time. What about administrative overhead?
I submit that the administrative overhead per customer rises faster for a shared host than for a VPS host.
In a shared host, every customer is running inside the same operating system instance. Several thousand customers share the same machine. Scheduling is handled by a single kernel, any program has access to the full resources of the machine, and so on.
But contrariwise, many more things can go wrong. Any customer could introduce badly-behaved software which gobbles RAM or hammers the CPU. Or software run by different customers may lead to an unexpected interaction. Or a customer might installed software with a security flaw, leading to the exploitation of the machine’s resources. And so on, and so forth.
Every customer adds a more than linear amount of risk and complexity to the host’s administration overhead. In a small shared host this isn’t a problem; in a large host it can significantly raise the cost per machine, largely negating the advantages of lower resource overhead.
Contrariwise, a VPS host has a fixed administrative cost per customer, because to them the customer’s virtual machine is administratively an opaque blob. They needn’t care what the customer is running, as the virtualisation software strictly isolates each customer from another. Without interactions, problems are isolated. And so the administrative overhead per customer is strictly linear.
Here’s what that looks like, in a dramatic-looking graph:
Once Moore’s Law has rendered resource overheads moot, this graph spells the doom of shared hosting.
Or does it? The canny reader has already noticed that I have forgotten that one of the tricks of the VPS host is to push a large portion of the administrative cost onto the customer. For a lot of customers, this just won’t fly. The average WordPress user is not a Linux administrator, MySQL corraller or PHP-hater. They are likely to be like the Club Troppo roster: lawyers, economists, thinkers, writers: in short, people who have neither the ability nor the interest to run their own server. That is, in large part, why I was brought into the Club Troppo tent.
This could represent a hard upper limit to the portion of the market which VPS hosts can capture.
The way around this impasse is the so-called “virtual appliance” — the VApp. These are essentially a prebuilt server designed to be deployed to a VPS host. They are configured with the desired software and carefully assembled by professionals. In the VApp model, administrative overhead is moved from the user and from the host to the upstream:
This allocation already exists, to some degree, in the world of Linux distributions. Each distribution assembles a large amount of software, and includes a lot of administrative know-how in the layout of files, default configurations, security policies and so on. The VApp, which adds some end-user software, merely expands on the concept of a distribution.
Already you can download VPS images for popular opensource software like WordPress, Drupal and the like — turnkey VApps. I speculate that eventually VPSes will become the target for software projects, rather than traditional shared hosts. This will allow a lot more flexibility in design, as it will allow the application to become decoupled from the LAMP stack at will, and to use operating system facilities in a way which are currently impossible. For example, application plugins could be run as separate operating system users, with all the security advantages obtained thereby.
Not everyone agrees with my thinking, mostly because of the current realities of the market. But this is an argument about the future, and the way that inexorable trends can reshape an industry without much consideration for who gets squished. To my mind, the twin trends of inflating wages and deflating hardware spell the end of shared hosting as the main way in which people publish websites. Before 10 years have passed, we’ll get to know if I was right.