Giter VIP home page Giter VIP logo

avdaccelerator's Introduction

Welcome to the Azure Virtual Desktop (AVD) Landing Zone Accelerator

Average time to resolve an issue Percentage of issues still open

LZA Baseline | Browfield Scenarios | Custom Image Build | Architectural Diagram

Overview

Enterprise-scale is an architectural approach and a reference implementation that enables effective construction and operation of landing zones on Azure, at scale. This approach aligns with the Azure roadmap and the Cloud Adoption Framework for Azure.

Azure Virtual Desktop Landing Zone Accelerator (LZA) represents the strategic design path and target technical state for Azure Virtual Desktop deployment. This solution provides an architectural approach and reference implementation to prepare landing zone subscriptions for a scalable Azure Virtual Desktop deployment. For the architectural guidance, check out Enterprise-scale for Azure Virtual Desktop in Microsoft Docs.

The Azure Virtual Desktop Landing Zone Accelerator (LZA) only addresses what gets deployed in the specific Azure Virtual Desktop landing zone subscriptions, highlighted by the red boxes in the architectural diagram below. It is assumed that an appropriate platform foundation is already setup which may or may not be the official ALZ platform foundation. This means that policies and governance should already be in place or should be set up after this implementation and are not a part of the scope this program. The policies applied to management groups in the hierarchy above the subscription will trickle down to the Enterprise-scale for Azure Virtual Desktop landing zone subscriptions.

This Repository

This repository will contain various customer scenarios that can help accelerate the development and deployment of Azure Virtual Desktop that conforms with Enterprise-Scale for Azure Virtual Desktop best practices and guidelines. Each scenario aims to represent common customer experiences with the goal of accelerating the process of developing and deploying conforming Azure Virtual Desktop using IaaC. Each scenario will eventually have an ARM, Bicep, PowerShell and CLI version to choose from. As of today, we have a first reference implementation scenario that is one of the most common ones used by Enterprise customers and partners and it can be used to deploy an Azure Virtual Desktop workload. We will continue to add new scenarios in future updates.

Getting Started

Azure Virtual Desktop - LZA Baseline

Getting Started deploying Azure Virtual Desktop (AVD) resources and dependent services for establishing the baseline

  • Azure Virtual Desktop resources: workspace, two (2) application groups, scaling plan and a host pool
  • [Optional]: new virtual network (VNet) with NSGs, ASG and route tables
  • Azure Files with Integration to the identity service
  • Key vault
  • Session Hosts
Deployment Type Link
Azure portal UI Deploy to Azure Deploy to Azure Gov Deploy to Azure China
Command line (Bicep/ARM) Powershell/Azure CLI
Terraform Terraform

If you are having deployment challenges, refer to the LZA baseline troubleshooting guide for guidance. For additional support please submit a GitHub issue.

Azure Virtual Desktop - LZA Optional Deployments

Brownfield scenarios

The brownfield section contains templates to deploy additional features for Azure Virtual Desktop when existing infrastructure already exists. These templates can be used individually as required. Here is the list of deployment options available:

Monitoring workbooks

Custom image build

Getting Started deploying a custom image based on the latest version of the Azure marketplace image to an Azure Compute Gallery. The following images are offered:

  • Windows 10 21H2
  • Windows 10 22H2 (Gen 2)
  • Windows 11 21H2 (Gen 2)
  • Windows 11 22H2 (Gen 2)
  • Windows 10 21H2 with O365
  • Windows 10 22H2 with O365 (Gen 2)
  • Windows 11 21H2 with O365 (Gen 2)
  • Windows 11 22H2 with O365 (Gen 2)

You can also select to enable the Trusted Launch or Confidential VM security type feature on the Azure Compute Gallery image definition.

Custom image is optimized using Virtual Desktop Optimization Tool (VDOT) and patched with the latest Windows updates.

Deployment Type Link
Azure portal UI Deploy to Azure Deploy to Azure Gov
Command line (Bicep/ARM) Powershell/Azure CLI
Terraform Terraform

Architectural Diagram

Azure Virtual Desktop accelerator diagram

Download a Visio file of this architecture.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Reporting issues

Microsoft Support is not yet handling issues for any published tools in this repository. However, we would like to welcome you to open issues using GitHub issues to collaborate and improve these tools.

