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.
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.
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.