On Friday last week Jon Jarvis and myself hosted our first Cloud Chat Monthly Session. As this was our first session, we started off with an introduction to Cloud Chat Monthly, talked about our goals and objectives, and then went into our first technical session – “Unleashing the Power of Code-Driven Virtual Desktop Deployments: AVD & Windows 365“.
Upcoming April 2023 Session
For our April 2023 Session we have two great speakers and sessions lined up:
- Keith Atherton – “How to Prepare for Microsoft Certifications.”
- Maxim Salnikov – “How Azure helps to build better business processes and customer experiences with AI.”
✅ If you would like to join us in April for these awesome sessions – please register here.
Session Summary: Unleashing the Power of Code-Driven Virtual Desktop Deployments: AVD & Windows 365
Within this session Jon and myself covered off the key differences between Azure Virtual Desktop and Windows 365, and then moved onto talking about how Infrastructure as Code (IAC) can benefit both. This post is a summary of the session and includes links to all of the resources we discussed in the session!
✅ We are hoping to continue to develop and enhance this session – so expect to see us at more events soon!
What is Infrastructure as Code?
- A method of managing and provisioning infrastructure resources via code
- Repeatable
- Scalable
- Can be shared easily – template files
- Usually a JSON file with imperative or declarative code
- Often integrated into version control systems – e.g. Git
- Can be edited and managed in most common tools and platforms – e.g. GitHub, Visual Studio Code, Azure DevOps etc.
- Usually adopted as part of a wider DevOps Strategy
Infrastructure as Code – The Benefits Cycle
When talking about IAC, I often like to refer to a “benefits cycle”, as many of the benefits of using IAC have a snowball effect, where the effects and benefits become stronger with each aspect used…
Tooling
For our demos and presentation, we used the following tooling:
- Terraform – to create infrastructure: https://www.terraform.io/
- Packer – to create machine images: https://www.packer.io/
- Azure CLI – to carry out tasks within Azure: https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
- Azure PowerShell – to install applications and make changes to our images: https://learn.microsoft.com/en-us/powershell/azure/?view=azps-9.4.0
- Graph X-Ray – to create Microsoft Graph PowerShell commands from the Portal: https://graphxray.merill.net/
ℹ We also covered how tooling like Packer can be used outside of AVD and Windows 365, for example when creating Citrix environments, or working with Server images and builds.
Demos
As part of our demonstrations we used Terraform to create Azure Infrastructure – based on my Single Region Azure Baselab V2, which can be downloaded here: https://github.com/jakewalsh90/Terraform-Azure/tree/main/Single-Region-Azure-BaseLab-v2.
We then moved onto using Packer to create Machine Images – again this was based on a template, which is available here: https://github.com/jakewalsh90/Packer-Azure/blob/main/Windows%20Desktop/win11-21h2-avd-choco.json.
For AVD we then demonstrated bringing this process together using Azure DevOps, and for Windows 365 it was done using PowerShell created using Graph X-Ray.
Additional Resources
The following posts are from my Blog, and support the demos/environments from our Session.