Make no mistake. This is not a blog for techies. But for those, like me, who are new to load balancing, here's something you may want to wave in front of other laymen/women if you ever get asked these questions...
What is high availability and why does it matter?
So. Our business is all about ensuring high availability. Of systems. Of components. Of applications. But why? What's the big deal if these things fail? Well, no big deal at all if these things aren't critical. But if they are, then high availability is a key risk management play worth investing in.
If you're in the business of providing services that your end users might consider critical (e.g. financial services through a banking app, or medical images to aid diagnosis) then you need high availability to guarantee uptime. Translated, this means everything keeps going, all of the time. Even when systems fail.
High availability doesn't stop failures from happening. But it does make sure that things keep going, even when they do.
Not having high availability is like setting off on a long car journey without a sat nav. Things will go well for a while, but inevitably, road closures mean you'll have to be adaptable enough to change route - or accept that you're going nowhere!
All systems have a degree of availability - otherwise, people wouldn't buy them. But the flip side of availability is downtime i.e. a period of time when the system/component/application is likely to go offline and become unavailable to the end user. No one sets out to build a breakable system, but critical system failures happen every day for a variety of reasons, most of which (by their very nature) cannot be anticipated.
High availability solutions, therefore, offer that next level of performance. They provide an additional layer of protection that mitigates the risk of downtime for critical applications.
Why is there an increased reliance on high availability solutions?
The more demands placed on our technology, the more applications we use, the more big data we store and analyze, the more new tech we deploy, the more we try to integrate this with legacy systems, the more complex our IT infrastructure becomes.
This has resulted in an increased reliance on high availability solutions to significantly reduce the likelihood of downtime for critical systems in the event of a system failure.
What does load balancing have to do with high availability?
Load balancing is a high availability solution that provides three very important additional features:
- Failure of a component does not always mean failure of the entire system - Load balancers are typically deployed in front of the application being load balanced, offering redundancy in the event of a system/component/application failure. If one server fails or becomes overloaded, the load balancer automatically redirects the traffic to the remaining healthy server(s). If the load balancer breaks and you are deployed in a highly available pair, the load balancer will send connections through to the other load balancer. You may hear our tech guys refer to this functionality as "eliminating a single point of failure". This is because if you only have a single load balancer and that fails, the connections won't be able to route to the application servers on the backend.
- Reliable failover - In layman's terms, this basically means that the end user remains none-the-wiser if anything untoward occurs. Our tech team will tell you this is "the ability to immediately and seamlessly switch from a broken node to a working node without losing data." Crucially, all this happens without the need for manual intervention by the tech team.
- Maintenance can be carried out without taking applications offline - The beauty of the load balancer is that in the event that a server is deliberately or accidentally taken offline, the end user can continue to use the application. This means that maintenance or repair activities can be undertaken at any time of day or night.
Definitely don't take my word for it...Speak to the experts!