The “Cloud” has become a buzz word used to describe virtually any online activity, especially amongst developers and hosting companies. However, seldom have these same companies made it clear just what the Cloud offers small web developers, blog owners and alike. The resounding message in 2015 should be to stop using shared hosting.
On paper shared hosting should suite bloggers, small businesses and portfolio sites perfectly. However, a history of over subscribed shared hosting packages, the ever growing list of must have WordPress Plugins and the rise of social networking attracting more people to your little site has resulted in the opposite.
Don’t get me wrong I still think shared hosting has its marketplace, however, times have changed and getting dedicated resources for your blog no longer costs and arm and a leg. In fact a Virtual Private Server can set you back as little as $5 whilst often Shared Hosting is retailed at double to triple that at entry level.
So why are people not moving naturally?
There is no single answer for this but one of the largest reasons is technical difficulty and the loss of support. There is no denying that hosting a website on a VPS requires significantly more knowledge than shared hosting, or does it?
I would like to suggest that those who would struggle setting up a LAMP stack are not actually using shared hosting, but rather services such as Squarespace, Medium, etc. Once upon a time setting up a LAMP (Linux, Apache, MySQL and PHP) or LEMP (Linux, Nginx, MySQL and PHP) stack and maintaining it was fairly challenging and reliability was most often the sacrifice for performance. However, installing the required software to host a website or webapp off of a VPS has become trivial with one click installs from leading providers such as: Digitalocean and Linode. However, this gets even simpler when looking at services such as Cloudways or the sublime yet exceptional Serverpilot.
Is it really that simple?
If we look at a service such as Serverpilot.io the process resembles shared hosting and results in a very similar result. The process starts with setting up a new Ubuntu VPS, consider how many visitors frequent your site daily, if its in the hundreds considering 1GB minimum RAM for your server.
Once your VPS is up you will need to SSH into it using terminal or Putty. You should have been provided a root password from your host on creation.
Last but not least enter your servers host name in your Serverpilot.io account along with a password for the user it creates and enter what will look similar to the following command on your VPS:
That is all there is to it.
Once Serverpilot connects to your VPS it will setup a custom stack with Apache and NGiNX and what’s more Serverpilot will keep all the software up-to-date as well as secure.
Why VPS over Cpanel?
Technically cPanel is not the issue, it’s a pretty fantastic tool and has been the industry standard for a long time. However, cPanel is also chocked full of features which the vast majority of users don’t ever use. That’s what makes a service such as Serverpilot so striking, it has the absolute bare minimum features for hosting and honestly, at the end of the day, it’s enough for most users who want to host a small website.
Finally you’re also paying for the privilege for all these featues, cPanel is not cheap and that affects the cost of shared hosting.The good news here is that you can actually use cPanel on your VPS as opposed to alternatives such as Cloudways or Serverpilot. However, this will cost you around $20/month on top of your VPS.
Here is the basic issue, with shared hosting you simply get zero guaranteed resources, on top of this you most likely will not know the amount of RAM or what type of CPU your shared hosting uses. Lastly when Dan’s site get hits with a heavy traffic spike or DDOS your site will more than likely get knocked out too.
A few years ago getting a VPS for a small site was simply uneconomical but with tumbling costs, grabbing a VPS to run your small blog is now cheaper than many shared hosting packages.
Will a $5 VPS really be better
The honest answer is, sort of. The first improvement you will experience, especially if your site is powered by a CMS (WordPress, Drupal or Joomla, to name a few), will be load times. Accessing your site will be significantly quicker and so will making changes in the backend.
The grey area comes when your sites hit with significant load. When your site is fairly quiet the VPS truly shows what dedicated resources can accomplish. However, underload your small 500MB or 1GB of RAM is going to become an issue, and here is where shared hosting has a slight advantage as the chances of your site crashing are very slim but the chances of your browser timing out before the sight loads are pretty great too.
On a VPS heavy load can fill your RAM quickly and this can cause issues such as crashing your Database, resulting in a completely dead site until you restart the database. You could choose to get more RAM for your VPS though this is will quickly increase costs.
Not great news either way, but their is a solution which comes in the form of using a good Caching plugin/service and a reliable CDN. Some good choices here are WP Super Cache for WordPress and CloudFlare as a free CDN. A good advanced caching option is also Varnish Cache, however, this will prove overkill for most users.
Whether you’re hosting on shared hosting or VPS you need to have caching and a CDN… By utilising Caching and a good CDN over 800 concurrent connections to a small VPS is achievable.
On a production site running on a small 1vCPU with 512MB of RAM I’ve noticed a 60% drop in CPU utilisation with negligible RAM increase during periods of high demand where the site was serving over 3000 unique visitors a day. By utilising Caching and a good CDN over 800 concurrent connections to a small VPS is achievable. Ryan Frankel shared a good tutorial on his blog explaining the numbers he can achieve on a DigitalOcean 512MB VPS.
Transparent Resource Usage
Early I touched on shared hosting not being transparent with how much resources you get and can utilise. Nor can you really monitor this in real time. Which makes troubleshooting slow and difficult as often it requires a laborious exercise of disabling plugins or scripts and testing. Unfortunately, this does not take into account the likelihood of naughty Dan’s website using too much resources and slowing everyone else down.
Much of this can be solved by using a VPS and best of all you don’t even need to SSH into the server to get real time analytics. For FGN I’ve been using a service called New Relic to monitor PHP performance as well as our VPS vitals, all in Real-Time and for Free!
Plugins love RAM
WordPress and other CMS are fantastic products but they have resulted in bad habits and one of those is an over reliance on plugins. WordPress is particularly bad in that many users simply have too many plugins. Once again this is a major reason to consider using a VPS. Take a justifiable plugin such as, BackWPup, which we use to backup the FGN site daily to Dropbox. This plugin rendered our old site almost dead when it attempted to do a backup and unfortunately it also took quite a while assuming it succeeded. The problem here was that our old site was hosted on shared hosting and our PHP instance’s RAM usage was severely limited.
Using a VPS is not an excuse to cram every plugin into your site, but it certainly helps more intensive plugins run smoothly.
Hosting your site on a VPS can be cheaper than shared hosting, requires a small amount of online reading and definitely requires the use of caching and a CDN. In return your site will perform significantly better and be more reliable, though the odd issue may require you to resolve yourself, rather than sending off an email.
I would also highly recommend using NGiNX to serve pages rather than just Apache as this will save your server from RAM issues.