6 things you should consider when designing for high availability

In today’s IT world, users expect online services to be available 24×7 so that they can access them when it’s most convenient. But as IT failures are inevitable, to ensure that availability, rather than thinking about what might happen if things go wrong, it’s vital that you have a business continuity plan (BCP) in place to determine what will happen when things go wrong.

Failures can occur for all sorts of reasons, including:

When designing cloud applications, it’s important to consider how they will handle these failures and errors. You should engineer your applications to respond gracefully to failures and continue servicing requests.

For example, ask yourself how your applications will behave if:

This blog highlights some of the main considerations you should think about when designing your applications for high availability.

 

Eliminate single points of failure

One of the key goals of high availability is to eliminate single points of failure in your infrastructure. A single point of failure is a component in your technology stack that would cause a service interruption if it became unavailable. As such, any component that is necessary for the proper functionality of your application that does not have redundancy is considered to be a single point of failure.

 

Distribute across multiple locations

By distributing your application across multiple locations, you can ensure that if anything goes wrong in one location, such as network connectivity or power issues, service can continue in another. In addition, by selecting geographically diverse locations, you can mitigate against more extreme failures, such as a natural disaster, targeted terrorist attack or mass WAN failure.

 

Evaluate your risk appetite

Building redundancy into your environment to make it highly available can quickly become expensive, so you should carefully consider what risks you’re prepared to take for some or all of your applications and what kind of budget you have to mitigate that risk. High availability requires that you find a balance between your risk appetite and cost so you should evaluate your specific requirements carefully.

Ask yourself: if your application goes down, how quickly do you need it to come back up. Consider:

 

Monitor the health of your environment

By regularly checking your systems to make sure everything is behaving as it should, you can respond quickly to prevent potential outages before they have a chance to cause disruption. Some things you should be monitoring include:

 

Be aware of potential cyber threats

What does your security posture look like? Do you have a strategy in place to counter attempted DDoS attacks? What happens if you’re struck by malware, ransomware or a virus?

Cyber attacks are big news, so to avoid being the next headline you should ensure that you have some form of protective monitoring in place to make sure you’re covered.

An effective protective monitoring service should:

 

Consider the worst-case scenario

What happens if an entire site goes down? Does your high availability strategy extend to cater for more catastrophic failures with your applications gracefully resuming operations in an alternative site until the disaster is over?

You should design your applications to expect an entire site to become unavailable and to gracefully resume operations within an alternative site until the original site becomes available again. You can extend the techniques for delivering high availability to cater for more catastrophic failures.

There are two primary challenges when running an application actively across two sites:

 

Final thoughts

Some final thoughts on how you can design your application architecture for high availability:

 

The multi-cloud experts

It’s important to note that there is no one design fits all. If you’re looking to implement a BCP or improve the availability of your applications, you can talk to UKCloud’s multi-cloud experts who can help you design the best high availability solution for your requirements.

For information about how our platform supports high availability, see the High availability on the UKCloud platform article on our Knowledge Centre.