It is daunting trying to find a good web hosting company. About a decade ago, I found WebFaction and have stuck with them ever since. They consider themselves a web hosting provider for developers and I agree. They offer flexibility with plenty of options that you would not usually get a shared hosting provider.
Most shared hosting providers provide the CPanel which is the default admin interface for your account. WebFaction is different as they provide their own custom built Control Panel so you can manage your account as a developer typically would. WebFaction provides a Control Panel that allows you to create your own workflows when managing your web sites.
WebFaction’s workflow for managing your sites is different. It starts with breaking apart your web site into three parts:
- Domains – add your domain names and create your sub-domains;
- Applications – your code, for example a WordPress blog or Django application
- Websites – maps an Application to one or more Domains or sub-domains
Why is this powerful?
When you use a traditional shared hosting account a “website” will be a single directory that you FTP into. If you have application files or want to update your site you have to do it in real-time with the possibility of something going terribly wrong resulting in your site being unavailable.
Using WebFaction’s control panel, this is no longer tightly coupled and provides flexibility to add a new Application, test it, and associate it with a domain in the Websites portion of the control panel. That’s right, zero downtime.
Let’s walk through a few examples that I hope will illustrate the point.
Example 1: Deploying a build to an e-commerce store:
I have a hypothetical e-commerce web site that I’ve built and is hosted at www.davinderstore.com with an application called store_v2. I added features to my site, and tested it against my QA database. Now, I’m ready to roll it out to production. I don’t want to deploy this code and hope everything works with the production database because if something goes wrong, how do I roll back?
I create a staging environment to test against the production database by first creating a new application store_v2_1 with the new code. The first time I do this, I add a new sub-domain staging.davinderstore.com and a new Website called staging. In this staging setup, I now associate this staging domain name with the new store_v2_1 application and I have a staging environment to test with.
I’m ready to roll this application to production. In the Websites control panel, I edit the production Website to use store_v2_1 application instead of the original store_v2 app. Click Save and wait a few moments for the change to take effect and boom. The production web site is now running the new code. Deployed with zero downtime.
Example 2: Replacing my custom Symfony app with a WordPress blog
Years ago I created a Symfony app to host www.mahal.org but never had time to keep it up to date. Eventually I replaced it with WordPress and used a similar workflow to deploy the new site. Using the 1-Click installer for WordPress which WebFaction offers, I set up the new blog. Once I had migrated everything, I simply changed the Website www.mahal.org in the Websites Control Panel to point to the new WordPress application and within moments my new site was live.
Example 3: Two applications on different paths for the same domain
You can actually setup two different applications on the same domain but at different paths. You could have a static web site hosted at example.com and then decide to add a WordPress blog at example.com/blog. Yes, you can actually do this using the WebFaction Control Panel. You may need to tweak things to get that specific example working but it is doable.
WebFaction has an API to their control panel so you can manage everything with your own scripts. This is incredibly powerful to manage all your Websites, Email and other services you control. You’ve got SSH connectivity. You can setup symlink applications so your core code base is not all exposed in the public web directory – a feature many other competitors do not offer.
Their Support team are very quick at responding to your needs, they are very knowledgeable and super friendly.
There’s so much more so sign up with WebFaction – they have a trial period – and I’m sure you’ll like them.