avdaccelerator's People

Contributors

aaronparker avatar anlucen avatar chbragg avatar christiankuhtz avatar danycontre avatar edm-ms avatar github-actions[bot] avatar jamasten avatar jcorems avatar jcoyne-msft avatar jensheerin avatar jtracey93 avatar kmdfaizal avatar lenvolk avatar microsoftopensource avatar mofaizal avatar moisesjgomez avatar nataliakon avatar poven795909 avatar prasad3017 avatar ripom avatar roarrioj avatar shawntmeyer avatar svenaelterman avatar swathibhat1 avatar wahidsaleemi avatar whitscripts avatar willymoselhy avatar xelizondo avatar yahanda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

avdaccelerator's Issues

Docs: ALZ critical design areas

Page section: Design guidelines

There are only 6 ESLZ critical design areas listed from a total of 8.

Missing:

  • Enterprise Agreement (EA) enrollment and Azure Active Directory tenants
  • Management group and subscription organization

The wording in this section also reads to suggest that there are only 6 and not 8.

Fix:
Add additional pages for missing critical design areas.

OR

As these are likely to be very small sections, add commentary in the design guidelines sections detailing why there aren’t separate pages for them and our guidance on the 2 missing critical design areas for AVD "construction set"

Automatically Domain Join Azure Files for AD DS

It may be possible for us to automatically domain join an Azure Files storage account using a deployment script and Azure Image Builder.

We could prompt for domain credentials, and then pass parameters to the deployment script that AIB will inject into the VM. The VM can be domain joined, download the PowerShell cmdlets, run the commands, and then delete the VM.

We would likely use a service principal or potentially a managed identity attached to the VM (need to test) so that we could authenticate to Azure. This tends to be a challenging step in the deployment so if we could automate this it would be very beneficial.

Options for customers uploading scripts and SSL certificates.

This is tied to #2 and capabilities there. I would like to have an option for customers to upload both deploy scripts for their image build and any required SSL certificates to store in Key Vault. Not sure if we can accomplish this (I think we can), but it's something to investigate.

Docs section: Management & Monitoring - ALA workspace

Page section: Design Recommendations & Infra Design Considerations

Why 1 workspace per region? Unless RBAC or data sovereignty requirements mandate this, then a central workspace would be more aligned to ESLZ for WVD use only.

Consider changing guidance to follow ESLZ design guidance and provide context as to why you may go against the central workspace approach for some parts of WVD monitoring (cost purposes, lower retention requirements, simplify management view in workbooks ensuring it only contains correct data).

Fix:

  • Make a decision
  • Update docs/arch accordingly

Docs section: Automation & DevOps - Hashicorp packer

Page section: Design Recommendations - Creation of AVD Images

  • This sections mentions using HashiCorp Packer to build the WVD images.
  • Whilst this is the correct approach should we not be asking users to use Azure Image Builder, even in preview, as this aligns to the ESLZ design principles.

Fix:

  • Change references to HashiCorp Packer to Azure Image Builder and provide links to relevant docs.

Docs section: BCDR- Technical content

Page section: intro

  • Provide link back to ESLZ BCDR guidance alongside link to WVD DR docs

Page section: Design Consideration - Host Pool Compute Strategy

  • The content here is great, however does it clash with the WVD docs DR article that is linked in the intro? Set up Windows Virtual Desktop disaster recovery plan - Azure | Microsoft Docs

Page section: Design Consideration

  • Convert this bullet point to an numbered/ordered list:
  • "The recommended options for container storage types are (in order): Azure Files Premium, Azure NetApp Files Standard, and Azure NetApp Files Premium. The recommended storage type depends on the resources and latency required by the specific workload."

Fix:

  • Provide a single source of truth for this information to avoid article drift over time
  • Update docs

Docs section: Security, Governance and Compliance - Azure Security Center (ASC)

Page section: Design Recommendations - Azure Security Center

  • Azure Security Center is mentioned however it has recently been renamed to Azure Defender for cloud. Also there is missing context as to how ESLZ assists by enforcing Azure Defender via Azure Policy on all subscriptions in scope.

Page section: Design Recommendations - Secure Score

  • Microsoft Secure Score is referenced but not Azure Security Center's version

Fix:

  • Update recommendation to reflect these points
  • Include ASC Secure Score and context as to differences

