In my profession, I often come across businesses looking to move to new hosting or host a new website. In many cases, I get the chance to talk to them about the different options and help them choose the best hosting for their purposes.
Sometimes though, companies already have their own infrastructure, be it co-location, dedicated servers or some sort of virtualised environment such as Azure VMs, VPS etc. and they are reluctant to even discuss other options after having sunk so much money into staffing, training and the hosting its self.
The trouble is that all of these types of hosting have one thing in common – they cost you a lot more than you think they do and continue costing you over time. You have to constantly manage:
- The operating system configuration and updates (which can also cause you issues)
- “Bare metal” backups to restore if something goes wrong
- Drivers and their updates (which can cause you issues too)
- The web server (IIS, Apache, Nginx, etc) and its configuration and updates
And that’s all before you even get to managing your website(s)!
Sometimes these companies will employ people or teams of people whose only job is to maintain all of this architecture.
Worse still, I’ve had to deal with issues that arise from internal IT and infrastructure teams applying updates to OS or drivers that have then broken integrations with 3rd party APIs or just outright broken the client’s website altogether. These infrastructure teams often have no idea what the websites hosted on the infrastructure are using or communicating with and will often just apply “recommended” updates without adequate testing.
A better alternative
Most companies could achieve suitable (or better) hosting for their website(s) and databases using cloud alternatives and rid themselves of the overhead and headache of maintaining infrastructure themselves. Better yet, cloud hosting is held to a high standard when it comes to the types of changes that can be made and you will usually be notified of any upcoming major changes with enough time to update your websites or tweak the settings as needed.
For .Net, PHP or NodeJS based hosting you could use a container-based service such as Azure App Services.
The difference between an App Service and a VM? With an App Service, You don’t have to manage the server at all! You can just concentrate on your website and leave the hardware, system updates, etc. to the cloud provider.
In addition, if you need additional power for your website to cover busy periods it is much easier to scale the hosting up and have the app service deploy additional load-balanced versions of your site than it is to provision new servers or VMs.
Backups are a pain to manage with most database systems. The best I’ve ever seen a company set up their database backups is to have nightly full backups. That’s a potential 24 hours of lost data if anything goes wrong. With cloud databases, it can be like having a full backup every minute.
Whether you need Microsoft SQL Server or MySQL, the cloud has you covered there too.
For MSSQL database my go-to service is Azure SQL databases. They provide you with a to-the-minute point in time backups and restoration system all managed by Microsoft. If you ever need to restore from a backup you just enter the date and time you want to restore to in the Azure Portal and let it do its thing.
For MySQL, a similar service exists called Azure Database for MySQL server. These have a very similar feature set.
If you’re looking to host a WordPress site, using a specialist WordPress host with a containerised environment such as Pantheon or Flywheel can be incredibly liberating. You don’t have to worry about webservers or databases yourself – you can just focus on your website.
Gatsby, Gridsome and other JAMStack built sites
If you’re using JAMStack static site generators then you likely already have a good grasp of the benefits of a fast site. Specialist hosting such as Netlify or Vercel can simplify both your hosting and your deployment processes.
Even if you want to go the route of setting up your own hosting, a simple CI/CD pipeline, some Azure Blob Storage and a CDN are still much simpler than hosting an entire server.
Long story short, stop wasting time, money and people-power on maintaining servers. Instead, leave that to the specialists and focus on making your website deliver a better experience for your customers.