{"id":135,"date":"2024-09-12T11:21:53","date_gmt":"2024-09-12T11:21:53","guid":{"rendered":"https:\/\/cloudvlabs.com\/?page_id=135"},"modified":"2026-08-03T00:59:58","modified_gmt":"2026-08-03T00:59:58","slug":"the-azure-vnet","status":"publish","type":"page","link":"https:\/\/cloudvlabs.com\/?page_id=135","title":{"rendered":"The Azure vNet"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Project Title:&nbsp;Deploying a Multi environment architecture on Azure.<\/strong><\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">I wanted to set up two separate Azure environments, similar to the lifecycle management approach I&#8217;ve seen in many organizations I&#8217;ve worked with. Having dedicated Development\/Test and Production environments makes it much easier to build, test, and validate changes before they&#8217;re rolled out to production.<br>In larger enterprise environments, changes usually go through a formal change control process where every change has to be reviewed and approved before it&#8217;s implemented. Depending on the change, that approval process can sometimes take weeks.<br>By having separate Development\/Test and Production environments, I can follow a similar workflow without the delays of change control. I can deploy and test new resources in the Development\/Test environment, work through any configuration issues or unexpected problems, and then deploy the same validated changes into Production with much more confidence.<\/p>\n\n\n\n<div class=\"wp-block-ideabox-toc ib-block-toc\" data-anchors='h3,h4,h5,h6' data-collapsable='false' ><div class=\"ib-toc-container ib-toc-list-style-numbers ib-toc-hierarchical ib-toc-expanded\" style=\"border-width:1px;border-style:solid;border-radius:1px;overflow:hidden\"><div class=\"ib-toc-header\" style=\"font-size:21px\"><div class=\"ib-toc-header-title\">Table of Contents<\/div><\/div><div class=\"ib-toc-separator\" style=\"height:2px\"><\/div><div class=\"ib-toc-body\" style=\"font-size:21px;--listSpacing:16px\"><ol class=\"ib-toc-anchors\"><\/ol><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-black-color has-text-color has-link-color has-x-large-font-size wp-elements-1\">objective<\/h2>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Deploy a multi environment architecture on Azure cloud to support a development Life Cycle. Common multi environment architecture development stages include:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-small-font-size\">Development \/Test<\/li>\n\n\n\n<li class=\"has-small-font-size\">Production<\/li>\n<\/ol>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Create an environment for each deployment stage, ensuring networking and secure the production environment with inbound and outbound networking rules.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color has-link-color has-x-large-font-size wp-elements-2\">Requirements<\/h3>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Azure Virtual Network (vNet)<\/strong>:\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Create a vNets to host all resources for each stage (e.g, Dev\/Test, Stage and production<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Divide the vNets into subnets for different application layers (e.g., Web, Application, Database).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Subnets<\/strong>:\n<ul class=\"wp-block-list\">\n<li class=\"has-small-font-size\"><strong>Web Subnet<\/strong>: Hosts the front-end web servers (e.g., Azure App Service or Virtual Machines).<\/li>\n\n\n\n<li class=\"has-small-font-size\"><strong>Application Subnet<\/strong>: Hosts the application servers that handle business logic.<\/li>\n\n\n\n<li class=\"has-small-font-size\"><strong>Database Subnet<\/strong>: Hosts the database servers (e.g., Azure SQL Database or Cosmos DB).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">4 <strong>vNet Peering:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Peering: <\/strong>establish peering between Dev\/test\/, Stage and production<\/li>\n<\/ul>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Network Security Group (NSG)<\/strong>:\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Create a single NSG to control inbound and outbound traffic for production vNet<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Define rules to allow:\n<ul class=\"wp-block-list\">\n<li>HTTP\/HTTPS traffic between vNets.<\/li>\n\n\n\n<li>Deny all other traffic by default.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Outcomes<\/strong>:\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Set up the Azure vNet and create the necessary subnets.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Configure vNet Peering<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Configure the NSG and apply it to production vNet.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Test Network Connectivity.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading has-black-color has-text-color has-link-color has-x-large-font-size wp-elements-3\">Topology<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project Title:&nbsp;Deploying a Multi environment architecture on Azure. I wanted to set up two separate Azure environments, similar to the lifecycle management approach I&#8217;ve seen in many organizations I&#8217;ve worked with. Having dedicated Development\/Test and Production environments makes it much easier to build, test, and validate changes before they&#8217;re rolled out to production.In larger enterprise [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-135","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=\/wp\/v2\/pages\/135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=135"}],"version-history":[{"count":60,"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=\/wp\/v2\/pages\/135\/revisions"}],"predecessor-version":[{"id":891,"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=\/wp\/v2\/pages\/135\/revisions\/891"}],"wp:attachment":[{"href":"https:\/\/cloudvlabs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}