Docs: Services features updates and additions

Some services were updated since the arch/docs were created, examples:

  • Update design recommendations and architecture based on the ability of AADDS service to create new replica sets un multiple regions
  • Replica sets concepts for Azure AD Domain Services | Microsoft Docs AADJ

Additionally based on customer asks/feedback we should include commonly used services (that are now GA) like:

  • Start VM on connect
  • Bastion
  • Image builder
  • Azure firewall (CX enforce all traffic through NVA, good to give them the AzFW option)

Fix:

  • Decide if new services/features should be added and which ones.
  • Docs updated.
  • Architecture updated.

Docs section: Security, Governance and Compliance - Diagnostics

Page section: Design Recommendations - Enable Logging

  • The reference to diagnostic logging is to log analytics workspaces is correct and good to see.

Fix:

  • Advise how ESLZ framework with Azure Policies can help achieve or already perform this task for the AVD deployment.
  • Update doc

Docs section: BCDR- Backup protection

Page section: Backup protection

  • Azure backup is mentioned as a way to protect host pool VMs. However we would only suggest this for personal VMs as pooled VMs would be rebuilt from an image as are stateless. This is called out in the design recommendations near the bottom of the article

Fix:

  • Update point to call this out and be prescriptive to provide guidance. It is adding costs to customers if they enable Azure Backup to backup pooled VMs when they have the profile data in FSLogix and the OS/Apps stored in an image held in a SIG. Perhaps make reference to the design recommendations in the earlier section.

Cannot trigger build for images from Azure Portal

Currently AIB has an Azure Portal bug with the 2021-10-01 API version. Any AIB template built with this API cannot be run from the Portal. We currently work around this by triggering the build via deployment script at the time of deployment, but subsequent runs will not work unless done via REST call.

In the interim I suggest we also deploy a template spec into the AVD resource group we create that can be used to trigger image builds.

Automation & DevOps - Reference implementation code (Terraform)

Should there be a complete "deploy to Azure" button experience to enable the entire landing zone? Like we have for ESLZ?

  • Sub? For supported billing models
  • VNET
  • Peering
  • NSGs
  • AVD stuff (Workspace, App Group, Host Pool)
  • Azure Files
  • Private Endpoint
  • Auto scale Logic App
  • Key Vault
  • Shared Image Gallery
  • NSG with AVD rules
  • AzFW with AVD rules
  • AADDS??

Fix:

  • Author terraform for resources deployment.

Docs section: Management & Monitoring - Content semantics

Page section: Design recommendations

  • Open statements that are not prescriptive could cause customers to become confused as to what to do.
  • Collect telemetry from the following platform services:
  • Workspaces
  • Host pools
  • Performance counters should be collected.
  • Windows Event Logs should be collected.
  • Create a dashboard from the platform logs to centralize visuals for reporting operations.

This will make it clear to customers where to go for more detail on exactly what to do

Fix:

  • Update docs

Docs section: Management & Monitoring - content

Page section: Design recommendations

  • Should the points be in the Identity and Access management section also, or a link to them in one of these pages?
  • Assign application groups to user groups to ease your administration overhead.
  • Application groups can be segregated in many ways. We recommend separating them based on which department or user type (for example, power, engineering, or general) the user is a part of.
  • this page has a mix of good prescriptive guidance & some very open suggestions. Consider adding points to be more prescriptive to align to ESLZ

Page section: Design recommendations - Infra

  • The last bullet point here, in my opinion, is where this page should go into detail on as to how to implement WVD in an ESLZ world and all our best practices for the workload on top of that, we should Add context on how to achieve this point with the construction set

Fix:

  • Move points to IAM section
  • Update docs

Portal UI Format

We need to determine the options and flow for the custom UI.

Pooled / Personal radio button
If pooled then show: load balancing option, users per pool, scaling option, etc.

Docs section: Network & Connectivity - Target information

This page has a lot of information on it that isn't specific to AVD as a "construction set" upon an ESLZ framework.

The CAF networking decision tree & common networking scenarios etc. Shouldn't live in this doc and are covered in the ESLZ networking sections for what is relevant for "corp" connected workloads which is effectively what WVD is.

This page seems more like a general CAF doc for networking which we already have covered in ESLZ and elsewhere.

