server hosting

Hosting your application

Once your application has been built and is ready to use, you will need a server somewhere to host your application.  A quick web search will show that the options are endless for web hosting.  The ideal solution for you will probably depend on how much you can tolerate down time.  You will see options ranging from shared cPanel to VPS to high availability.  Let’s look at some of these options and discuss the benefits and drawbacks.

Shared hosting

This will always be the cheapest option and because of the low price, you can also expect very limited flexibility.  Shared hosting companies often use cPanel, which is based off the LAMP stack (Linux, Apache, MySQL, and PHP).  This limits you to only that software, which may not work for you.  For those that are not familiar with cPanel, it is a set of software installed on a server to help you manage the server.  You can manage your website (or multiple sites), as well as email, DNS, cron jobs, databases, and more from an online dashboard. You can signup for a shared cPanel account for as low as $8/m from GoDaddy

Shared hosting plans are for you if you can tolerate some downtime.  GoDaddy has a 99.9% uptime guarantee on their shared hosting plans.  Other providers will have a similar guarantee.  This means that there could be up to 9 hours of downtime per year.  And just to clarify, that means 9 hours that the server will not be accessible.  For some people, that’s an acceptable amount of time.  For others, that could mean losing a significant amount of money.  Shared hosting also limits the amount of resources you can use on the server.  For example, the cheapest option for shared hosting on GoDaddy gives you use of 512MB of RAM, one CPU core, and 100GB of disk space. 

Something else to keep in mind if you choose a shared hosting plan is that your website will not be the only website on the server.  The server could also be hosting 100’s of other websites.  This may not be a problem, but you will very likely have email problems.  Since the server is shared, if any other user on that server abuses their email, the whole server will be blacklisted and email from the server will no longer be delivered.  The same thing goes for other software on the server.  If another user on the server does something to crash some software on the server, it will affect you. 

To summarize, the benefit of shared hosting is the low price. The drawbacks are lack of flexibility, spontaneous software problems, and limited resources.  Here are some hosting companies that offer shared hosting: GoDaddy, CWH, Host Papa, Namecheap.

VPS Hosting

A VPS (Virtual Private Server) is also a very inexpensive choice when it comes to hosting.  You can even get a simple VPS for as little as $5/m, so this could be cheaper than a shared hosting plan if you are able to setup everything on your own.  That means logging in with a command line tool, installing all the software you need, and installing your site.  Or if you prefer cPanel, you can buy a license ($20/m) and install it on your server. 

That is the great thing about a VPS: you can do what ever you want with it.  Throw on cPanel if you want.  Hire someone else to setup your site on the server or do it yourself using the command line. Use any software you want on the server, the possibilities are endless!  For obvious reasons, if you don’t want to use the typical LAMP stack, shared hosting won’t work.  But with a VPS you can do what you want.  Do you want to use Python and Postgresql? Not a problem.  Do you want NodeJS and MongoDB? Easy peasy! Another great thing about using a VPS is that you get a dedicated IP address.  That means that you are the only one that could potentially get your IP blacklisted for sending spam emails.

The downfall of using a VPS is that you either need to know how to set it up on your own, or hire someone else to do it.  Some hosting companies will do this for you, others will charge you, others won’t do it at all.  If you want to take this route, make sure you either are able to do it yourself or choose a hosting provider that can help you.  VPSs also have uptime guarantees that are usually the same as shared hosting guarantees.  So if you cannot tolerate downtime, then you will need to go with a more complicated and expensive setup.

Here’s a quick summary of the VPS option. They are great because they are relatively inexpensive, flexible, and get a dedicated IP address.  The drawback is that you either need to know how to set it up on your own, or find someone that will do it for you.  Here are some companies that offer VPS hosting: Amazon AWS, Canadian Cloud Hosting, Digital Ocean, or any of the companies that I mentioned in the shared hosting.

High Availability

For those of you that need your application running 24/7 with no downtime, there is a solution for you as well.  This is called high availability.  It involves several servers and a complicated setup.  Let’s think about what could potentially cause a site to go down.  Things like maintenance, internet outages, server crashes, overloading, or user mistakes.  We will need a solution that has fall backs for when these things happen.

First of all, we will need a minimum of 2 servers to handle web requests with a load balancer (this will distribute the load evenly between the two servers, or if one is down then it will send all traffic to the other).  You will also need 2 database servers.  Since you have 2 web servers, you can’t have the database on the same server, you will need one centralized server so both web servers have access to the most up to date data in the database.  And you will need 2 database servers so if one fails for some reason, the other one is ready to go. 

Now if there is server maintenance that needs to happen, the server crashes, or a user makes a mistake on a server then we have fall backs in place.  Some hosting providers also allow you to automatically add a new server when your current servers become overloaded.  But what about if there is an internet outage at the data center that the servers are located in?  If you need that level of availability, then you will need to have the same setup in another data center.

You can see the drawback to this solution. The setup is pretty complicated and you can expect to pay quite a bit of money to get this setup properly.  Other than that, this is by far the best way you can setup your application. 

To summarize, high availability solutions benefit from virtually zero downtime, scalable, and all the benefits from the VPS solution.  The drawbacks are the cost, and the complexity of the solution.  There are some businesses that try to simplify this kind of a setup by creating a PaaS (Platform as a Service).  These are companies like Amazon (Elastic Beanstalk), Heroku, and Microsoft (App Service). Some hosting companies that don’t offer PaaS will do the setup for you using several VPSs, but they will charge you for the setup and for any maintenance or updates.

If you would like to discuss your hosting needs with us, please send us a message.  We would be happy to talk.