Azure Back to School 2025 – Azure Virtual WAN deployment

This September, Azure Back to School 2025 is taking place, with loads of awesome sessions and great community content. My session, “Building a Cloud Centric Network with Azure Virtual WAN” is available to watch below:

Check out all of the other awesome sessions and content here: https://azurebacktoschool.com/

For those who saw my previous years entry to Azure Back to School, you may be wondering, why is Jake doing the same session again?

Well… In this session I’ll be covering a few different aspects:

  • Changes since my last session
  • Recap of core components
  • Infrastructure as Code Deployment – via Terraform

You can read more about Azure Virtual WAN here: https://learn.microsoft.com/en-us/azure/virtual-wan/virtual-wan-about


Key Takeaways:

2 New Additions / Changes:

Note: back in June I wrote an update around a few changes to Virtual WAN, including Route Maps etc – you can read that post here: https://jakewalsh.co.uk/june-2025-a-month-of-azure-virtual-wan/


Infrastructure as Code Deployment – via Terraform:

During the video I also cover the deployment of Virtual WAN via Terraform – using my Virtual WAN demo lab (available here). Within this section, the following key aspects are covered:

  • Terraform files / structure
  • Use of elements like the Random Provider, and Count to provide optional variables.
  • Azure Key Vault
  • Azure Firewall – and a basic ruleset
  • Azure Bastion
  • Virtual Machines for testing.

In the demo – I am using Azure Firewall, and the lab environment for this is shown below:

Within the video I run through all of these components and explain the lab environment – and how it can help for development, learning, and testing scenarios.

Useful tip – use Map Variables!

If you are designing a Virtual WAN topology for a production deployment, Map variables can really help – by allowing the definition of regions, IP ranges, and more, in a simple way. See the example below:

# Modules 
module "quick-virtualwan" {
  source = "./modules/quick-virtualwan"
  # Global Variables
  virtualwan-name = "virtualwan1"
  # Region Specific Variables
  regions = {
    region1 = {
      location = "uksouth"
      hubcidr  = "10.10.0.0/21"
    }
    region2 = {
      location = "eastus"
      hubcidr  = "10.20.0.0/21"
    }
  }
}

Where to get started, a summary:


Resources

Below are a few great resources I’d recommend looking at if you are keen to learn more about Virtual WAN:

Until next time, thanks for reading!

Skip to content