The Hosts File
The host is somebody that most people simply think of as the person they need to thank for a great party when they head out. But in our offices, we talk to many hosts on a daily basis, and with no cause for celebration. A Web Host, or “Hosting Provider” is the name we give to the entities that actually provide the servers for hosting our websites. The web site is the party, and each month, on behalf of our clients, we send thousands of notes of thanks to our most trusted and utilized hosts, like WPEngine, Nexcess and Rackspace.
These three hosting providers also somewhat reflect the several kinds of hosting providers you might find in the wild these days. Generally speaking, hosting is going to be identified by the level of involvement you’re going to want to have in keeping things running. And, necessarily, with less involvement, the offerings will become more specific and tailored to specific niches and customer needs.
WPEngine, on one extreme of this scale (like Nexcess), is a Managed Hosting Provider. The “Managed” here means that they have a layer of customer service agents and software sitting between the customer and the hosting service they’re purchasing. While the support agents at WPEngine are some of the best we’ve seen in the industry, they probably can only accomplish that by having such a narrow focus of hosting services: they only host WordPress websites. As in most endeavors, simplicity can yield better control.
On the other end of the spectrum you might find a company like Rackspace, which also offers fully managed services, but at an hourly rate, will also provide you with “unmanaged” servers, essentially machines that you pay for by the hour. Paying for your web servers by the hour may seem like it’s far more precise than it needs to be when you want your website online 24/7/365, but for prices ranging from ~1/2 cent per hour to $1/hr, or ~$4 to more than $700 , the power you get for those prices also ranges by quite a lot. One of Google’s more powerful offerings, the n1-highcpu-32, is a 32-processor beast with nearly 30GB of RAM, for the bargain rate of $0.85/hr and they’ll refund half your cost if they can’t keep it online more than 95% of that time, ie, it’s down for more than a cumulative day and a half over that month. It’s a bargain, and it’s turnkey for the basic commodity, but somebody has to put software on that server to host a website.
Another concept you may encounter when trying to find a hosting provider is the difference between Shared and Dedicated hosting. A shared host, like that often sold by GoDaddy, MediaTemple and other “low-cost” providers, typically means that the resources you’re using to serve your site are shared with other customers. You’ll have a directory on a server running a single operating system, you and all the other sites on that host will be competing for that power. If one site has a large spike in traffic, your site may slow down or stall until the server can recover its stride. On a dedicated host you may only only end up causing your own slow-downs, which is something you can control, and can also fix.
Blurring the lines between shared and dedicated hosting, there siits the concepts of the server being “Bare Metal” vs a “Virtual Machine”, aka a “VM”. A “bare metal” server sounds really cool (and it is often cold to the touch), but it just means that it’s not a virtual machine. Virtual machines are a relative newcomer to the hosting landscape, but have been a fixture on the hosting scene for at least a decade now. A virtual machine is exactly what the name implies that it is, it’s a machine provided by software. At some point you need some bare metal to actually act as a machine that runs software, but you could install a VM layer, aka a hypervisor, on a powerful machine and spin up as many less powerful “virtual” machines as you wanted.
The difference between a virtual machine, and shared hosting may only seem semantic, but they are really very different. To put it simply, a shared host is like living in a dorm, where you have shared facilities like bathrooms and kitchens, and a virtual machine is like living in a condo, where you have all your own rooms, but you may still hear the neighbors making a ruckus from time to time. The only way to live without being disturbed would be to run your own bare metal servers, and you’ll then need a place to put them where they will stay cool, have continuous power (with a backup generator) and always connected networks with good bandwidth.
Because all these things are needed by anyone who needs hosting, the industry has organized itself so these common needs are simply commodities. Computers, these days, live in data centers, they’re close to bodies of water they can use for cooling, and near large power plants where they can purchase cheap electricity at bulk rates. That data center is probably close to a network hub too, for fast and cheap connection rates, because what good is a server farm that can’t push things out to users and other farms? As you might expect with somewhat narrow requirements like this, data centers are beginning to collect in certain areas of the world. In the US, often our major urban areas fit this bill nicely, and you might not be surprised to learn that many of them have been crammed into massively populated area along the east coast, stretching from Boston to Richmond, VA. With moderate temperatures throughout the year, plenty of affordable power, and low risk of catastrophic natural disasters like earthquakes, hurricanes and tsunamis, it’s a perfect place to keep the folded nests of wire that we now use to run our economy.
Competing with these ideal locations and practiced professionals, on either cost or quality of service, is pretty much a non-starter in this commoditized environment. So if you’re not currently renting your computing power, and instead you’re trying to run the full stack yourself, there’s probably a more cost-effective solution out there, even (actually, especially) for those with unusually specific requirements or certain high-security needs. Keeping computers on and constantly functioning isn’t easy, but if that’s all you have to be concerned about, and not the many layers of software above, it makes it less difficult.