{"id":12202,"date":"2023-09-22T13:48:18","date_gmt":"2023-09-22T20:48:18","guid":{"rendered":"https:\/\/www.microsoft.com\/insidetrack\/blog\/?p=12202"},"modified":"2026-04-09T07:57:27","modified_gmt":"2026-04-09T14:57:27","slug":"how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/","title":{"rendered":"How we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"122\" class=\"size-medium wp-image-7436 alignright\" style=\"margin-top: 0px;\" src=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/ms-digital-stories-300x122.png\" alt=\"Microsoft Digital stories\" srcset=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/ms-digital-stories-300x122.png 300w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/ms-digital-stories.png 400w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><em>Editor\u2019s note: This is the first in an ongoing series on moving our network to the cloud internally at Microsoft.<\/em><\/p>\n<p>We\u2019re building a more agile, resilient, and stable virtual wide-area network (VWAN) to create a better experience for our employees to connect and collaborate globally. By implementing a continuous integration\/continuous deployment (CI\/CD) approach to building our VWAN-based network infrastructure, we can automate the deployment and configuration processes to ensure rapid and reliable delivery of network changes. Here\u2019s how we\u2019re making that happen internally at Microsoft.<\/p>\n<h2>Infrastructure as code (IaC)<\/h2>\n<figure id=\"attachment_12207\" aria-describedby=\"caption-attachment-12207\" style=\"width: 350px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12207\" src=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537-image001-300x189.png\" alt=\"Jimenez and Scheffler smile in corporate photos that have been merged into a composite image.\" width=\"350\" height=\"221\" srcset=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537-image001-300x189.png 300w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537-image001-342x216.png 342w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537-image001.png 500w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><figcaption id=\"caption-attachment-12207\" class=\"wp-caption-text\">Juan Jimenez (left) and Eric Scheffler are part of the team in Microsoft Digital that is helping the company move its network to the cloud. Jimenez is a principle cloud network engineer and Scheffler is a senior cloud network engineer.<\/figcaption><\/figure>\n<p>Infrastructure as code (IaC) is the fundamental principle underlying our entire VWAN infrastructure. Using IaC, we can develop and implement a descriptive model that defines and deploys VWAN components and determines how the components work together. IaC allows us to create and manage a massive network infrastructure with reusable, flexible, and rapid code deployments.<\/p>\n<p>We created deployment templates and resource modules using the Bicep language in our implementation. These templates and modules describe the desired state of our VWAN infrastructure in a declarative manner. <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-resource-manager\/bicep\/overview?tabs=bicep?OCID=InsideTrack_Product_10537\" target=\"_blank\" rel=\"noopener\">Bicep is a domain-specific language (DSL) that uses declarative syntax to deploy Microsoft Azure resources.<\/a><\/p>\n<p>We maintain a primary Bicep template that calls separate modules\u2014also maintained in Bicep templates\u2014to create the desired resources for the deployment in alignment with Microsoft best practices. We use this modular approach to apply different deployment patterns to accommodate changes or new requirements.<\/p>\n<p>With IaC, changes and redeployments are as quick as modifying templates and calling the associated modules. Additionally, parameters for each unique deployment are maintained in separate files from the templates so that different iterations of the same deployment pattern can be deployed without changing the source Bicep code.<\/p>\n<h2>Version control<\/h2>\n<p>We use Microsoft Azure DevOps, a source control system using Git, to track and manage our IaC templates, modules, and associated parameter files. With Azure DevOps, we can maintain a history of changes, collaborate within teams, and easily roll back to previous versions if necessary.<\/p>\n<p>We\u2019re also using pull requests to help track change ownership. Azure DevOps tracks changes and associates them with the engineer who made the change. Azure DevOps is a considerable help with several other version control tasks, such as requiring peer reviews and approvals before code is committed to the main branch. Our code artifacts are published to (and consumed from) a Microsoft Azure Container Registry that allows role-based access control of modules. This enables version control throughout the module lifecycle, and it\u2019s easy to share Azure Container Registry artifacts across multiple teams for collaboration.<\/p>\n<h2>Automated testing<\/h2>\n<p>Responsible deployment is essential with IaC when deploying a set of templates could radically alter critical network infrastructure. We\u2019ve implemented safeguards and tests to validate the correctness and functionality of our code before deployment. These tests include executing the Bicep linter as part of the Azure DevOps deployment pipeline to ensure that all Bicep best practices are being followed and to find potential issues that could cause a deployment to fail.<\/p>\n<p>We\u2019re also running a test deployment to preview the proposed resource changes before the final deployment. As the process matures, we plan to integrate more testing, including network connectivity tests, security checks, performance benchmarks, and enterprise IP address management (IPAM) integration.<\/p>\n<h2>Configuration management<\/h2>\n<p>Azure DevOps and Bicep allow us to automate the configuration and provisioning of network objects and services within our VWAN infrastructure. These tools make it easy to define and enforce desired configurations and deployment patterns to ensure consistency across different network environments. Using separate parameter files, we can rapidly deploy new environments in minutes rather than hours without changing the deployment templates or signing in to the Microsoft Azure Portal.<\/p>\n<h2>Continuous deployment<\/h2>\n<p>The continuous integration (CI) pipeline automates the deployment process for our VWAN infrastructure when the infrastructure code passes all validation and tests. The CI pipeline triggers the deployment process automatically, which might involve deploying virtual machines, building and configuring cloud network objects, setting up VPN connections, or establishing network policies.<\/p>\n<h2>Monitoring and observability<\/h2>\n<p>We\u2019ve implemented robust monitoring and observability practices for how we deploy and manage our VWAN deployment. Monitoring and observability are helping us to ensure that our CI builds are successful, detect issues promptly, and maintain the health of our development process. Here&#8217;s how we\u2019re building monitoring and observability in our Azure DevOps CI pipeline:<\/p>\n<ul class=\"c-list\">\n<li>We\u2019re creating built-in dashboards and reports that visualize pipeline status and metrics such as build success rates, durations, and failure details.<\/li>\n<li>We\u2019re generating and storing logs and artifacts during builds.<\/li>\n<li>We\u2019ve enabled real-time notifications to help us monitor build status for failures and critical events.<\/li>\n<li>We\u2019re building-in pipeline monitoring review processes to identify areas for improvement including optimizing build times, reducing failures, and enhancing the stability of our pipeline.<\/li>\n<\/ul>\n<p>We\u2019re continuing to iterate and optimize our monitoring practices. We\u2019ve created a feedback loop to review the results of our monitoring. This feedback provides the information we need to adjust build scripts, optimize dependencies, automate certain tasks, and further enhance our pipeline.<\/p>\n<p>By implementing comprehensive monitoring and observability practices in our Azure DevOps CI pipeline, we can maintain a healthy development process, catch issues early, and continuously improve the quality of our code and builds.<\/p>\n<h2>Rollback and rollforward<\/h2>\n<p>We\u2019ve built the ability to rollback or rollforward changes in case of any issues or unexpected outcomes. This is achieved through infrastructure snapshots, version-controlled configuration files, or using features provided by our IaC tool.<\/p>\n<h2>Improving through iteration<\/h2>\n<p>We\u2019re continuously improving our VWAN infrastructure using information from monitoring data and user experience feedback. We\u2019re also continually assessing new requirements, newly added Azure features, and operational insights. We iterate on our infrastructure code and configuration to enhance security, performance, and reliability.<\/p>\n<p>By following these steps and using CI\/CD practices, we can build, test, and deploy our VWAN network infrastructure in a controlled and automated manner, creating a better employee experience by ensuring faster delivery, increased stability, and more effortless scalability.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"74\" class=\"alignnone size-medium wp-image-7448\" src=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/key-takeaways-300x74.png\" alt=\"Key Takeaways\" srcset=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/key-takeaways-300x74.png 300w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/key-takeaways.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><br \/>\nHere are some tips on how you can start tackling some of the same challenges at your company:<\/p>\n<ul class=\"c-list\">\n<li>You can use Infrastructure as code (IaC) to create and manage a massive network infrastructure with reusable, flexible, and rapid code deployments.<\/li>\n<li>Using IaC, you can make changes and redeployments quickly by modifying templates and calling the associated modules.<\/li>\n<li>Don\u2019t overlook version control. Tracking and managing IaC templates, modules, and associated parameter files is essential.<\/li>\n<li>Perform automated testing. It\u2019s necessary to validate the correctness and functionality of the code before deployment.<\/li>\n<li>Use configuration management tools to simplify defining and enforcing desired configurations and deployment patterns. This ensures consistency across different network environments.<\/li>\n<li>Implement continuous deployment to automate the deployment process for network infrastructure after the code passes all validation and tests.<\/li>\n<li>Use monitoring and observability best practices to help identify issues, track performance, troubleshoot problems, and ensure the health and availability of the network infrastructure.<\/li>\n<li>Building rollback and roll-forward capabilities enables you to quickly respond to issues or unexpected outcomes.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"68\" class=\"alignnone size-medium wp-image-11919\" src=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/07\/OKR_Try_it_out-300x68.png\" alt=\"Try it out\" srcset=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/07\/OKR_Try_it_out-300x68.png 300w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/07\/OKR_Try_it_out-1024x234.png 1024w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/07\/OKR_Try_it_out-768x175.png 768w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/07\/OKR_Try_it_out.png 1319w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><br \/>\n<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-resource-manager\/bicep\/overview?tabs=bicep?OCID=InsideTrack_Product_10537\" target=\"_blank\" rel=\"noopener\">Try using a Bicep template to manage your Microsoft Azure resources.<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"81\" class=\"alignnone wp-image-7482\" src=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/related_links-300x81.png\" alt=\"Related links\" srcset=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/related_links-300x81.png 300w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2021\/10\/related_links.png 500w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<ul class=\"c-list\">\n<li><a href=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/boosting-our-connectivity-with-our-own-next-generation-optical-network\/\">Discover boosting our connectivity with our own next-generation optical network.<\/a><\/li>\n<li><a href=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/running-on-vpn-how-microsoft-is-keeping-its-remote-workforce-connected\/\">Unpack running on VPN: How Microsoft is keeping its remote workforce connected.<\/a><\/li>\n<li><a href=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/implementing-microsoft-azure-cost-optimization-internally-at-microsoft\/\">Explore implementing Microsoft Azure cost optimization internally at Microsoft.<\/a><\/li>\n<li><a href=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/building-a-secure-and-efficient-self-service-application-using-azure-aci-azure-compute-gallery-and-the-microsoft-azure-sdk\/\">Check out building a secure and efficient self-service application using Azure ACI, Azure Compute Gallery, and the Microsoft Azure SDK.<\/a><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12081 size-full\" style=\"margin-top: 15px;\" src=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/05\/Customer-Survey-580x85-1.png\" alt=\"We'd like to hear from you!\" width=\"580\" height=\"85\" srcset=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/05\/Customer-Survey-580x85-1.png 580w, https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/05\/Customer-Survey-580x85-1-300x44.png 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><br \/>\n<a href=\"https:\/\/forms.office.com\/r\/czbs6PptPe\" target=\"_blank\" rel=\"noopener\">Please share your feedback with us\u2014take our survey and let us know what kind of content is most useful to you.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Editor\u2019s note: This is the first in an ongoing series on moving our network to the cloud internally at Microsoft. We\u2019re building a more agile, resilient, and stable virtual wide-area network (VWAN) to create a better experience for our employees to connect and collaborate globally. By implementing a continuous integration\/continuous deployment (CI\/CD) approach to building [&hellip;]<\/p>\n","protected":false},"author":152,"featured_media":12204,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_hide_featured_on_single":false,"_show_featured_caption_on_single":true,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[328,383],"coauthors":[700,701],"class_list":["post-12202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-azure-and-cloud-infrastructure","tag-azure-networking","program-ms-digital-stories","m-blog-post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deploying a VWAN using infrastructure as code and CI\/CD<\/title>\n<meta name=\"description\" content=\"Check out how we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD to create a better experience for our employees.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploying a VWAN using infrastructure as code and CI\/CD\" \/>\n<meta property=\"og:description\" content=\"Check out how we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD to create a better experience for our employees.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/\" \/>\n<meta property=\"og:site_name\" content=\"Inside Track Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-22T20:48:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-09T14:57:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537_WordPress_hero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2300\" \/>\n\t<meta property=\"og:image:height\" content=\"1293\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Eric Scheffler, Juan Jimenez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eric Scheffler, Juan Jimenez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/\"},\"author\":{\"name\":\"Eric Scheffler\",\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/#\\\/schema\\\/person\\\/9168df6aeeb2e0984bdc7f2b311ac51e\"},\"headline\":\"How we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\\\/CD\",\"datePublished\":\"2023-09-22T20:48:18+00:00\",\"dateModified\":\"2026-04-09T14:57:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/\"},\"wordCount\":1320,\"image\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/uploads\\\/prod\\\/2023\\\/09\\\/10537_WordPress_hero.jpg\",\"keywords\":[\"Azure and cloud infrastructure\",\"Azure networking\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/\",\"url\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/\",\"name\":\"Deploying a VWAN using infrastructure as code and CI\\\/CD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/uploads\\\/prod\\\/2023\\\/09\\\/10537_WordPress_hero.jpg\",\"datePublished\":\"2023-09-22T20:48:18+00:00\",\"dateModified\":\"2026-04-09T14:57:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/#\\\/schema\\\/person\\\/9168df6aeeb2e0984bdc7f2b311ac51e\"},\"description\":\"Check out how we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\\\/CD to create a better experience for our employees.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/uploads\\\/prod\\\/2023\\\/09\\\/10537_WordPress_hero.jpg\",\"contentUrl\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/uploads\\\/prod\\\/2023\\\/09\\\/10537_WordPress_hero.jpg\",\"width\":2300,\"height\":1293,\"caption\":\"At Microsoft, we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\\\/CD to create a better experience for our employees.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\\\/CD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/\",\"name\":\"Inside Track Blog\",\"description\":\"How Microsoft does IT\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/#\\\/schema\\\/person\\\/9168df6aeeb2e0984bdc7f2b311ac51e\",\"name\":\"Eric Scheffler\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb1d8fe9dea53bf28b105603c6d1ca6a3e239ccb07a64334c5ac046af304a6fb?s=96&d=mm&r=g9bbc43f1bd4fc8ed26b3056d58744acf\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb1d8fe9dea53bf28b105603c6d1ca6a3e239ccb07a64334c5ac046af304a6fb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb1d8fe9dea53bf28b105603c6d1ca6a3e239ccb07a64334c5ac046af304a6fb?s=96&d=mm&r=g\",\"caption\":\"Eric Scheffler\"},\"url\":\"https:\\\/\\\/www.microsoft.com\\\/insidetrack\\\/blog\\\/author\\\/escheffler\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploying a VWAN using infrastructure as code and CI\/CD","description":"Check out how we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD to create a better experience for our employees.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/","og_locale":"en_US","og_type":"article","og_title":"Deploying a VWAN using infrastructure as code and CI\/CD","og_description":"Check out how we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD to create a better experience for our employees.","og_url":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/","og_site_name":"Inside Track Blog","article_published_time":"2023-09-22T20:48:18+00:00","article_modified_time":"2026-04-09T14:57:27+00:00","og_image":[{"width":2300,"height":1293,"url":"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537_WordPress_hero.jpg","type":"image\/jpeg"}],"author":"Eric Scheffler, Juan Jimenez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Eric Scheffler, Juan Jimenez","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/#article","isPartOf":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/"},"author":{"name":"Eric Scheffler","@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/#\/schema\/person\/9168df6aeeb2e0984bdc7f2b311ac51e"},"headline":"How we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD","datePublished":"2023-09-22T20:48:18+00:00","dateModified":"2026-04-09T14:57:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/"},"wordCount":1320,"image":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537_WordPress_hero.jpg","keywords":["Azure and cloud infrastructure","Azure networking"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/","url":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/","name":"Deploying a VWAN using infrastructure as code and CI\/CD","isPartOf":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/#primaryimage"},"image":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537_WordPress_hero.jpg","datePublished":"2023-09-22T20:48:18+00:00","dateModified":"2026-04-09T14:57:27+00:00","author":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/#\/schema\/person\/9168df6aeeb2e0984bdc7f2b311ac51e"},"description":"Check out how we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD to create a better experience for our employees.","breadcrumb":{"@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/#primaryimage","url":"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537_WordPress_hero.jpg","contentUrl":"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537_WordPress_hero.jpg","width":2300,"height":1293,"caption":"At Microsoft, we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD to create a better experience for our employees."},{"@type":"BreadcrumbList","@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/how-were-deploying-our-vwan-infrastructure-using-infrastructure-as-code-and-ci-cd\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microsoft.com\/insidetrack\/blog\/"},{"@type":"ListItem","position":2,"name":"How we\u2019re deploying our VWAN infrastructure using infrastructure as code and CI\/CD"}]},{"@type":"WebSite","@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/#website","url":"https:\/\/www.microsoft.com\/insidetrack\/blog\/","name":"Inside Track Blog","description":"How Microsoft does IT","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microsoft.com\/insidetrack\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.microsoft.com\/insidetrack\/blog\/#\/schema\/person\/9168df6aeeb2e0984bdc7f2b311ac51e","name":"Eric Scheffler","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb1d8fe9dea53bf28b105603c6d1ca6a3e239ccb07a64334c5ac046af304a6fb?s=96&d=mm&r=g9bbc43f1bd4fc8ed26b3056d58744acf","url":"https:\/\/secure.gravatar.com\/avatar\/eb1d8fe9dea53bf28b105603c6d1ca6a3e239ccb07a64334c5ac046af304a6fb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb1d8fe9dea53bf28b105603c6d1ca6a3e239ccb07a64334c5ac046af304a6fb?s=96&d=mm&r=g","caption":"Eric Scheffler"},"url":"https:\/\/www.microsoft.com\/insidetrack\/blog\/author\/escheffler\/"}]}},"jetpack_featured_media_url":"https:\/\/www.microsoft.com\/insidetrack\/blog\/uploads\/prod\/2023\/09\/10537_WordPress_hero.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9hcZA-3aO","_links":{"self":[{"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/posts\/12202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/users\/152"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/comments?post=12202"}],"version-history":[{"count":8,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/posts\/12202\/revisions"}],"predecessor-version":[{"id":18288,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/posts\/12202\/revisions\/18288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/media\/12204"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/media?parent=12202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/categories?post=12202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/tags?post=12202"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.microsoft.com\/insidetrack\/blog\/wp-json\/wp\/v2\/coauthors?post=12202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}