Large Microsoft Teams recording deployments can require multiple Bot and Recording Servers, and other Azure components. The following article describes the possible scenarios.
For the general overview of the Microsoft Teams recording refer to the Microsoft Teams article.
Load-balancing and Failover with Azure Application Gateway
If a single Azure VM is not enough for handling the incoming load, or it is more cost-efficient using multiple smaller VMs instead of a single large VM, then load-balancing has to be configured between the VMs. For this purpose, an Azure Application Gateway can be used. It also capable of adding high availability to the deployment. An Application Gateway can provide N+1 (next-call) failover capability.
The following diagram shows the usage of an Application Gateway:
Geographical Routing for Global Deployments
In the case of large global deployments, multiple Bot servers may be deployed in multiple geographical regions. For the geographical routing, a Traffic Manager can be used instead of the Application Gateway. The Traffic Manager can balance the load between Bot servers within the same geographical region.
Microsoft Teams can be configured for 2N recording also. In this case, all the components that take part in the recording have to be duplicated, and assigned to the same recording policy.
If the recording policy is set to strict mode, then the recorded Teams user will be kicked out of the call only if both bot VMs are down. If a single bot VM is still up, then the recorded Teams user can still join into calls.
The following diagram shows the 2N recording architecture for Microsoft Teams:
2N Recording and Load-balancing
If multiple Bot and Recording Servers needed for handling the incoming load, and the 2N recording is also required, then the Application Gateway also has to be duplicated.
The following diagram shows the combination of the load-balancing and the 2N recording scenario:
Availability Sets and Availability Zones
When N+1 or 2N recording is configured, it is recommended to use Availability Sets or Availability Zones if possible. When using Availability Sets, the virtual machines are separated within the Azure datacenter, so it provides a more fail-proof functioning. On the other hand, Availability Zones physically separates the virtual machines into different zones (different datacenters) within the Azure region, so it provides even higher SLA. For more information, see Availability options for virtual machines in Azure.