Skip to content

Architecture Overview

Solution Summary

This repository provides deployment automation for Azure Virtual Desktop (AVD) using Azure Local (formerly Azure Stack HCI) as the session-host compute platform.

The AVD architecture has two distinct planes:

  • Control plane – Hosted in Azure. Includes the host pool, application groups, workspace, and all supporting Azure services (Key Vault, Log Analytics, Storage for FSLogix).
  • Session-host plane – Hosted on-premises on Azure Local clusters. VMs are created as Arc-enabled virtual machines and registered with the AVD host pool in Azure.

High-Level Architecture

![AVD on Azure Local reference architecture](../assets/images/avd-reference-architecture.png)
AVD on Azure Local — control plane in Azure, session hosts and SOFS on-premises, connected via Arc Resource Bridge and Arc-enabled AVD agent registration.

Key Components

ComponentLocationDescription
Host PoolAzureLogical grouping of session hosts; defines pooled vs. personal type
Application GroupAzureCollection of apps or desktops published to users
WorkspaceAzureUser-facing aggregator for one or more application groups
Log Analytics WorkspaceAzureDiagnostics, monitoring, and Azure Monitor integration
Diagnostic SettingsAzureSends AVD control-plane diagnostic categories to Log Analytics
RBAC AssignmentsAzureLeast-privilege role assignments for AVD users and VM login roles
Key VaultAzureStores domain-join credentials, registration tokens, and certificates
Storage AccountAzureOptional: MSIX app attach packages or cloud-side FSLogix share
Azure Local ClusterOn-premisesHyper-converged infrastructure running Storage Spaces Direct
Arc Resource BridgeAzure LocalEnables Azure to manage on-premises VMs as Arc-enabled resources
Session Host VMsAzure LocalWindows VMs running the AVD Agent and FSLogix Agent
SOFS / FSLogixAzure LocalSMB share providing profile containers (companion repo)

Identity Options

OptionDescription
Active Directory Domain Services (AD DS)Traditional on-premises domain; session hosts domain-joined
Microsoft Entra ID + AD DS hybridHybrid join using Entra Connect; supports Conditional Access
Microsoft Entra ID onlyEntra-joined session hosts; requires FSLogix cloud cache or Azure Files

Network Considerations

  • Session hosts require outbound HTTPS (443) to Azure for AVD broker, Entra ID, and Windows Update endpoints.
  • RDP traffic from clients terminates at the AVD gateway in Azure; no inbound firewall rules needed on-premises.
  • SMB traffic for FSLogix (port 445) between session hosts and SOFS stays on the local network.
  • Use a dedicated storage/management VLAN for intra-cluster and SOFS traffic.
  • DNS must resolve both Azure endpoints and on-premises names from session-host VMs.

Storage Sizing Guidance

User CountFSLogix VHD SizeRecommended SOFS CSV
Up to 10030 GB / user~3 TB usable
100 – 50030 GB / user~15 TB usable
500+30 GB / userScale horizontally

Operational Baseline

  • Canonical configuration contract is config/variables.yml validated by config/schema/variables.schema.json.
  • Bicep is the strongest direct path; Terraform, ARM, PowerShell, and Ansible consume mapped/derived values.
  • Monitoring is required: host pool, application group, and workspace diagnostics route to Log Analytics.
  • Identity is required: role assignments for AVD users and VM login groups are managed as code.
  • FSLogix profile settings are configured post-provisioning (or extension-based) and validated in test scenarios.

Reference docs:

  • docs/reference/variable-mapping.md
  • docs/reference/tool-parity-matrix.md
  • docs/reference/phase-ownership.md
  • docs/reference/monitoring-queries.md

Extended Documentation

Released under the MIT License.