Our fourth entry in the “How It Fits” series is…the Load Balancer!
Load balancers show up in every level of a Skype for Business deployment. They’re an integral component of effective Skype for Business Online tenants as well.
If a load balancer does its job right, it’s pretty much invisible. If it doesn’t, it’s a loud and persistent pain. Which it is all depends on your configuration. As such, you’re most likely to work with a load balancer when first deploying Skype for Business.
This post is meant as an overarching take on the load balancer’s function and value. If you’re looking at a new Skype for Business deployment, on-prem or hybrid, this is a quick read that could help a lot!
The Load Balancer’s Primary Role
A load balancer distributes traffic among servers in a pool. In Skype for Business, this means it distributes traffic between role-based server pools. For example, between two Front End Servers.
It’s similar in some ways to a Reverse Proxy. (Some hardware load balancers even include reverse proxy functionality.) But instead of worrying about authenticating traffic from outside the network, it focuses on optimal traffic management inside the network.
- Bolsters reliability. The load balancer helps prevent any one server from becoming overwhelmed.
- Increases overall Skype for Business stability. Smart traffic management helps avoid traffic bottlenecks.
- Some Skype for Business services require load balancing to function (e.g. managing HTTP traffic).
Main Components of a Load Balancer
At its core, a load balancer consists of:
- A Distribution algorithm, and
- A server pool monitor/health check
The distribution algorithm determines to which server it should send traffic requests. The server pool monitor, well, monitors the assigned server pool’s health and traffic responses.
What kind of traffic are we talking about? All kinds: HTTP/HTTPS, SIP, TCP, UDP. Basically, if you use server pools for any of the Skype4B Server Roles, you should use a load balancer for each.
Other Servers a Load Balancer Communicates With
In Skype for Business, you can load balance any Server Role which has (or can have) multiple servers in a pool. That includes:
- Edge Server
- Front End Server
- Office Web Apps Server
Load Balancers must communicate not only with the servers they’re balancing, but with the servers sending traffic to them. That means they’ll talk with the Mediation Server, PSTN Gateways, and our last “How it Fits” role, the Reverse Proxy.
What about Office 365? If you’re running a hybrid deployment, you’ll need load balancing on the on-prem side. From Plan for Network Devices that Connect to Office 365 Services:
Your organization needs to use a hardware load balancer (HLB) or a Network Load Balancing (NLB) solution to distribute requests to your Active Directory Federation Services (AD FS) servers and/or your Exchange hybrid servers.
In other words, load balancing between Office 365’s servers and your network!
What Kind of Load Balancer Should You Use?
Two types of load balancing exist in Skype for Business.
- DNS load balancing, and
- Hardware load balancing
This is an important distinction. It’s also the source of most load balancing grief.
DNS Load Balancing:
This is more a technique than a device. It involves mapping server pool names to not one, but a set of IP addresses in DNS.
Let’s say you have a Front End pool named “Headquarters.” The Headquarters pool has three IP addresses mapped to it – 10.10.10.1, 10.10.10.2, and 10.10.10.3.
When your Skype for Business client tries to connect to “Headquarters,” DNS sends it all three IPs. The client tries connecting to the first IP, 10.10.10.1. But this IP already has another client connected and cannot respond. So the client tries 10.10.10.2. That works.
Connections stable. Traffic load balanced.
Hardware Load Balancers:
A hardware load balancer is a dedicated device which distributes traffic requests to a server pool. I think of these like a “Traffic Cop” inside your network.
We use an F5 hardware load balancer for our Skype for Business Server. Cost us a bit, but wow did it help with call quality!
Since hardware load balancers actively listen to incoming & outgoing traffic, they can mitigate traffic bottlenecks. Preventing call drops, static, and external connection troubles.
When setting up load balancing in your topology, keep these restrictions in mind:
- If your Edge pool uses load balancing, the internal Edge interface and external Edge interface must use the same type. Can’t use DNS load balancing on one, and hardware on the other. You’ll experience some serious traffic errors!
- Some traffic types require a hardware load balancer (e.g. HTTP traffic). DNS load balancing does not work with client-to-server web traffic either.
Our experience confirms these restrictions. In Skype for Business Server’s early days, we observed that combining both load balancing types in one deployment caused havoc. Inconsistent delays, strange errors with no apparent cause, bottlenecks, etc. When we standardized on one load balancing type topology-wide, these issues evaporated.
Here’s a nice setup/overview video from A10 Networks if you’d like more.
Load Balancers Reduce TCO By Easing the Burden on Skyep4B Server Pools
Which load balancing method should you choose? There’s no universal standard. But we go by this rule of thumb: The larger the deployment, the more a hardware load balancer is necessary. They are more powerful, more intelligent, and more reliable.
It does add to up-front deployment cost. But it reduces TCO. Once load balancing is in place, configured, and running properly, it helps the Server Roles function at peak. Even (especially) under heavy load.
What kind of load balancing do you run in your Skype for Business topology?