Code Monkey home page Code Monkey logo

avnmdemo's Introduction

Intro

This repository contains a demo implementation for Azure Virtual Network Manager (AVNM) using Infrastructure as Code with Bicep. The demo uses Bicep modules from Common Azure Resources Modules Library (CARML) to provision the following design:

avnm_demo

Recommendations

If you are new to Azure or Network Manager, this demo recommends having or reviewing the following topics:

Azure Specific Knowledge

  1. Basic understanding of Microsoft Azure and Azure Networking, specifically related to the following:

    1. Subscriptions
    2. Resource Groups
    3. Azure Policy
    4. Virtual Machines
    5. Virtual Networks
    6. Virtual Network Peering
    7. Azure Bastion
    8. Network Security Groups
    9. Routing
  2. Azure Virtual Network Manager (AVNM) and the following features:

    1. Network Groups
      1. Dynamic Memberships using Azure Policy
    2. Connectivity Configuration
      1. Hub Spoke Topology
      2. Mesh Topology
        1. Connected Groups
    3. Security Admin Rules Configuration
      1. Rules Enforcement Method
    4. Deployments

Azure Engineering Specific Knowledge

  1. Network Manager Template Reference
  2. CARML - Azure Virtual Network Manager Bicep Module Readme
  3. Bicep
  4. IDE - Visual Studio Code
  5. Source Control - Git
  6. Azure PowerShell

Pre-requisites

In order to implement the lab, the following is required:

Repository Structure

The repo is structured in the following way:

  • Constructs: Contains the Bicep configuration files for the demo.
  • Modules: Contains the Common Azure Resources Modules Library (CARML) modules used by the constructs (configuration files) to deploy the demo.
  • Scripts: Contains scripts that supports the demo.
  • Demo-Guide.ps1: Is a script that goes through the demo step by step.
  • main.deploy.bicep: Is the main Bicep file used to deploy the demo environment.

How to start the demo?

  1. Clone this GitHub repository on your workstation. See this GitHub guide for more details.
  2. Open Visual Studio Code on your workstation where the cloned repo is located.
  3. Open the Demo-Guide.ps1 from within VS Code.
  4. The demo guide in this script should contain the required sequence of sections to successfully deploy and remove this lab.

What is the demo deploying?

  1. Resource Groups:
    1. AVNM Resource Group: Contains all resources for Azure Virtual Network Manager (AVNM).
    2. Hub Resource Group: Contains a hub virtual network, network security groups, Azure Bastion.
    3. Alpha Resource Group: Contains virtual networks allocated to a demo 'alpha' group.
    4. Beta Resource Group: Contains virtual networks allocated to a demo 'beta' group.
  2. Hub Virtual Network with Azure Bastion: Used to connect to the spokes located in the 'alpha' and 'beta' resource groups.
  3. Spoke Virtual Networks for the 'alpha' and 'beta' groups.
  4. Extended 'child' Virtual Networks, for each of the 'alpha' and 'beta' groups, named as 'X' and 'Y'.
  5. Azure Virtual Network Manager:
    1. Creating network groups as per the diagram and uses Azure Policy to create dynamic membership to these network groups.
    2. Creating connectivity configurations as per the diagram.
    3. Creating Security Admin Rules configurations.
  6. Virtual machines in the Hub Virtual Network, the 'Alpha' Spoke Virtual Network and the 'X' extended Virtual Network for the 'alpha' group.
  7. Changing the NSG rule for the Spoke virtual networks.

Housekeeping

Although this demo uses technologies from Microsoft Azure, it is not affiliated to Microsoft, but rather a personal project contributing to the Azure community to learn how to use Azure Virtual Network Manager using Infrastructure as Code. Please read the services documentation regarding supported features and limitations. If you have issues using the modules referenced in this repository, please open an issue with the CARML team by going to [https://aka.ms/carml], and filing a new GitHub issue. Everyone is welcomed to contribute to this repository by either raising issues or issuing pull requests for things that can be improved.

if you managed to get to the end of this document.. thank you for reading :) and I hope you enjoy this demo.

avnmdemo's People

Contributors

ahmadabdalla avatar

Stargazers

 avatar  avatar Chris King avatar

Watchers

Chris King avatar  avatar

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.