This should be prescriptive around the networking considerations for WVD deployments on and ESLZ framework.

Make this doc specific to the AVD construction set networking design covering the below:

  • VNET design
  • Subnets
  • Micro segmentation
  • Peering back to hub or VWAN as per ESLZ
  • DNS configuration
  • For AD DS Join
  • Private Link/Endpoint
  • NSGs
  • Including suggested rules
  • Private Endpoints
  • Creation and placement
  • DNS Zones back to central ones in ESLZ
  • WVD required URLs
  • How to handle with and without Azure Firewall
  • Azure Files
  • Private Endpoint
  • SMB Multi-Channel
  • Considerations before enabling
  • (breaks NTFS GUI & have to use icacls)
  • How to handle internet breakout
  • Connectivity back to on-prem
  • Linking back to ESLZ network docs and just providing context as to how ESLZ sits on top of ESLZ and therefore uses the hubs

Image Customizations

Currently we run a modified version of the VDI optimization script here: https://github.com/edm-ms/poc/blob/main/avd/Bicep/Parameters/script-vdi-optimize.ps1

There are other things we should do in the images. Here are a few I was thinking about:

Registry + Firewall settings for RDP Shortpath: https://docs.microsoft.com/en-us/azure/virtual-desktop/shortpath#configure-rdp-shortpath-for-managed-networks

FSLogix Settings: https://docs.microsoft.com/en-us/fslogix/profile-container-configuration-reference

Identify deployment scenarios:

  1. Self-Contained POC (AAD Join)
  2. Self-Contained POC w Hybrid Networking (AADDS or AD DS)
  3. Deployment w AZFW Premium
  4. Deployment w Third-party NVA
  5. Deployment w no FW

All self-contained POC scenarios will include the following:

  • AZFW Premium w self-generated SSL Certificate
  • AIB with AZFW certificate injected into VM image
  • Pre-built AVD firewall rules with TLS inspection and web content filtering

We also should include Template Spec definitions for deployments that link to Azure Key Vault enabling easy addition of session hosts without prompting for domain join and local admin passwords.

Docs section: Automation & DevOps - Shared Image Gallery content (SIG)

Page section: Design Recommendation - Integrate Windows Virtual Desktop golden image creation with DevOps

This section is more of a suggestion than prescriptive, opinionated guidance as per ESLZ approach

Fix:

  • Update section to provide prescriptive and opinionated approach to using SIGs for images and the considerations that need to be made.
  • Also name of the service needs to be updated in the document since the service was renamed to "Azure Compute Galleries".

Docs section: Security, Governance and Compliance - Endpoint protection

Page section: Design Recommendations - Endpoint Protection

  • Recommendation for endpoint protection states that "Other security needs like network protection, web content filtering, attack surface reduction, security baselines for VM hosts, and threat vulnerability management should be part of your Windows Virtual Desktop design" However in both this section and the below AVD OS Security section there is no reference to Azure Firewall or other Azure Network Security tools/practices
  • The last sentence says "See the following section for links to Azure Virtual Desktop host security best practices.

Fix:

  • Include guidance/suggestions for Azure Firewall (Standard/Premium) and NSGs, Service Tags, etc.
  • Provide link to this section for ease of use
  • Update doc

Docs: Landing zone subscription naming and design

Page section: Architecture

Why "Collaboration Team" naming for AVD subscription?

Could this lead to potential RACI confusion for customers on the operational side of things?

Collaboration to me, means Teams/M365 etc. not Image Management for AVD etc.

Fis:

  • Update with a subscription name that clearer alignment and demarcation.

Docs section: BCDR - SLAs

Page section: Design Consideration - Host Pool Compute Strategy

  • For the VM resiliency points AV Sets & AZs are mentioned but not the single instance SLAs for Standard HDD/SSD & Premium SSD. This is called out in the design recommendations near the bottom of the article

Fix:

  • Add details on SLA for single instance VM depending on which disk storage option is chosen
  • Perhaps make reference to the design recommendations in the earlier section.

Docs section: BCDR- Backup protection

Page section: Design Consideration - Host Pool Compute Strategy

  • In the active-active suggestion FSLogix Cloud Cache is used. However there is no reference to ensuring that there is enough local disk space and the performance tier of the local disk caching these profiles.

