azure-avd-terraform-accelerator

πŸ“Š Architecture Overview - Enhanced AVD Deployment

Current Architecture (Your Existing Deployment)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Azure Subscription                          β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚              Resource Group (avd-prod-rg-xxxxx)         β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         NETWORKING MODULE                        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Virtual Network (10.0.0.0/16)                β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Subnet (10.0.1.0/24)                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Network Security Group                        β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         MONITORING MODULE                        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Log Analytics Workspace                       β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Application Insights (optional)               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Action Groups for alerts                      β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         SECURITY MODULE                          β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Key Vault                                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Admin password (auto-generated)               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Secrets management                            β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         STORAGE MODULE                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Storage Account (Premium Files)               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ FSLogix File Share                            β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Private Endpoint (optional)                   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Private DNS Zone                              β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         AVD MODULE                               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Host Pool                                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Workspace                                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Desktop Application Group                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ RemoteApp Application Group (optional)        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Scaling Plan (optional)                       β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         COMPUTE MODULE                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Session Host VMs (5x)                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Network Interfaces                            β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Availability Zones (1, 2, 3)                  β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Monitoring Agents                             β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Auto-Shutdown Schedules                       β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Azure AD Join / Domain Join                   β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Enhanced Architecture (With New Modules)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Azure Subscription                          β”‚
β”‚                                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚              Resource Group (avd-prod-rg-xxxxx)         β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         NETWORKING MODULE                        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Virtual Network (10.0.0.0/16)                β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Subnet (10.0.1.0/24)                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Network Security Group                        β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         MONITORING MODULE                        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Log Analytics Workspace                       β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Application Insights (optional)               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Action Groups for alerts                      β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         SECURITY MODULE                          β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Key Vault                                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Admin password (auto-generated)               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Secrets management                            β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         STORAGE MODULE                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Storage Account (Premium Files)               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ FSLogix File Share                            β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Private Endpoint (optional)                   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Private DNS Zone                              β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         AVD MODULE                               β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Host Pool                                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Workspace                                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Desktop Application Group                     β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ RemoteApp Application Group (optional)        β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Scaling Plan (optional)                       β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚         COMPUTE MODULE                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Session Host VMs (5x)                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Network Interfaces                            β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Availability Zones (1, 2, 3)                  β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Monitoring Agents                             β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Auto-Shutdown Schedules                       β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Azure AD Join / Domain Join                   β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚  ⭐ BACKUP MODULE (NEW)                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Recovery Services Vault                       β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Backup Policy                                 β”‚  β”‚   β”‚
β”‚  β”‚  β”‚    - Daily: 30 days retention                    β”‚  β”‚   β”‚
β”‚  β”‚  β”‚    - Weekly: 12 weeks retention                  β”‚  β”‚   β”‚
β”‚  β”‚  β”‚    - Monthly: 12 months retention                β”‚  β”‚   β”‚
β”‚  β”‚  β”‚    - Yearly: 5 years retention                   β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ VM Backup Items (5x session hosts)            β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Soft Delete: 14 days                          β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚  ⭐ IMAGE GALLERY MODULE (NEW)                  β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Shared Image Gallery                          β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Win11 Multi-Session Definition                β”‚  β”‚   β”‚
β”‚  β”‚  β”‚    - Publisher: MicrosoftWindowsDesktop          β”‚  β”‚   β”‚
β”‚  β”‚  β”‚    - Offer: Windows-11                           β”‚  β”‚   β”‚
β”‚  β”‚  β”‚    - SKU: win11-22h2-avd                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Win10 Multi-Session Definition (opt)          β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ RBAC for CI/CD Pipeline                       β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  β€’ Image Versions (populated later)              β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚                                                           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚  ⭐ POLICY MODULE (NEW)                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  Policy Assignments (6):                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  1. βœ… Require Managed Disks                    β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  2. βœ… Allowed VM Sizes                         β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  3. βœ… Require Environment Tag                  β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  4. βœ… Deploy Antimalware Extension             β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  5. βœ… Audit VM Encryption                      β”‚  β”‚   β”‚
β”‚  β”‚  β”‚  6. βœ… VM Diagnostic Settings                   β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Module Dependencies

main.tf
   β”‚
   β”œβ”€β”€> module.networking (base)
   β”‚
   β”œβ”€β”€> module.monitoring (base)
   β”‚
   β”œβ”€β”€> module.security (base)
   β”‚
   β”œβ”€β”€> module.storage (depends on: networking)
   β”‚
   β”œβ”€β”€> module.avd (independent)
   β”‚
   β”œβ”€β”€> module.compute (depends on: networking, avd, security, monitoring)
   β”‚
   β”œβ”€β”€> ⭐ module.backup (NEW - depends on: compute)
   β”‚      β€’ Waits for VMs to be created
   β”‚      β€’ Applies backup protection to all session hosts
   β”‚
   β”œβ”€β”€> ⭐ module.image_gallery (NEW - independent)
   β”‚      β€’ Can be created in parallel
   β”‚      β€’ No dependencies on other modules
   β”‚
   └──> ⭐ module.policy (NEW - depends on: monitoring)
         β€’ Needs Log Analytics workspace ID for diagnostics policy

