I work with some of the larger Fortune 100 accounts. Many of then have a cloud strategy and are attempting to move on-premise workloads to the cloud. Unfortunately I see many of my customers making bad decisions by simply lifting VM’s into Azure. Somehow moving an app or workload to “the cloud” is going to deliver all the buzzwords the CIO wants to hear. In recent weeks there was an outage at a data center in the cloud. An entire data center went down and all services within the affected data center were degraded. Despite the numerous conversations and messages I have delivered over the past three years my phone started ringing – “I thought the cloud gave us high availability?!?” or “We thought we had redundancy by simply being in the cloud!”.
You must architect for the cloud to achieve the full benefits of cloud.
Fortunately there were no critical systems impacted and my customers have seen that they have to start thinking differently. This has provided me with a great opportunity to educate my customers on how to achieve high availability, resiliency, and redundancy. For the purpose of this conversation I am going to focus on Microsoft Azure and a web based system that uses App Services, Azure Sql, and Azure Storage.
Customer has a web app in Azure that is hosted in a single region. The App Service, Azure Sql, and Azure Storage are all hosted within the Central region. If a regional outage occurs these systems could become unavailable.
The solution must be hosted across regions with failover for App Services, Azure Sql, and Azure Storage. If a regional event occurs and service is degraded the system will still be available as it is simply served from the secondary region.
To begin let’s discuss Azure Traffic manager. We will use Azure Traffic Manager to route traffic to the App Services.
What is Azure Traffic Manager?
Azure Traffic Manager is a DNS-based traffic load balancer that enables optimal distribution of traffic to services across global Azure regions, while providing high availability and responsiveness. Traffic Manager uses DNS to direct client requests to the most appropriate service endpoint based on a traffic-routing method and the health of the endpoints.
A few benefits of Azure Traffic Manager include:
- Increase application availability
Traffic Manager delivers high availability for your critical applications by monitoring your endpoints and providing automatic failover when an endpoint goes down.
- Improve application performance
Azure allows you to run cloud services or websites in datacenters located around the world. Traffic Manager improves application responsiveness by directing traffic to the endpoint with the lowest network latency for the client.
- Perform service maintenance without downtime
You can perform planned maintenance operations on your applications without downtime. Traffic Manager directs traffic to alternative endpoints while the maintenance is in progress.
- Combine hybrid applications
Traffic Manager supports external, non-Azure endpoints enabling it to be used with hybrid cloud and on-premises deployments, including the “burst-to-cloud,” “migrate-to-cloud,” and “failover-to-cloud” scenarios.
- Distribute traffic for complex deployments
Using nested Traffic Manager profiles, traffic-routing methods can be combined to create sophisticated and flexible rules to scale to the needs of larger, more complex deployments.