Fix:

  • Include detail around disk storage size and performance requirements when using FSLogix Cloud Cache

Docs section: Management & Monitoring - Diagnostic settings

No mention of diagnostic logs, configured by Azure Policy, going to the ESLZ central Log Analytics Workspace (not 1 per region)

Fix:

  • Updated docs to state diagnostic settings for all AVD resources should still be configured, preferably via a DeployIfNotExists Azure Policy assigned to a higher scope Management Group (AVD landing zone MG), alongside the performance and more detailed AVD monitoring.

Docs section: Automation & DevOps - Storage account access (public endpoint)

Page section: Design Recommendations - Creation of AVD Images

  • This section details using an Azure Storage Account with Storage Account Keys.
  • The ESLZ reference implementations will put in place a policy to "Prevent usage of Public Endpoints for PaaS services in the corp connected landing zones", which this workload would meet.

Fix:

  • Update the recommendation on this page to accommodate the default ESLZ policy applications to ensure compliance with ESLZ. E.g. Private Link
  • Also if a Storage Account Key can be avoided from using and changed to Managed Identities etc. Then this should also be changed.

Docs section: Automation & DevOps - Application delivery

Page section: Design Recommendations - App Installs in AVD Images

  • App-V is mentioned here, however MSIX AA is the direction of travel for app delivery.
  • Also refence to 3rd parties is outside of ESLZ design principles.

Fix:

  • Add or change guidance for App-V to MSIX AA to align with roadmap etc.
  • Remove references to 3rd parties.

AVD Monitoring

We need to deploy the monitoring workbook: https://docs.microsoft.com/en-us/azure/virtual-desktop/azure-monitor as part of the base deployment.

We can create diagnostic settings in our build, and keep the name: setByPolicy to match ESLZ.

We can prompt to create a new workspace, use an existing, or have it set by policy.

Re: the monitoring workbook we should see if we can get access to the template so that we can deploy it.

Create Azure Files for FSLogix Profile Containers

As part of the main landing zone deployment we should prompt for creation of a storage account to support profile containers.

We should also prompt to integrate Azure Backup for the files if the option above is selected.

Private Link + Private DNS needs to be integrated as well.

  • New/Existing Private DNS Zone
  • New/Existing VNet to link zone

Docs: Update service names

Update in the docs the name of all the services that have been renamed, examples:

  • ELZ to ALZ
  • SIG to Azure Compute Galleries
  • WVD to AVD

Docs section: Security, Governance and Compliance - Patch management

Page section: Design Recommendations - Patch Management

  • Patch management is called out as important but only reference to tooling of MECM.

Fix:

  • Include guidance for differences in approaches between pooled and personal host pools and suggested tooling.
  • Also include other approaches like image management refreshes and host pool redeployment for pooled host pools etc.
  • Update doc

Better explanations for RDP options.

As I am working through the different options for RDP settings on the host pool it's clear we have an opportunity to better explain the options.

For example:

"Encoded video quality"

The options are:

Enable encoding of redirected video.
Disable encoding of redirected video.

What does this actually mean?

What is the impact on the client and host from a CPU/performance perspective?
What does this do to video playback performance?

Do we have a recommendation here based on the type of expected workload running on the session host?

Do we have general recommendations for multiple settings based on the workload? (GPU user, graphics design, developer, etc.)

Docs section: Automation & DevOps - update diagrams & bullets

  • This page could benefit from some simple diagrams to add context to the narrative in several places.
  • This page does not follow the standard approach of bullet points for design considerations and recommendations. Whilst it has excellent content, it is very long and this can make it difficult to consume.

Fix:

  • Add some diagrams to support the narrative
  • Convert page to the concise bullet point page structure approach

Docs section: BCDR - Share Image Gallery (SIG)

Page section: Design Recommendations

  • When mentioning ASR for pooled host pools, also make reference to using SIG and replicate to multiple regions as a normal approach to this instead of ASR

Fix:

  • Update docs
  • Also name of the service needs to be updated from SIG to Azure Compute Galleries

Docs section: Management & Monitoring - logs query/workbooks

Page section: Design recommendations

Should we add a note to make customers aware this data is only available to query and not visible as part of the data shown in workbooks etc.?

Also add references and recommendations to leverage AVD workbook and insights.

Fix:

  • Update Docs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.