Resource Naming Convention

Resource Prefix: avd-prod
Random Suffix: abcd1234

Resources Created:
β”œβ”€β”€ Resource Group:        avd-prod-rg-abcd1234
β”œβ”€β”€ Virtual Network:       avd-prod-vnet-abcd1234
β”œβ”€β”€ Subnet:                avd-prod-subnet-abcd1234
β”œβ”€β”€ NSG:                   avd-prod-nsg-abcd1234
β”œβ”€β”€ Storage Account:       avdprodsaabcd1234
β”œβ”€β”€ Key Vault:             avd-prod-kv-abcd1234
β”œβ”€β”€ Log Analytics:         avd-prod-law-abcd1234
β”œβ”€β”€ Host Pool:             avd-prod-hp-abcd1234
β”œβ”€β”€ Workspace:             avd-prod-ws-abcd1234
β”œβ”€β”€ Desktop App Group:     avd-prod-dag-abcd1234
β”œβ”€β”€ Session Hosts:         avd-prod-vm-0, avd-prod-vm-1, ...
β”‚
β”œβ”€β”€ ⭐ NEW RESOURCES:
β”œβ”€β”€ Recovery Vault:        avd-prod-rsv-abcd1234
β”œβ”€β”€ Shared Image Gallery:  avd_prod_sig_abcd1234
└── Policy Assignments:    (system-generated IDs)

Feature Toggle Matrix

Feature Default Production Dev/Test Cost/Month
Core Modules Β  Β  Β  Β 
Networking βœ… Always βœ… Required βœ… Required Included
Monitoring βœ… Always βœ… Required βœ… Required ~$5
Security βœ… Always βœ… Required βœ… Required ~$5
Storage βœ… Always βœ… Required βœ… Required ~$100
AVD βœ… Always βœ… Required βœ… Required Free
Compute βœ… Always βœ… Required βœ… Required ~$350/VM
Β  Β  Β  Β  Β 
NEW: Optional Modules Β  Β  Β  Β 
Backup ❌ Off βœ… Recommended ⚠️ Optional ~$20/VM
Image Gallery ❌ Off βœ… Recommended ⚠️ Optional ~$5
Policy ❌ Off βœ… Recommended βœ… Recommended Free
Β  Β  Β  Β  Β 
Auto-Shutdown βœ… On ❌ Disable βœ… Enable Saves $$
Scaling Plan ❌ Off βœ… Enable ⚠️ Optional Free
Private Endpoints ❌ Off βœ… Enable ⚠️ Optional ~$10

Deployment Flow

Without New Modules (Current)

1. terraform init     (30 sec)
2. terraform plan     (45 sec)
3. terraform apply    (15-20 min)
   β”œβ”€ Networking      (2 min)
   β”œβ”€ Monitoring      (2 min)
   β”œβ”€ Security        (1 min)
   β”œβ”€ Storage         (3 min)
   β”œβ”€ AVD             (2 min)
   └─ Compute         (10-15 min)

With All New Modules

1. terraform init     (30 sec)
2. terraform plan     (60 sec)
3. terraform apply    (20-25 min)
   β”œβ”€ Networking      (2 min)
   β”œβ”€ Monitoring      (2 min)
   β”œβ”€ Security        (1 min)
   β”œβ”€ Storage         (3 min)
   β”œβ”€ AVD             (2 min)
   β”œβ”€ Compute         (10-15 min)
   β”œβ”€ ⭐ Backup       (2 min)
   β”œβ”€ ⭐ Image Gallery (1 min)
   └─ ⭐ Policy       (3 min)

Configuration Patterns

Pattern 1: Minimal (Dev/Test)

enable_backup        = false
enable_image_gallery = false
enable_policies      = false
enable_auto_shutdown = true

Use case: Quick testing, demos, POC
Cost: Lowest

Pattern 2: Standard Production

enable_backup        = true
enable_image_gallery = false  # Add later
enable_policies      = true
enable_auto_shutdown = false

Use case: Production without custom images
Cost: Medium

Pattern 3: Enterprise Production

enable_backup        = true
enable_image_gallery = true
enable_policies      = true
enable_auto_shutdown = false

Use case: Full production with golden images
Cost: Full featured


What’s Next

See detailed documentation:

Ready to deploy? Start with INTEGRATION-GUIDE.md!