The explosion of infrastructure-as-a-service and platform-as-a-service offerings has greatly expanded the ways in which hobbyists and professionals deploy web sites and web services. For about the same cost as cheapo shared hosting, you can get your own small virtual machine at any number of providers, allowing you to tweak the entire instance to just the way you want it. Such a VM is perfect for running TT-RSS, or a photoblog, or just learning the differences between Apache and nginx web servers. If infrastructure isn’t your thing, you can quickly deploy your code to various PaaS providers, often for free, and have as reliable of a site as what you’d get from shared hosting.
The great thing about PaaS hosts is that they’re mostly agnostic to the stuff running inside them. Some PaaS hosts may cater to specific languages, but generally any app or framework written in a supported language will work on your PaaS of choice. The bad thing about PaaS is that a lot of the underpinnings of “hosting” get abstracted away completely, and the various open source applications and frameworks haven’t quite caught up with this design paradigm quite yet.
Take, for example, the simple task of uploading a file to your typical open source CMS. The PaaS host likely doesn’t permit writing directly to your application’s execution space, so you’ll need to jump through some configuration hoops to point your CMS to wherever your provider wants you to write files. Depending on the app, this may or may not be easy to do. Because uploaded files live outside of your app’s version control, you need to take extra steps to properly backup uploaded files. In short, things can get complicated quickly.
I think the next step in PaaS evolution is going to be app-specific hosting providers. Such providers will combine specific infrastructure an application tweaks to provide a cohesive, compelling offering. One example of an app-specific PaaS provider I recently spoke to is Pantheon, a company that’s built a comprehensive Drupal hosting solution.
Pantheon isn’t cheap, but what they offer is considerably distinct from an application agnostic PaaS like Red Hat’s OpenShift. First, Pantheon has designed their infrastructure to provide “a service that could offer the best possible performance and features for Drupal.” This is enabled by a custom front-end routing solution, a custom DNS system, a custom nginx front-end, and a lot more. The engineering work is impressive, to say the least.
That solves a lot — but not all — of the performance issues; but performance isn’t the only problem to solve. As mentioned above, file uploads can be a real pain point. Pantheon tackled this with their own distributed filesystem, which they call Valhalla, which is mounted to individual instances using WebDAV. This is a very complicated solution, and not one that makes sense for a single Drupal site to orchestrate. But all of this custom complexity allows Pantheon to offer a remarkably distinct service in the world of Drupal hosting.
Pantheon’s latest product is an Enterprise offering, complete with dedicated concierge service to assist with all aspects of a site deployment. That kind of hand-holding helps ensure that a site rollout is a success. In addition, Pantheon spins up dedicated development and testing environments that exactly mirror the production site’s configuration. This is often a cause of problems in complex site development: the prod environment doesn’t exactly match the development environment, introducing all sorts of hard-to-diagnose problems. Other features of the Enterprise product include database replication and scaling and load testing.
Josh Koenig, co-founder of Pantheon, told me “We’ve spent much of last year in a kind of “beta” for this product with enterprise customers — figuring it out in a series of one-off engagements that have been progressively getting better and better. Now we have it. It’s a product. It’s done, and we’re shipping it to the world.”
Pantheon’s Enterprise product packs a lot of punch. The New Republic recently deployed their new site on Pantheon, and enjoyed over 100 million pageviews in the first 24 hours. Pantheon’s architecture allowed the site to handle the load without any special considerations. As part of the Concierge service included with the Enterprise product, Pantheon performed load testing to establish the resources necessary to support 500 concurrent users. The weekend the site went live Pantheon noticed that demand was exceeding the baseline expectation by about 40%. Within three minutes of identifying the spike in load, additional resources were allocated.
Not every site will need the architectural underpinnings that Pantheon offers, of course, so traditional shared hosting will continue to scratch some people’s itches. Pantheon is certainly on to something, though. I strongly suspect that more application-specific hosting solutions will come forward in 2013.