When it comes to hosting, such a thing as ‘best practice’ simply does not exist. However, as diverse this area of expertise has become, there are viable and suitable solutions for each and every business need. You simply have to know what works best for you. Sounds easy? Hardly.
Having teamed up with Hidden Design to provide state-of-the-art hosting solutions, we attempted to make it easier for you to navigate through the wild waters of different hosting provisions. We have taken examples (metaphors, to be more precise) from real life, so it will feel just a little bit more natural to imagine which type will fit your business like a glove.
On-premise hosting means that all of your servers, hardware and software are kept in-house (physically, either at your office or in one place, at the provider’s site). This is often a viable choice to cut costs or if you have an IT team at hand.
Be prepared to late night alerts where you need to pay a visit to the server, replace a disk or reinstall the whole thing during Christmas when it all goes up in flames. This option is the full DIY experience, you are responsible for stable electricity and storing replacement parts in the basement to handle outages.
Shared hosting is like university accomodation. You’re saving money by sharing the costs of living with others, but you have to tolerate each other’s habits – and that might be something to keep you up at night. Technically speaking, your website runs alongside others, that you won’t know:
- one server hosts many websites of the same kind, driving prices down
- usually utilising LAMP (Linux, Apache, MySQL, PHP) stack
- website hosters can deploy with FTP
- great for LAMP stack
- confined to almost one stack (PHP)
- cannot install custom components
- “noisy neighbour problem”: shared filesystem and network can cause security and performance issues
- (look for local ones that are often cheaper)
VPS hosting is best compared to living at home, comfortably, in your own environment. It is great, everything is the way you want it to be. The only problem is (other than being able to afford your own home), that if something needs fixing, you are going to be the one dealing with it.
- a complete virtual machine is given to the website hoster
- almost complete control over performance and network
- everything can be installed on the host, but everything has to be managed individually
- versatile: choice over stack and components
- any number of apps can be installed, as long as the hardware allows
- relatively cheap for multiple services
- maximum amount of control over the virtual host
- needs domain-specific knowledge for installation and configuration for every app
- everything is manual: high maintenance, monitoring cost
- scaling can only be achieved by buying more virtual hardware (CPU, RAM)
When it comes to VPS servers, you might often encounters problems surrounding installation. Containerization helps with resolving these issues.
- often used on VPS hosting
- containerization allows a standardized encapsulation of apps
- many apps have pre-built container images
- abstracts away domain-specific installation and configuration
- allows installation of multiple apps on one host
- however, you have to learn containerization concepts
- you can run into problems, since this is a ‘matrioshka’ stack: physical hardware – provisioned virtualization (VPS) – containerization
Cloud hosting is great if you want responsibility to fall on the provider’s shoulders. It utilizes the power of virtualization. This technology enables hosts to split single services into multiple virtual servers. These functions are usually distributed to multiple locations or data centers so that solutions are not deployed on a single unit.
SSG hosting (Static Site Generation)
SSG hosting is just like going on a camping trip with your tent – indefinitely. In technical terms, it means that all your files are pre-generated, thus making deployment more mobile. It doesn’t come any cheaper than this, your spot might even come free. Although it lacks a lot of the luxuries, compared to a hotel for example – it does not mean that SSG hosting is not good enough. It fits certain businesses perfectly.
- SSG hosting allows to store frontend assets (HTML, CSS, JS)
- these are often built from git repositories (like GitHub)
- the assets are often moved “the edge” (duplicated in multiple hosts closer to users)
- the major downside is that SSGs does not allow backends
- countless components exist to compliment the missing backend (authentication, payment, etc.)
- often free or very cheap
- very fast, because assets are close to the user and no backend is involved
- git generated assets can be updated and rolled back safely
- edge-hosted assets can scale easily
- no backend prevents many security problems from arising
- every content needs to be generated beforehand
- stateful / session applications cannot be designed at all
- Cloudflare Pages
Serverless functions are a little different from other cloud-based solutions. They are comparable to a hot-dog stand where similar functions (i.e. the hot-dogs) are served whenever customers are present – with the service being scalable in accordance with the demand.
- serverless functions are simple scripts that can run upon interactions with the user
- they are often paired with SSGs to allow some kind of backend interactivity
- if many people are using the app, more serverless functions are started, and if nobody is using it, they are stopped (using no resources), so it scales well with the usage
- often free for limited number of uses per month
- great scalability
- management, monitoring is handled externally
- only certain languages are allowed by the platform
- allows minimal interaction (limited runtime per call)
- stateful / session applications cannot run at all
- after reaching the free usage limit, there is a significant price hike (often even more expensive than a VPS solution)
- AWS Lambda
- Cloudflare Workers
- Vercel Functions
Fully managed platforms
When it comes to convenience, nothing compares to fully managed platforms. Imagine the presidential suite in a 5-star hotel, with helpful staff who are there for you only – and they constantly make sure that everything is being taken care of. Of course, you have to dish out a substantial sum to stay there.
- the easiest way to use any kind of service is to have everything handled for you: these are fully managed platforms, which exists for many different services (CMSs, databases, message queues)
- the management and monitoring is taken care of by professionals
- this is the most reliable, but most expensive way to run an application
- very reliable
- scaling is often handled for applications where it is not simple enough
- very expensive
- highly specific applications cannot often be made on these platforms
- Amazon Lightsail
- WP Engine
Kubernetes is probably the most versatile hosting solution of them all. You can think about it as an office complex, that caters for different needs of different clients, all at once. There are less expensive ways to host, but in turn you get a good standard of all aspects.
- Kubernetes is a container orchestration software, which builds on the technology of containers and allows them to be scaled across multiple hosts
- Kubernetes is supported in cloud: this way the cloud provider operates the Kubernetes cluster, and the hoster can deploy applications on it
- it is the best of both worlds: gives the most amount of control, allowing any kind of component to be run, but the server management is abstracted away and handled
- versatile: stack and components can be chosen
- servers are managed and maintained by the cloud provider
- standardized platform, any container image can be run on it
- allows installation of multiple apps on one cluster
- allows scalability to raise the number of containers, and add more hosts if needed
- you have to learn Kubernetes and containerization concepts
- usually somewhat expensive, but not as much as managed platforms
- application management and monitoring is still in the hands of the hoster
- Amazon Elastic Kubernetes Service (EKS)
- Azure Kubernetes Service (AKS)
- Google Kubernetes Engine (GKE)
When thinking about the best hosting type for you, there is one principle we can recommend to use as a compass. You need to know how much control you need or want to have over your resources (IT knowledge, money etc.) and how much attention you can pay to installation and maintenance, and see how these two things balance out for you.