Azure Virtual WAN with Bicep

Azure Bicep Creating and Deploying Azure Virtual WAN for scalible and simplified networking

Introduction

Azure Virtual WAN is a comprehensive networking service that brings together various networking, security, and routing functionalities into a single operational interface. It is designed to simplify and optimize the connectivity between branches, remote users, and cloud resources, leveraging Microsoft’s global network backbone. Key features include branch connectivity, site-to-site VPN, remote user VPN, private connectivity (ExpressRoute), and intra-cloud connectivity.

Implementation Guide

Step 1: Setting Up Azure Virtual WAN Using Bicep

  1. Create a Resource Group:

    1
    2
    3
    4
    
    resource rg 'Microsoft.Resources/resourceGroups@2021-04-01' = {
      name: 'myResourceGroup'
      location: 'Australia East'
    }
    
  2. Deploy Virtual WAN:

    1
    2
    3
    4
    5
    6
    7
    8
    
    resource virtualWan 'Microsoft.Network/virtualWans@2023-11-01' = {
      name: 'myVirtualWAN'
      location: 'Australia East'
      properties: {
        allowBranchToBranchTraffic: true
        allowVnetToVnetTraffic: true
      }
    }
    
  3. Create Virtual Hub:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    resource virtualHub 'Microsoft.Network/virtualHubs@2021-02-01' = {
      name: 'myVirtualHub'
      location: 'Australia East'
      properties: {
        virtualWan: {
          id: virtualWan.id
        }
        addressPrefix: '10.0.0.0/24'
      }
    }
    

Step 2: Configuring Virtual Network Connections

  1. Create a Virtual Network:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    resource vnet 'Microsoft.Network/virtualNetworks@2021-02-01' = {
      name: 'myVNet'
      location: 'Australia East'
      properties: {
        addressSpace: {
          addressPrefixes: ['10.1.0.0/16']
        }
      }
    }
    
  2. Connect Virtual Network to Virtual Hub:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    resource vnetConnection 'Microsoft.Network/virtualHubs/hubVirtualNetworkConnections@2021-02-01' = {
      name: 'myVNetConnection'
      parent: virtualHub
      properties: {
        remoteVirtualNetwork: {
          id: vnet.id
        }
      }
    }
    

Step 3: Integrating with Azure DevOps

  1. Set Up Azure DevOps Pipeline:

    • Create a new pipeline in Azure DevOps.
    • Add tasks to run the Bicep deployment scripts.
    • Use Azure Key Vault to manage secrets and credentials.
  2. Continuous Integration and Delivery:

    • Configure the pipeline to trigger on code changes.
    • Validate changes in a staging environment before deploying to production.

Conclusion

Azure Virtual WAN simplifies network connectivity by providing a unified platform for managing various networking needs. By leveraging Bicep for infrastructure as code, organisations can achieve a streamlined and automated network management process. This approach not only enhances efficiency but also ensures consistency and compliance across the network.

Learn More