High availability is one of the four “pillars” of an Enterprise architecture. It is also one of the most misunderstood terms in the WordPress hosting world, and that usually leads to further ill communication between clients and businesses.
But that shouldn’t be the case. As we will discover shortly, it is a very simple concept to grasp, and once we clear out the confusing bits, you’ll be equipped to evaluate and understand what a company offers to you, and whether that offer delivers on the promise.
What is a high availability architecture?
There are two distinct concepts implemented in high availability architectures: Clusters and multiple tiers.
A high availability architecture, at its simplest, is the idea of having more than one copy of your website running. These copies are called nodes. If your website breaks, the other copy will process your visitor’s requests and there will be no downtime.
The most commonplace high availability cluster designs are two:
- In active/active, both of nodes A and B, the main and the copy, are in operation. This design is used when you need to handle a large volume of requests. Visitors browsing your website end up in either one every time. Thus, the load coming from your web visitors is balanced between two nodes.
- In active/passive configuration, the main node A is in operation, and the B copy node is in “stand-by” mode. When node A fails, the B copy “wakes up” and becomes the active A node, while the failed node becomes B. This is called a failover, since the copy is activated when the main node malfunctions. This design does not provide load balancing, but it can be less expensive to maintain and setup.
Clusters can be thought of as the essential building blocks of a high availability architecture. In enterprise environments, clusters are organised in multiple tiers. This is called an n-tier architecture, with the most common number of tiers being three: the presentation tier, the application tier, and the data tier.
This means that the view of your website, the code that drives it, and the data around it, are separated into three distinct “layers”. Web servers and HTML data reside in the presentation tier, code and applications to the application tier, and naturally, the database to the data tier.
Why is a High Availability architecture better?
By combining these two ideas, clusters and multiple tiers, you create a high availability architecture that is easily maintained and secured. Its advantages, over single or shared hosting environments, are numerous:
- Fault tolerance: this is a system property of high availability architectures that enable websites to operate continuously, even when some or all of its components fail.
- Maintenance operations do not cause downtime: having your website hosted in a cluster enables you to upgrade it without any outages. One node can be in maintenance mode, while the other is online serving your customers. When the upgrading on the first node finishes, it goes online, and the maintenance continues in the second one.
- Easier scaling: If your website needs to address a larger volume of requests, you scale it horizontally, that is, you add extra nodes to the cluster. On the other hand, if you want your website to have more processing power or memory, you scale it vertically by adding more memory or upgrading the CPU. In both of these cases, there is no downtime: At least one node is online and operational during scaling upgrades.
- Load-balancing: By using an active/active configuration, you can distribute the load across two machines, instead of having just one. That means being able to handle more concurrent requests from visitors. And if your needs are highly demanding, you can scale horizontally, by adding extra nodes to the cluster.
- Better security: By dividing the infrastructure into separate tiers, you can enforce different levels of security and even different types. You can place multiple firewalls between each tier and have very high restrictions on who can connect to a tier and from where. This means that in the case of a security incident, the attacker will not be able to gain access to the whole system.
- Better maintenance: Software upgrading operations are less error-prone and simpler by having the operating system configuration, applications and such, provisioned differently for each tier. If everything is hosted on a single machine, there is a danger that if one software upgrade goes wrong, the machine can experience downtime. By using separate tiers you mitigate all of that because there is no danger of one failed software upgrade affecting other areas of the system.
But the benefits are not only technical ones. Having your website hosted on a high availability architecture translates to benefits for your business too:
- No outage costs: A high availability website means that your business will always be up and ready to process requests. Being unable to process requests means lost revenue.
- No wasted time: When something breaks it will remain broken until it is fixed by a ..trained professional! This means 100% downtime of your website and business if it is hosted on a non-high availability architecture. Every counting hour of downtime means again.. lost revenue!
- Customer trust and loyalty: Having your systems always up and operational builds trust between you and your customers. Your customers know that your business works and that they can get support in every step of the way.
- Better SEO ranking: A High Availability enterprise architecture can improve your SEO ranking by offering your website a “class of nines” uptime.
What High Availability is not!
Until now it would seem that high availability is the cure for everything. Unfortunately, it is not so. No matter how much we would have liked it to be (because we are good at it). Although high availability architectures provide a robust and resilient way for your website’s hardware and systems software to fail gracefully, it can’t do anything if your WordPress software is the cause of an outage or slowdown.
If your software is buggy, then its bugs will also be.. highly available!
Noticed before that we mentioned hardware and systems software? A high-available website means that it “runs” in two instances, but says nothing about the quality of the website’s software. On the other hand, low-level systems software is generally much more stable than most types of other software. It is only logical; systems software is a critical piece of a computer. So high availability works because the software that implements high availability is stable, having gone through rigorous testing and quality assurance, before been released.
This has parallels with physical engineering as well. You absolutely don’t want a bridge, or a transportation system, or a rocket to have “bugs”. Similarly, you don’t want buggy systems software as their malfunction can nowadays jeopardise whole enterprises, businesses, academic networks, and basically pretty much everything.
Pressidium’s Managed WordPress Platform
When we started working on the platform that would eventually become the Pressidium Platform, we worked following these ideals:
- Everyone should enjoy the benefits of Enterprise-grade hosting without having to pay obscene amounts of money.
- Enterprise-grade would mean exactly that. Performance, High-Availability, Security, Scalability.
We do not resell other people’s Enterprise architecture. Our managed WordPress Platform is built from the ground-up, by us, leveraging our 20+ years of experience in Telecoms, and our passion for complex systems. We do not sell fool’s gold by the river. As engineers, we understand very well the frustration that comes when something is not working correctly, or when something is advertised as being something else.
Conversely, we revered the systems that did work as they were supposed to. Ultimately, that’s what we aimed to build and nothing less.
Using Pressidium’s managed WordPress platform:
- you gain access to Enterprise-grade service on all plans, even standard ones. Fault-tolerance, load-balancing, everything.
- You get optimal performance using adaptive caching techniques specifically tailored for your website. Our caching tier is second to none, and it shows.
- you get high availability even on the level of filesystem, using our parallel file system data tier.
- With Enterprise-level plans, you get a dedicated n-tiered cluster architecture just for your website, ready to scale in every direction for your demanding needs.
In future articles, we will be expanding on the rest of the fundamentals, such as security, performance, and scalability. We will also be shedding some light on certain implementation details behind our managed WordPress platform. We feel that it is our duty, as engineers, businessmen, and fellow human beings, to be completely honest and transparent about the service we provide and having in mind the customer’s needs and budget to provide the solution that is the most advisable.
Host your WordPress Website with Pressidium!