As the Windows Azure Infrastructure as a Service (IaaS) platform continues to gain adoption, more complex applications are being deployed and a variety of unique use cases are developing. What is common among all of them is the need to make sure that the deployments are highly available and can sustain multiple component failures both in pure Azure infrastructures and across cloud boundaries in hybrid deployment.
When either legacy or new applications are deployed in Windows Azure a common need for high availability and performance optimization dictates a need for load balancing and application delivery services such as content switching, SSL Termination and authentication integration. Microsoft has addressed the need for basic high availability with the native load balancer for Azure. However, when robust L7 load balancing and application delivery services are required, KEMP’s LoadMaster for Azure, greatly complements the functionality available in Azure for application and high availability fault tolerance.
How to Make Azure High Availability Highly Available
By deploying a pair of LoadMasters in Azure with KEMP’s GSLB option known as LoadMaster GEO, you’re able to achieve intelligent high availability of the LoadMaster solution itself as well as the building blocks for traffic distribution across public/private cloud boundaries. Let’s take a look at some details:
The following diagram provides a high level overview of a typical deployment designed to provide High Availability using LoadMaster for Azure with GEO functionality. As depicted, Service Endpoints are created on Cloud Services for LoadMaster VMs and LoadMaster takes over traffic distribution responsibilities for deployed applications:
To configure high availability using LoadMaster GEO, the following pre-requisites must be in place:
- Application VMs are installed and configured
- LoadMaster for Azure VMs are installed and configured
- Virtual Services for applications are created on both LoadMaster VMs
- Service Endpoints are created on Cloud Services for LoadMaster VMs
- Following Management Endpoints are created on Cloud Services for LoadMaster VMs
- TCP Port 22 for SSH access
- TCP Port 8443 for Management Web User Interface access
- UDP Port 53 for inbound DNS queries to GEO LoadMaster
- DNS delegation is configured for application endpoint (e.g. app.contoso.com) so that requests are resolved by LoadMaster GEO
- In DNS zone files, the entry may look similar to the following:
Entry Name, TTL, Type, Data
App.contoso.com, Default, NS, lmservice01.cloudapp.net
App.contoso.com, Default, NS, lmservice02.cloudapp.net
- Authoritative DNS Server for zone contoso.com forwards resolution request to LoadMaster devices
Let’s take a look at the protocol workflow for incoming requests where traditional LoadMaster and LoadMaster GEO functionality is combined in Azure:
- Client requests name resolution to access service or application
- Request is forwarded to GEO since the domains SOA dictates that requests for this namespace be resolved by the GEOs
- LoadMaster uses GEO functionality to determine health status of each participating LoadMaster and Virtual Service along with configured load balancing mechanism, such as round robin or proximity, to determine which Azure endpoint IP address the request should resolve to
- Client receives response with appropriate service IP address based on configured critera
- Client application connects to resolved IP address, LoadMaster forwards the request to application servers according to configured load balancing mechanism and server’s health state
The following diagram provides visual overview of the process:
Configuring LoadMaster GEO
Below are the high-level steps required to configure LoadMaster GEO for Azure high availability:
- Configure Access to allow Remote LoadMaster to retrieve service status information
- Configure Clusters (LoadMaster units) that are servicing application endpoints
- Configure FQDNs for service endpoints
- Configure SOA and Resource Check parameters
The LoadMaster for Azure deployment and high availability guides provide detailed steps on all configuration requirements for the solution.
Windows Azure provides a stable and mature IaaS platform for new and legacy application deployments. KEMP’s extended high availability and application delivery features complement the platform with functionality that allows for intelligent L7 high availability and intelligent steering across Azure and private clouds. By integrating KEMP LoadMaster with your Azure deployment, your applications benefit not only when they are deployed as Windows Azure cloud services but also when you opt for hybrid deployments helping you meet the SLAs expected by key stakeholders and Line of Business IT decision makers.
For more details about KEMP’s Windows Azure offering including deployment guides, please visit:
Bhargav Shukla is the Director of Product Research and Innovation at KEMP Technologies.