Most WordPress website owners are just fine with placing their website on a shared hosting, with a caching plugin installed.
However our clients demand bit more then hope when it comes to availability and performance. We have implemented quite a few high performance WordPress setups, ranging from simple to complex.
Dual Server Setup: Hosting on a Budget
This is a go-to solution for blogging websites with a relatively long cache lifetime and predictable traffic. Powerful dedicated virtual server hosting Nginx, Apache (or both) web server and Redis (object cache) server, accompanied by a smaller machine hosting database (with WordPress database server is rarely the bottleneck). All of this sitting behind a Cloudflare.
Such setup is surprisingly robust and able to handle traffic surges. Servers can usually be scaled up with little disruption (assuming 1h downtime on e.g. Sunday evening is acceptable). While this is not technically high availability setup, Cloudflare layer protects against shorter server downtimes (Cloudflare will continue serving pages even if your web server is down).
Setup is simple, affordable, relatively cheap to maintain. You can even get managed servers and avoid server administration hassle all together.
Cluster Setup: When High Availability and Auto-Scaling are Required
For scenarios where “1h downtime one Sunday evening every 6 months” is not an option and for websites where caching options are limited (e.g. WooCommerce stores), cluster setup is the way to go. Our preferred tech stack here is a managed Kubernetes cluster hosted with AWS, Google Cloud or Digital Ocean paired with Cloudflare. We prefer the Bitnami Helm Chart deployment for a fast setup.
While managed Kubernetes and Helm Chart remove a lot of the complexities of configuring and managing a cluster, this setup still requires a DevOps-ish set of skills and there are a few peculiarities associated with maintaining such setup (especially when it comes to upgrading WordPress itself).
Setup powerful, robust, scalable, however often expensive to run as it requires at least one senior developer to run.
Cluster Setup: Money no Object
This one is simple. If you need a top-notch setup and have money to burn, just go to Kinsta or WPEngine. They will provide you with a fully managed top-of-the-line hosting setup to match your needs. It can be quite expensive, but it is cheaper than paying a full time senior developer to manage a custom Kubernetes cluster.
Cluster Setup: Performance On a Budget
Finally we come to the point of this post. You can get a high availability scalable hosting on a budget. Product is called Cloudways Autonomous by Digital Ocean’s sister company Cloudways. They provide you with infinitely scalable high availability WordPress hosting. Cloudways deals with all the complexities of managing such setup. From user’s perspective, hosting is just like any typical system they used many times before: You manage files simply via FTP.
You can get a WordPress website on a cluster-type hosting up and running in 15 minutes starting from $35 per month. What is there not to like?
We have used Cloudways Autonomous service before and would like to point out a few caviats.
While hosting will scale up with traffic, each “pod” (individual server instance) is rather small. Each page request is handled by a single one of these “pods”. This means that some processes (especially when accessing the WordPress dashboard) will take longer to run (i.e. slower page loads) when compared to a powerful single server setup. This can be mitigated somewhat by not overloading the WordPress with too many plugins and caching of course.
Conclusion
So there you have it. Hosting setup for every need and a budget! If you have any questions, give us a shout.