Overview of High Availability in the Cloud


Running your application in the cloud is simple and easy. You don’t need to maintain your own data centers, which saves you plenty of time to focus on bringing value to your customers. However, that doesn’t mean all issues are taken care of for you. You’ll need to ensure your application is available and accessible to your customers. This is usually called “high availability”.

 

In this post, I’ll be going over high availability to give you a good starting point.


What Is High Availability

 

High availability is keeping your compute infrastructure functional and reachable even when there are issues. To illustrate high availability, let’s consider an example of a natural disaster that hit your cloud provider’s data center. Even when some of their data centers are down, it shouldn’t make your application inaccessible to your customers. This is possible because there is redundancy in your application and infrastructure in the cloud. An exception is a catastrophic event that knocks down every data center out there, but you’ll have other things to worry about in that case.

 

Importance of High Availability

 

Down time of your application can be costly. It can lose your customers and/or hurt the relationship with your customers. When your application is not available it can cause your customers to lose trust and feel that your company is unreliable. To keep down time as low as possible you’ll need to have a high availability set up for your application.

 

Common Cloud Architecture for High Availability

 

So, now that you have an idea of the importance of high availability, the next step is to see how it is like in practice. There are different ways to approach the specifics depending on your use cases and customer base. However, the high-level approach tends to fall under two configurations: Active/Active and Active/Passive.

 

Active/Active

 

Within an Active/Active design, your application would be running in more than one region — let’s say two regions to keep it simple. Client traffic would be routed to one of the two regions by a load balancer. When one of the regions fails, client traffic will automatically be directed to the other region. Once the failing region recovers, the traffic will start to split between the two regions again. The biggest benefit to an Active/Active setup is that it keeps the load balanced between your application in both regions.

 

high availability active/active

high availability active/active

 

Active/Passive

 

Within an Active/Passive design, your application would be running in one region but is available in more than one region — let’s go with two regions. One of the two regions will be chosen by you as the primary and the other is the backup for failover. Your application is running in the primary region while in the backup region it will be on standby. All the client traffic will be routed to the primary region and would only be routed to the other when the primary is down. Once the primary recovers, the client traffic will go to the primary again and the backup region goes back to standby.

 

high availability active/passive primary

high availability active/passive primary

 

high availability active/passive failover

high availability active/passive failover


I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.

 

Are you new to the cloud? If you are new I have a post series about key concepts to understand when moving over to the cloud that you should definitely check out.

 

To get in touch, follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.


About Steven To

Steven To is a software developer that specializes in mobile development with a background in computer engineering. Beyond his passion for software development, he also has an interest in Virtual Reality, Augmented Reality, Artificial Intelligence, Personal Development, and Personal Finance. If he is not writing software, then he is out learning something new.