<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Emmanuel Akpadia</title>
    <description>The latest articles on DEV Community by Emmanuel Akpadia (@emzeeviolino_).</description>
    <link>https://dev.to/emzeeviolino_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3090759%2F7fa94a54-ee50-47b9-b40c-0644b15f6229.png</url>
      <title>DEV Community: Emmanuel Akpadia</title>
      <link>https://dev.to/emzeeviolino_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emzeeviolino_"/>
    <language>en</language>
    <item>
      <title>Deploying a Web App to Azure from VS Code Using Azure CLI, ARM Templates, and GitHub</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Thu, 12 Jun 2025 01:59:48 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/deploying-a-web-app-to-azure-from-vs-code-using-azure-cli-arm-templates-and-github-58ke</link>
      <guid>https://dev.to/emzeeviolino_/deploying-a-web-app-to-azure-from-vs-code-using-azure-cli-arm-templates-and-github-58ke</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;🧭 Step 1: Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Modern application development doesn’t end at writing code—it includes how you deploy, manage, and automate your infrastructure. In this article, you’ll learn how to deploy a web application to Azure App Service using a full local-to-cloud pipeline, powered by:&lt;/p&gt;

&lt;p&gt;Azure CLI (from within VS Code) to manage resources&lt;/p&gt;

&lt;p&gt;ARM templates to provision infrastructure as code&lt;/p&gt;

&lt;p&gt;GitHub Actions for CI/CD automation&lt;/p&gt;

&lt;p&gt;By the end of this guide, you’ll be able to:&lt;/p&gt;

&lt;p&gt;✅ Provision an App Service and supporting resources using an ARM template;&lt;br&gt;
✅ Deploy your app to Azure;&lt;br&gt;
✅ Automate future deployments with GitHub Actions;&lt;br&gt;
using the command line in VS Code&lt;/p&gt;

&lt;p&gt;Use Case: This guide is ideal for solo developers, small teams, or DevOps engineers who want fast, consistent deployments using tools they already use—like Visual Studio Code and GitHub.&lt;/p&gt;

&lt;p&gt;Benefits: complete local-to-cloud workflow, repeatable deployments, automation using Infrastructure as Code (IaC) and GitHub Actions.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;🧰 Step 2: Prerequisites&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before diving into deploying your web app, make sure you have the following tools and accounts set up:&lt;br&gt;
✅ Tools Installed&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VS Code &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;Download VS Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Azure CLI &lt;a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli" rel="noopener noreferrer"&gt;Install Azure CLI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Azure Account Extension for VS Code&lt;/li&gt;
&lt;li&gt;Git &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;Install Git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub account&lt;/li&gt;
&lt;li&gt;Azure subscription&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;🛠 Step 3: Project Setup in VS Code&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this step, we set up our local directory and connect it to our remote repository (Github)&lt;/p&gt;
&lt;h3&gt;
  
  
  🛠3.1:
&lt;/h3&gt;

&lt;p&gt;Unzip the Free website template from &lt;a href="https://themewagon.com/" rel="noopener noreferrer"&gt;Themewagon&lt;/a&gt; to your DevOps folder.&lt;br&gt;
Open VS Code and navigate to the edit panel, open your folder&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnjs7j8tm3xfz575qizdh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnjs7j8tm3xfz575qizdh.png" alt="open folder" width="413" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe15g7r8ism0xzxmue2h2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe15g7r8ism0xzxmue2h2.png" alt="Open folder 2" width="797" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Doing this sets the folder as our working directory in VS Code Terminal. &lt;/p&gt;
&lt;h3&gt;
  
  
  🛠3.2: Push Project to GitHub
&lt;/h3&gt;

&lt;p&gt;Next we create a new GitHub repository for our webapp. Go to &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, login then click on the Green button on the top left hand corner that says &lt;strong&gt;New&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81q305137vlvf8zhyfq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81q305137vlvf8zhyfq3.png" alt="Github-repo" width="800" height="1012"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating the repo, we go back to VS Code Terminal to connect our local repo to GitHub.&lt;br&gt;
We would need to initilize the folder (i.e tell Git to track changes in the folder) then add the files to our commit.&lt;/p&gt;

&lt;p&gt;Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init
git add .
git commit -m "first website commit"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6sbxkwou3ynj8p2doxug.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6sbxkwou3ynj8p2doxug.png" alt="git-init" width="688" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add origin https://github.com/Emmanuelakpadia/emzeeviolino-website.git
git push -u origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxa71pv2et43whx66t3kv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxa71pv2et43whx66t3kv.png" alt="git-init2" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;| ⛔️ Note: The link is gotten from your github repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 4: ARM Templates&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In our current working directory we can create a folder for our ARM templates.&lt;/p&gt;

&lt;p&gt;In terminal, Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir az-templates &amp;amp;&amp;amp; cd az-templates
touch template.json &amp;amp;&amp;amp; touch parameters.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a folder within our working directory and creates the .json files we need to deploy our WebApp.&lt;/p&gt;

&lt;p&gt;Open the templates.json file and paste&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
      {
        "type": "Microsoft.Web/serverfarms",
        "apiVersion": "2021-01-15",
        "name": "[parameters('appServicePlanName')]",
        "location": "[resourceGroup().location]",
        "sku": {
          "name": "F1",
          "tier": "Free",
          "size": "F1",
          "family": "F",
          "capacity": 1
        }
      },
      {
        "type": "Microsoft.Web/sites",
        "apiVersion": "2021-01-15",
        "name": "[parameters('webAppName')]",
        "location": "[resourceGroup().location]",
      "dependsOn": [
          "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
        ],
        "properties": {
          "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
          "siteConfig": {
            "appSettings": [
              {
                "name": "SCM_DO_BUILD_DURING_DEPLOYMENT",
                "value": "true"
              }
            ]
          }
        }
      }
    ],
    "parameters": {
      "appServicePlanName": {
        "type": "string"
      },
      "webAppName": {
        "type": "string"
      }
    }
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also open the parameters.json and paste&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "appServicePlanName": {
      "value": "myAppServicePlan"
    },
    "webAppName": {
      "value": "&amp;lt;insert your webapp name&amp;gt;"
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;| ⛔️ Note: make sure you edit the WebApp name and press Ctrl + S to save the code to the files.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🚀 Step 5: Use Azure CLI to Deploy the ARM Template&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now that we’ve set up our app and infrastructure template in VS Code, it’s time to deploy our resources to Azure using Azure CLI—all from the terminal inside the editor.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀5.1: Log In to Azure
&lt;/h3&gt;

&lt;p&gt;In your VS Code terminal, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will open a browser window for you to sign in to your Azure account. Once authenticated, the terminal will return information about your subscriptions.&lt;/p&gt;

&lt;p&gt;If you have more than one subscription, set the desired one as default:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az account set --subscription "&amp;lt;YOUR_SUBSCRIPTION_NAME_OR_ID&amp;gt;"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🚀5.2: Create a Resource Group
&lt;/h3&gt;

&lt;p&gt;A resource group is a container for all related Azure resources.&lt;/p&gt;

&lt;p&gt;Run this to create one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az group create -n mywebrg -l westus
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs0skc79k9mawwhttqdt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffs0skc79k9mawwhttqdt.png" alt="Create-RG" width="690" height="170"&gt;&lt;/a&gt;&lt;br&gt;
|💡 You can choose a different region by replacing westus with your preferred Azure region.&lt;/p&gt;
&lt;h3&gt;
  
  
  5.3: Deploy the ARM Template
&lt;/h3&gt;

&lt;p&gt;Next, deploy the template.json template to the resource group.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az deployment group create --resource-group mywebrg --template-file template.json --parameters parameters.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;| ⏳ This may take a minute or two. Once done, you’ll see a JSON response confirming the resources were created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqvdxsc5sold1kwpcsxbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqvdxsc5sold1kwpcsxbk.png" alt="deploy-arm" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀5.3: Deploy the WebApp
&lt;/h3&gt;

&lt;p&gt;Run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az webapp deployment source config \
  --name emzeeviolino-website \
  --resource-group mywebrg \
  --repo-url https://github.com/Emmanuelakpadia/emzeeviolino-website \
  --branch master \
  --manual-integration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5jwfb8ecoptqmv2qmkk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs5jwfb8ecoptqmv2qmkk.png" alt="deploy-webapp" width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🌍 Step 6: Visit Your Web App&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To get the URL of our deployed WebApp, we run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az webapp show \
--name emzeeviolino-web \
--resource group mywebrg \
--query defaultHostName \
--output tsv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vyp06lom5do0jmn1psc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vyp06lom5do0jmn1psc.png" alt="webapp-url" width="800" height="57"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉 That’s it! You now have:&lt;/p&gt;

&lt;p&gt;✅ A web app deployed on Azure&lt;br&gt;
✅ Infrastructure managed via ARM templates&lt;br&gt;
✅ A full local-to-cloud pipeline built in VS Code&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Errors encountered
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;No file or directory found when deploying ARM templates. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foyfxscuhzrs6n2cglbtm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foyfxscuhzrs6n2cglbtm.png" alt="error1" width="730" height="47"&gt;&lt;/a&gt;&lt;br&gt;
Fix: Check to see if the directory is correct.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error when deploying ARM Templates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhx2kqlvef5t14i7m6gw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhx2kqlvef5t14i7m6gw.png" alt="error2" width="800" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fix: Honestly, the error goes away when you run the command a second time&lt;/p&gt;

</description>
      <category>azure</category>
      <category>github</category>
      <category>vscode</category>
      <category>devops</category>
    </item>
    <item>
      <title>A Simple Guide to Creating Azure Virtual Networks and Subnets.</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Fri, 30 May 2025 18:34:16 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-azure-virtual-networks-and-subnets-3jbo</link>
      <guid>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-azure-virtual-networks-and-subnets-3jbo</guid>
      <description>&lt;h2&gt;
  
  
  A Simple Guide to Creating Azure Virtual Networks and Subnets.
&lt;/h2&gt;

&lt;p&gt;Your company, Oasis IT group is migrating their on-premises infrastructure to the cloud. To begin the whole process, you are tasked with creating a Virtual Network and Subnets for each of the four departments. The given IP address is 192.152.50.0/24 and the subnet size is /28.&lt;/p&gt;

&lt;p&gt;First, go to portal.azure.com, search for Virtual Networks and create one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc34iq5k85k65cp6q2h6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc34iq5k85k65cp6q2h6.png" width="800" height="717"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new Resource group — RG1&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the Virtual Network — OasisVN&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the region&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next configure the IP addresses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F446e3abf3fysyil21808.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F446e3abf3fysyil21808.png" width="800" height="756"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this exercise, we would create 3 subnets while deploying the virtual network and the last one after.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Type in the chosen IP Address, It automatically indicates how many address the network can contain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the prefix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edit the default subnet for the first department.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg74jhw1re97qykcg4dbv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg74jhw1re97qykcg4dbv.png" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The first subnet is for the Operations Department.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The starting address is by default the network ID for the subnet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The /28 size determines how many addresses are can be contained in the subnet.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;save and repeat the process for the next 2 subnets.&lt;/p&gt;

&lt;p&gt;Note: The subnet ranges are unique in every address space (i.e no two subnets can overlap)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nh7d1724ne05x78n2le.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nh7d1724ne05x78n2le.png" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, click on Review+create, and deploy the Virtual Network.&lt;/p&gt;

&lt;p&gt;After the resource has been deployed successfully, click on go to resource.&lt;/p&gt;

&lt;p&gt;On the overview page, Go to Settings&amp;gt;Subnets&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau74a6troosfbmwhh4h3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau74a6troosfbmwhh4h3.png" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then click on +Subnet.&lt;/p&gt;

&lt;p&gt;Configure the subnet settings and save.&lt;/p&gt;

&lt;p&gt;And that’s how to create and configure a simple Virtual Network and subnets.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Simple Guide to Creating Azure Virtual Networks and Subnets.</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Fri, 30 May 2025 18:34:16 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-azure-virtual-networks-and-subnets-3gdo</link>
      <guid>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-azure-virtual-networks-and-subnets-3gdo</guid>
      <description>&lt;h2&gt;
  
  
  A Simple Guide to Creating Azure Virtual Networks and Subnets.
&lt;/h2&gt;

&lt;p&gt;Your company, Oasis IT group is migrating their on-premises infrastructure to the cloud. To begin the whole process, you are tasked with creating a Virtual Network and Subnets for each of the four departments. The given IP address is 192.152.50.0/24 and the subnet size is /28.&lt;/p&gt;

&lt;p&gt;First, go to portal.azure.com, search for Virtual Networks and create one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc34iq5k85k65cp6q2h6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc34iq5k85k65cp6q2h6.png" width="800" height="717"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new Resource group — RG1&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the Virtual Network — OasisVN&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the region&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next configure the IP addresses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F446e3abf3fysyil21808.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F446e3abf3fysyil21808.png" width="800" height="756"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this exercise, we would create 3 subnets while deploying the virtual network and the last one after.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Type in the chosen IP Address, It automatically indicates how many address the network can contain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the prefix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edit the default subnet for the first department.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg74jhw1re97qykcg4dbv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg74jhw1re97qykcg4dbv.png" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The first subnet is for the Operations Department.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The starting address is by default the network ID for the subnet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The /28 size determines how many addresses are can be contained in the subnet.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;save and repeat the process for the next 2 subnets.&lt;/p&gt;

&lt;p&gt;Note: The subnet ranges are unique in every address space (i.e no two subnets can overlap)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nh7d1724ne05x78n2le.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nh7d1724ne05x78n2le.png" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, click on Review+create, and deploy the Virtual Network.&lt;/p&gt;

&lt;p&gt;After the resource has been deployed successfully, click on go to resource.&lt;/p&gt;

&lt;p&gt;On the overview page, Go to Settings&amp;gt;Subnets&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau74a6troosfbmwhh4h3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau74a6troosfbmwhh4h3.png" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then click on +Subnet.&lt;/p&gt;

&lt;p&gt;Configure the subnet settings and save.&lt;/p&gt;

&lt;p&gt;And that’s how to create and configure a simple Virtual Network and subnets.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Azure App Services: Deploy a WebApp with CI/CD Pipelines</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Wed, 14 May 2025 00:28:43 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/azure-app-services-deploying-a-webapp-with-cicd-pipelines-1ope</link>
      <guid>https://dev.to/emzeeviolino_/azure-app-services-deploying-a-webapp-with-cicd-pipelines-1ope</guid>
      <description>&lt;p&gt;Azure App Service is a fully managed platform as a service (PaaS) that lets you run web applications, mobile back ends, and RESTful APIs.&lt;br&gt;
App Service can run on Linux and Windows and supports a number of web stacks, including Node.js, PHP, Java, and .NET. Or, if your app is containerized, you can just deploy it as a custom container.&lt;/p&gt;

&lt;p&gt;We will be deploying a sample website using Azure App Services, GitHub and Git via Visual Studio Code. The sample website can be gotten from &lt;a href="https://themewagon.com/" rel="noopener noreferrer"&gt;Themewagon&lt;/a&gt;.&lt;br&gt;
Unzip the downloaded file from Themewagon to a location on your PC.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1: GitHub
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Create a new repository in GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnikki9u08q4ztl9oegcn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnikki9u08q4ztl9oegcn.png" alt="Create a Repo in GitHub" width="800" height="934"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2: Git
&lt;/h1&gt;

&lt;p&gt;In the Visual Studio Code app, open the folder where you unzipped the sample folder to. &lt;br&gt;
Next, open the terminal; the folder opens as the default directory in the VS Code terminal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First, we initialize Git. (Ask Git to track changes in this folder.)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Next, we add all the files in the folder to the staging area
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git add .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Then create a commit using

 
&lt;code&gt;
$ git commit -m "my first website commit"
&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzskemc9zr9tg4dkrh9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjzskemc9zr9tg4dkrh9y.png" alt="Git 1" width="636" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We check the status of the commit using
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Next, we go to our GitHub page to copy the next command to link our Git to our remote repository on GitHub. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fds94bpetfr3imd7wqfrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fds94bpetfr3imd7wqfrg.png" alt="Git2" width="727" height="61"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkb8gz71w2womgooi1aa4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkb8gz71w2womgooi1aa4.png" alt="GitHub2" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lastly, we push our code to GitHub.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git push -u origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F228mazgz0y6zo70dfih4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F228mazgz0y6zo70dfih4.png" alt="Git3" width="492" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 3: Azure App Services
&lt;/h1&gt;

&lt;p&gt;To host our WebApp on Azure App Service, we need to create an App Service Plan first.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First, create a new resource group (1) and a name for the App Service plan (2). &lt;/li&gt;
&lt;li&gt;Then select a region (3) and pricing plan (4), then review and create the resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nt4goswnhfwph1o67r0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nt4goswnhfwph1o67r0.png" alt="Appserviceplan1" width="795" height="1215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we can create the App Service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uju3ci6tuykfdvugeqe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uju3ci6tuykfdvugeqe.png" alt="Image description" width="729" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Search for App Services on the Azure portal and open it, then click on Create &amp;gt; WebApp.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7suelsc377ekdf8um9i5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7suelsc377ekdf8um9i5.png" alt="Webapp1" width="774" height="1209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First, we select the resource group (1) and create a name for our WebApp (2). &lt;/li&gt;
&lt;li&gt;The runtime stack we are selecting is PHP 8.4 (3), and we select the same region (4) as our App Service plan. The pricing plan automatically changes to our app service plan.&lt;/li&gt;
&lt;li&gt;Next, review and create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the resource is deployed, go to the overview page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjoxp59qmztzlg90jhtaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjoxp59qmztzlg90jhtaw.png" alt="webapp2" width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A default domain is created for our web app. If you copy and paste the address to a new tab and load it, a default PHP page will show, awaiting your deployment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxxiafi1cywf6p1rs32f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxxiafi1cywf6p1rs32f.png" alt="webapp3" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 4: Connect Azure WebApp to Remote Repo (Github)
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;On the overview page, select Deployment Centre (1).&lt;/li&gt;
&lt;li&gt;Then select the remote repository source (2). Sign in and authorize your GitHub account (3), then select the organisation (4), repository (5) and branch hosting the sample website code (6).&lt;/li&gt;
&lt;li&gt;Next, select Add a workflow (7), which uses the Azure default deployment workflow.&lt;/li&gt;
&lt;li&gt;Then save.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97uqs6furgsm4r5riogb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97uqs6furgsm4r5riogb.png" alt="webapp4" width="800" height="863"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A build/deploy log starts running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnk2c4eopiaweq6gcyw7t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnk2c4eopiaweq6gcyw7t.png" alt="webapp6" width="800" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the GitHub platform, the workflow starts running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9v1p7j91dbrcl8txgv2e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9v1p7j91dbrcl8txgv2e.png" alt="webapp5" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The deployment gets completed after a few minutes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqx368jqc29pdxowaj2ne.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqx368jqc29pdxowaj2ne.png" alt="webapp7" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we reload the PHP default page, our content will be running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjs9661wvuekhvl3euyc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffjs9661wvuekhvl3euyc.png" alt="hudsonwebsite" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>azureappservices</category>
      <category>github</category>
      <category>git</category>
    </item>
    <item>
      <title>Git &amp; Github: Quick Setup Guide</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Mon, 12 May 2025 03:20:00 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/git-github-quick-setup-guide-od1</link>
      <guid>https://dev.to/emzeeviolino_/git-github-quick-setup-guide-od1</guid>
      <description>&lt;h2&gt;
  
  
  What is Git
&lt;/h2&gt;

&lt;p&gt;Git is a version control system that allows multiple developers in a team collaborate on a project in real time, by tracking changes to source codes.&lt;/p&gt;

&lt;h1&gt;
  
  
  Key Git Concepts
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository&lt;/strong&gt; - A folder where Git stores your project's code and its history of changes. It can be stored Locally or Remotely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clones&lt;/strong&gt; - A copy of a remote repository on your computer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull&lt;/strong&gt; - Getting the lates changes from a remote repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push&lt;/strong&gt; - Saving your changes to a remote repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit&lt;/strong&gt; - A snapshot of changes made to the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branch&lt;/strong&gt; - A parallel version of the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merge&lt;/strong&gt; - Combining changes from different branches.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Github
&lt;/h2&gt;

&lt;p&gt;GitHub is a cloud-based platform based on Git, which hosts code repositories and helps developers collaborate. &lt;/p&gt;




&lt;h2&gt;
  
  
  Setting up Git
&lt;/h2&gt;

&lt;p&gt;Git can be downloaded from &lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;git-scm.com&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For windows: Simply download and run the installer to install Git and Gitbash&lt;/li&gt;
&lt;li&gt;For MacOS: Open terminal and run &lt;code&gt;$ brew install wget&lt;/code&gt; to install brew, then run &lt;code&gt;$ brew install git&lt;/code&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Configuring Git
&lt;/h3&gt;

&lt;p&gt;Git requires your Username and email address to label your commits.&lt;br&gt;
To add Username, run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git config --global user.name "Username"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To add Email Address&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git config --global user.email "email@example.com" 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Creating a Repository
&lt;/h3&gt;

&lt;p&gt;using terminal on MacOS, or Git bash on Windows, create a directory for your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ mkdir git-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Change the working directory to the one we just created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cd git-lab
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Initialize Git
&lt;/h3&gt;

&lt;p&gt;To create our Repository in this directory, run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A simple Html file can be created via the notepad or using the terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ touch index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To quickly add text to the html file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ echo "this is an index file for my first repo" &amp;gt; index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then we check the status of our file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, it is untracked. This means it is present in our folder, but it's absent from the staging area.&lt;/p&gt;

&lt;p&gt;So we need to tell Git to track our file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git add index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or &lt;code&gt;git add -all&lt;/code&gt; , &lt;code&gt;git add -A&lt;/code&gt; or &lt;code&gt;git add .&lt;/code&gt; to add all the files in the directory.&lt;/p&gt;

&lt;p&gt;To unstage a file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git restore --staged index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then check the status.&lt;/p&gt;

&lt;h3&gt;
  
  
  Commit
&lt;/h3&gt;

&lt;p&gt;To save the staged file(s)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git commit -m "My first commit"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To see previous commit history,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Branches
&lt;/h3&gt;

&lt;p&gt;If we wanted to add changes to our project without affecting the main project, we create a branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git branch "parallel-repo"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To see all branches&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To switch between branches&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git checkout parallel-repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To delete a branch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git branch -d parallel-repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Merging
&lt;/h3&gt;

&lt;p&gt;To combine changes from one branch into another, first switch to the branch you want to merge into(main or master)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git checkout main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we merge&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git merge parallel-repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creating a Remote Repo
&lt;/h2&gt;

&lt;p&gt;Go to &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;github.com&lt;/a&gt; and create a new repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffddnfqioyj36k84wh6f4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffddnfqioyj36k84wh6f4.png" alt="Create a new Github repository" width="800" height="953"&gt;&lt;/a&gt;&lt;br&gt;
Copy &lt;code&gt;git remote add origin https://github.com/username/repository.git&lt;/code&gt;, then paste in terminal and run.&lt;/p&gt;

&lt;p&gt;Finally run,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git push -u origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git would ask to authorize Github, then the local commit gets pushed to the Github repository.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>cloud</category>
    </item>
    <item>
      <title>A Simple Guide to Creating Azure Virtual Networks and Subnets.</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Mon, 12 May 2025 00:29:11 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-azure-virtual-networks-and-subnets-3ad7</link>
      <guid>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-azure-virtual-networks-and-subnets-3ad7</guid>
      <description>&lt;p&gt;Your company, Oasis IT group is migrating their on-premises infrastructure to the cloud. To begin the whole process, you are tasked with creating a Virtual Network and Subnets for each of the four departments. The given IP address is 192.152.50.0/24 and the subnet size is /28.&lt;/p&gt;

&lt;p&gt;First, go to portal.azure.com, search for Virtual Networks and create one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc34iq5k85k65cp6q2h6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc34iq5k85k65cp6q2h6.png" width="800" height="717"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new Resource group — RG1&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the Virtual Network — OasisVN&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the region&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next configure the IP addresses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F446e3abf3fysyil21808.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F446e3abf3fysyil21808.png" width="800" height="756"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this exercise, we would create 3 subnets while deploying the virtual network and the last one after.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Type in the chosen IP Address, It automatically indicates how many address the network can contain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the prefix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edit the default subnet for the first department.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg74jhw1re97qykcg4dbv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg74jhw1re97qykcg4dbv.png" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The first subnet is for the Operations Department.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The starting address is by default the network ID for the subnet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The /28 size determines how many addresses are can be contained in the subnet.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;save and repeat the process for the next 2 subnets.&lt;/p&gt;

&lt;p&gt;Note: The subnet ranges are unique in every address space (i.e no two subnets can overlap)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nh7d1724ne05x78n2le.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nh7d1724ne05x78n2le.png" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, click on Review+create, and deploy the Virtual Network.&lt;/p&gt;

&lt;p&gt;After the resource has been deployed successfully, click on go to resource.&lt;/p&gt;

&lt;p&gt;On the overview page, Go to Settings&amp;gt;Subnets&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau74a6troosfbmwhh4h3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau74a6troosfbmwhh4h3.png" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then click on +Subnet.&lt;/p&gt;

&lt;p&gt;Configure the subnet settings and save.&lt;/p&gt;

&lt;p&gt;And that’s how to create and configure a simple Virtual Network and subnets.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>azurevirtualnetworks</category>
      <category>cloud</category>
      <category>subnets</category>
    </item>
    <item>
      <title>A Simple Guide to Hosting a Static Website on Azure Blob Storage.</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Mon, 12 May 2025 00:28:03 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/a-simple-guide-to-hosting-a-static-website-on-azure-blob-storage-5cj7</link>
      <guid>https://dev.to/emzeeviolino_/a-simple-guide-to-hosting-a-static-website-on-azure-blob-storage-5cj7</guid>
      <description>&lt;p&gt;Azure blob storage is an object storage solution for the cloud that stores unstructured data such as text, binary data, images e.t.c. We’re going to be utilising it to host a static website.&lt;/p&gt;

&lt;p&gt;A website template would be needed for this exercise, you can download one at &lt;a href="http://themewagon.com" rel="noopener noreferrer"&gt;**themewagon.com&lt;/a&gt;**.&lt;/p&gt;

&lt;p&gt;Unzip the contents of the downloaded template and do the necessary edits.&lt;/p&gt;

&lt;p&gt;Then on the Azure portal search for Storage accounts and click create.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftnt8kiwod1mfb6ar9waw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftnt8kiwod1mfb6ar9waw.png" width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the basics tab,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new resource group or select an existing one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the storage account, which must be globally unique.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select a region to deploy the resource to.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure the redundancy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then click review+create.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2y2sp7fyunsq8p8xle2k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2y2sp7fyunsq8p8xle2k.png" width="800" height="1003"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the successful deployment of the resource, click go to resource.&lt;/p&gt;

&lt;p&gt;On the overview page, click on capabilities, then Static website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frupt42vadxlhr2qg5pgy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frupt42vadxlhr2qg5pgy.png" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;click on enable to show the options.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Match the index document name to your index.html doc for your website&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Same goes for the error document path.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on save, A storage container &lt;strong&gt;&lt;em&gt;$web&lt;/em&gt;&lt;/strong&gt; will be created to host your website, and a primary endpoint would be assigned.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the endpoint address.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0zlt3osliuw7hal1zak.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0zlt3osliuw7hal1zak.png" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open a new browser tab, paste the address and click enter.&lt;/p&gt;

&lt;p&gt;Note that when you try to access the endpoint address, you get an error, because the website template has not been uploaded to the &lt;strong&gt;&lt;em&gt;$web&lt;/em&gt;&lt;/strong&gt; container.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5oexzy8exkr4rqvxizg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5oexzy8exkr4rqvxizg.png" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the Storage account, go to Data storage&amp;gt;containers. Click on the &lt;strong&gt;&lt;em&gt;$web&lt;/em&gt;&lt;/strong&gt; container to open it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click upload, a sidebar opens.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open your file explorer to the directory of the website template.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Drag all the files and folders into the sidebar and click upload.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj75u97kj6qaauwcn7wdp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj75u97kj6qaauwcn7wdp.png" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Confirm all the files are correctly uploaded, then reload the tab with the endpoint address. It should load your content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnihe3iu52imrg6ktushr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnihe3iu52imrg6ktushr.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
      <category>azureblobstorage</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>A Simple Guide to Deploying Azure Virtual Machine Scale Sets (VMSS)</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Mon, 12 May 2025 00:24:15 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/a-simple-guide-to-deploying-azure-virtual-machine-scale-sets-vmss-3gnk</link>
      <guid>https://dev.to/emzeeviolino_/a-simple-guide-to-deploying-azure-virtual-machine-scale-sets-vmss-3gnk</guid>
      <description>&lt;p&gt;Azure Virtual Machine Scale Sets are a group of load balanced VM instances that can be easily scaled up or down in response to demand or a defined schedule.&lt;/p&gt;

&lt;p&gt;Scale sets can be deployed with Windows server image or Linux image. But for this tutorial, we’d be deploying a &lt;strong&gt;Linux based VMSS&lt;/strong&gt; via the Azure portal.&lt;/p&gt;

&lt;p&gt;Step1: On the Azure portal, search for Virtual Machine Scale Sets and select it.&lt;/p&gt;

&lt;p&gt;Step2: On the VMSS page click create, the basics tab page shows up.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new resource group for the VMSS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a name for the scale set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select a region close to you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Availability zone: none&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Orchestration mode: Uniform (create identical VMs when scaling)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Security type: Standard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scaling mode: Manual&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instance count: 2&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then Click on &lt;strong&gt;configure scaling options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flbeov8y997p8x1nnc47u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flbeov8y997p8x1nnc47u.png" width="800" height="773"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the scaling configuration page, &lt;strong&gt;Enable&lt;/strong&gt; forecast for predictive autoscaling.&lt;/p&gt;

&lt;p&gt;Select Newest VM as the option for deletion in the scale in policy. Then save. This implies that the newest VM created would be the first to be deleted when scaling down.&lt;/p&gt;

&lt;p&gt;Close and return to the basics tab.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvhvw4x1gtluv3o2oykx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvhvw4x1gtluv3o2oykx.png" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Configure the VM&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Select the server image&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the VM size&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authentication type: SSH public key&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set an Admin Username for logging into the VMs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SSH public key source: Generate new key pair&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SSH key type: RSA SSH Format&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the key pair that would be generated.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then go to the next tab. We could skip the spot and disk tabs and head on to the networking tab.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqmuahxdpm062ohzss97w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqmuahxdpm062ohzss97w.png" width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, A virtual network and subset is already set, but we need to configure the network Interface of the VMSS to allow SSH and HTTP connections.&lt;/p&gt;

&lt;p&gt;Click on the pencil icon highlighted in the image below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faw9pvwv4dekd6b236s9s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faw9pvwv4dekd6b236s9s.png" width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Edit network interface page opens,&lt;/p&gt;

&lt;p&gt;Click on Allow selected ports for Public Inbound ports, then select the ports you want, In this case HTTP(80) and SSH(22).&lt;/p&gt;

&lt;p&gt;Make sure the Public IP address is also enabled to facilitate connection via SSH to the VMSS, then save.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdoeg7bp6kzgk56jmmgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzdoeg7bp6kzgk56jmmgc.png" width="800" height="775"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we configure load balancing for the VMSS.&lt;/p&gt;

&lt;p&gt;First select Azure load balancer, then create a load balancer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxresqymbjb6hkxt4f5gs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxresqymbjb6hkxt4f5gs.png" width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A side pane opens on the right,&lt;/p&gt;

&lt;p&gt;We name the load balancer, and then click create.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjar4irt9zri35dpipwm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjar4irt9zri35dpipwm.png" width="800" height="1586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, review and create.&lt;/p&gt;

&lt;p&gt;After validation is passed, we are prompted to download a key pair before the resource is created. Click on it to continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bxnr38lf1qav0c7c0sk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bxnr38lf1qav0c7c0sk.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When the resource is successfully deployed, click go to resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vt856tx8ihfqs8c223d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vt856tx8ihfqs8c223d.png" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the overview page, we can now see that 2 uniform VM instances have been deployed and a public IP address also assigned.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd9a59mbac9hoxxh2scp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd9a59mbac9hoxxh2scp.png" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can choose to either connect to the VMs in our scale set individually or manage them as a whole.&lt;/p&gt;

&lt;p&gt;In this tutorial, the latter would be the case.&lt;/p&gt;

&lt;p&gt;To do this, we locate our downloaded key pair file and copy the file path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrjix7we7qg6i39ssgzo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrjix7we7qg6i39ssgzo.png" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then set the file permission to read only on mac using &lt;em&gt;**chmod 400 , *&lt;/em&gt;*via the terminal app. This is not required on Windows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnijdno5jxoc77njgh2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnijdno5jxoc77njgh2n.png" width="800" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we can now connect the VMSS backend via SSH but we have to specify the frontend port range from when we created the load balancer for the VMSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzuw99xyu47nx7p5166d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzuw99xyu47nx7p5166d.png" width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the command*** ssh -i  username@IPaddress -p , ***then type yes. The VMSS connects successfully.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gw7my5tfmg29tfknupw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gw7my5tfmg29tfknupw.png" width="800" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any updates or installations made whilst connected now would affect all VM instances running in the scale set, which makes it very easy to manage the Virtual machine scale set.&lt;/p&gt;

&lt;p&gt;Thanks for your read.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>virtualmachine</category>
      <category>cloud</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>A Simple Guide to Creating &amp; Connecting to a Linux VM on Azure</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Mon, 12 May 2025 00:23:22 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-connecting-to-a-linux-vm-on-azure-g38</link>
      <guid>https://dev.to/emzeeviolino_/a-simple-guide-to-creating-connecting-to-a-linux-vm-on-azure-g38</guid>
      <description>&lt;p&gt;First, you want to log on to your azure portal @portal.azure.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkq26nl3tk83lhm77ozg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkq26nl3tk83lhm77ozg.png" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then search for the virtual machine resource using the search bar&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3f7dmu1b9jz3dmn0rnkv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3f7dmu1b9jz3dmn0rnkv.png" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicking on the first result opens up the Virtual Machines page, where we can create and manage our VMs.&lt;/p&gt;

&lt;p&gt;Next, (1) Click create, then (2) Azure VM&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowomoyanrd1euc697o4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowomoyanrd1euc697o4q.png" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A new page opens up with options for creating our VM&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new resource group for the VM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the VM a name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the desired region to deploy the VM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the availability option, In this case no redundancy is required.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the security type — standard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then select the image for the VM. Ubuntu is the choice of linux image for this VM.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvbtlo0xxxxtq6snhmc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvbtlo0xxxxtq6snhmc3.png" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scrolling down,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Select the size of the VM based on computing demands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The authentication type is set to SSH public key.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The username for the Administrator account is set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;select Generate a new key pair&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name the key pair.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then click review and create.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoayhul9vgdxu75s1p7z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoayhul9vgdxu75s1p7z.png" width="800" height="706"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The other settings are automatically managed when we skip them.&lt;/p&gt;

&lt;p&gt;After the machine is successfully validated, go ahead to create the VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1m2f6okd3d0btyg89xz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1m2f6okd3d0btyg89xz.png" width="800" height="712"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A pop-up would appear, click “download the private key and create the resource.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nre7e7bctcsghgf79t0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5nre7e7bctcsghgf79t0.png" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The private key is then downloaded and the resource is deployed. It took less than a minute to do so, which is also dependent on the size of the resource.&lt;/p&gt;

&lt;p&gt;Click Go to resource and copy the public IP address.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faaqphflo18uy45zm3k5r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faaqphflo18uy45zm3k5r.png" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to your downloads folder to see the downloaded private key.&lt;/p&gt;

&lt;p&gt;On a windows device, proceed to opening the VM via powershell or command prompt using &lt;strong&gt;ssh -i filepath administratorusername@IPaddress.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On a mac device, you need to set a read-only permission for the file for it to be accessible and avoid errors whilst trying to access it via terminal.&lt;/p&gt;

&lt;p&gt;To do this, first copy the file path name, (right click on the file name and hold option, the option would then appear)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv65x0zaguyhrx02c4emi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv65x0zaguyhrx02c4emi.png" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then open the Terminal app, run the command &lt;strong&gt;chmod 400 “filepath.pem”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcx3tvux6irxg425boxdq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcx3tvux6irxg425boxdq.png" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then proceed to connect to the VM using the Linux key using &lt;strong&gt;ssh -i filepath administratorusername@IPaddress.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6n4lq3eiinoweew1fsrt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6n4lq3eiinoweew1fsrt.png" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Press Enter to run, and yes to connect to the VM&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxy6o2ewugsklg27y20a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxy6o2ewugsklg27y20a.png" width="800" height="727"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The VM would then open.&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

</description>
      <category>azure</category>
      <category>virtualmachine</category>
      <category>cloud</category>
      <category>linux</category>
    </item>
    <item>
      <title>Easy Steps to Deploying Windows 11 VM on Microsoft Azure</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Mon, 12 May 2025 00:21:23 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/easy-steps-to-deploying-windows-11-vm-on-microsoft-azure-17mh</link>
      <guid>https://dev.to/emzeeviolino_/easy-steps-to-deploying-windows-11-vm-on-microsoft-azure-17mh</guid>
      <description>&lt;h2&gt;
  
  
  Easy Steps to Deploying Windows 11 VM on Microsoft Azure
&lt;/h2&gt;

&lt;p&gt;Deploying A VM on Azure has to be one of the most seamless ways to get a VM in modern times and I’ll be showing you how to do so in no time.&lt;/p&gt;

&lt;p&gt;First, log on to the Azure portal at portal.azure.com&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F48hqxwmpul3cxon4jjdo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F48hqxwmpul3cxon4jjdo.png" alt="Azure Portal" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, search for virtual machine resource from the search bar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxpwndcdgcfs61ey2fcg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxpwndcdgcfs61ey2fcg.png" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This would open the virtual machines page, select create, then Azure virtual machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi35vu6iqiaqxrgszfwoc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi35vu6iqiaqxrgszfwoc.png" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, for free Azure accounts, a subscription would already be active, You can then go ahead and create a new resource group or select an existing one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhmlok5zcum5540kjxyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhmlok5zcum5540kjxyn.png" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then name your VM, select a region, and availability option based on vertical or horizontal redundancy requirements for your VM. If the VM doesn’t need one, No Infrastructure redundancy require is selected. The security type is set to standard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcpdkcxk6mjmspckqrdv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcpdkcxk6mjmspckqrdv.png" width="800" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For accounts using free subscriptions, some images won’t be available to you. I’m also on the free account, the image available is Windows 11 Enterprise, click on see all images&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54xa5acl6r6rc9ln5yg8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F54xa5acl6r6rc9ln5yg8.png" width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then click on select, and select the image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d1ezlg9zzvsn0zhseqx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d1ezlg9zzvsn0zhseqx.png" width="800" height="652"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The VM architecture is set to x64 by default, since ARM64 is primarily used in mobile and embedded devices, while x64 (or x86–64) is dominant in desktop and server PCs.&lt;/p&gt;

&lt;p&gt;Then VM size is selected based on workload type and usage, which in turn affects the cost of running it.&lt;/p&gt;

&lt;p&gt;An administrator account must be created for the VM, which would be used to access the VM once it’s deployed. Next is the Disk options.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flme9pea9xoia10tnqjwa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flme9pea9xoia10tnqjwa.png" width="800" height="947"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, these are already setup for optimal performances, but can be modified to taste.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvye55vrp4t8k6th2kph0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvye55vrp4t8k6th2kph0.png" width="800" height="1001"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next is the Networking options, A virtual network is created by default, but the Public IP address might need to be modified to be dynamic as shown in the image below. Click on create new under the Public IP option.&lt;/p&gt;

&lt;p&gt;From here, you can simply click review + create to continue with this case of a simple VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2g6wmiwk6a1g154a78yq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2g6wmiwk6a1g154a78yq.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The VM settings are then checked and validated.&lt;/p&gt;

&lt;p&gt;Once validation is passed, you get this overview page of all your settings before proceeding to create the VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9bhpgvs3icqzktbudjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9bhpgvs3icqzktbudjc.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the Deployment is complete, click go to resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcmpk1wztq4c138dxxqxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcmpk1wztq4c138dxxqxu.png" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This overview page opens, click connect to connect to the VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftz5iiywqsphdig57nyx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftz5iiywqsphdig57nyx4.png" width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then download the RDP file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq056y66ycczo9clouaes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq056y66ycczo9clouaes.png" width="800" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open the RDP file from your downloads folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyg2hjt5v2t9upx62h47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyg2hjt5v2t9upx62h47.png" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On windows, the RDP file opens in The Remote Desktop App by default.&lt;/p&gt;

&lt;p&gt;But on MacOS, I had to install the new Windows App, which opens the Remote desktop tool once I open the RDP file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzel41lg74uzet80e6h8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzel41lg74uzet80e6h8.png" width="800" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A connection is established to the VM, then It asks for the Admin credentials we created whilst creating the VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5kjkv6dpl8ry6dff5cd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5kjkv6dpl8ry6dff5cd.png" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The VM then opens successfully.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp111kg1clzpdz6mkm146.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp111kg1clzpdz6mkm146.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that’s how to successfully deploy a Windows 11 VM on Microsoft Azure.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>virtualmachine</category>
      <category>cloud</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>The Core Architectural Components of Azure</title>
      <dc:creator>Emmanuel Akpadia</dc:creator>
      <pubDate>Mon, 12 May 2025 00:18:02 +0000</pubDate>
      <link>https://dev.to/emzeeviolino_/the-core-architectural-components-of-azure-1p72</link>
      <guid>https://dev.to/emzeeviolino_/the-core-architectural-components-of-azure-1p72</guid>
      <description>&lt;h2&gt;
  
  
  The Core Architectural Components of Azure
&lt;/h2&gt;

&lt;p&gt;Azure, Microsoft’s cloud computing platform, comprises several core architectural components that work together to provide a wide range of services. It’s key components are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Regions and Availability Zones&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs25juu1mlzrba92dmp8t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs25juu1mlzrba92dmp8t.png" alt="Azure Regions" width="733" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Regions&lt;/strong&gt;: Geographically distinct locations that contain multiple data centers and are designed to be isolated from each other to ensure fault tolerance and stability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyf9ayva5l5kkg5cvhihb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyf9ayva5l5kkg5cvhihb.png" alt="Availability zones" width="535" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Availability Zones&lt;/strong&gt;: Physically separate data centers within an Azure region that are designed to be isolated from failures in other zone thereby providing high availability and redundancy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Resource Groups&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lmrw7l8juledm6s6vtp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lmrw7l8juledm6s6vtp.png" alt="Azure Resource Groups" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logical containers used to group related resources (e.g., VMs, storage accounts, networks) for easier management, monitoring, and billing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Azure Resource Manager (ARM)&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsee4sx2gdzc9ejqdvxd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsee4sx2gdzc9ejqdvxd.png" alt="Azure Resource Manager" width="641" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The management layer that handles deployment, management and organisation of resources using templates and policies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Compute Services&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Virtual Machines (VMs)&lt;/strong&gt;: scalable computing resources for running workloads.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Kubernetes Service (AKS)&lt;/strong&gt;: Managed Kubernetes service for containerrized applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Functions&lt;/strong&gt;: Serverless compute service for running event-driven code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;App Services&lt;/strong&gt;: Platform-as-a-Service (PaaS) for hosting web apps and APIs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Storage Services&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blob Storage&lt;/strong&gt;: Object storage for unstructured data like text and binary data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;File Storage&lt;/strong&gt;: Managed file shares for cloud or on-premises deployments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disk Storage&lt;/strong&gt;: Persistent, high-performance disk storage for VMs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Queue Storage&lt;/strong&gt;: Messaging store for reliable messaging between application components.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn3fgo1wh52tnuk8uva0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn3fgo1wh52tnuk8uva0p.png" alt="Azure Storage Services" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Networking&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz91d6op7j322o90z6lrd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz91d6op7j322o90z6lrd.png" alt="Azure Network Services" width="739" height="656"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Virtual Network (VNet)&lt;/strong&gt;: Isolated, private networks in Azure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Load Balancer&lt;/strong&gt;: Distributes incoming network traffic across multiple VMs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Application Gateway&lt;/strong&gt;: Web traffic load balancer with additional features like SSL termination and web application firewall (WAF).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure DNS&lt;/strong&gt;: Hosting service for DNS domains.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Content Delivery Network (CDN)&lt;/strong&gt;: Global CDN for delivering high-bandwidth content.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Databases&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure SQL Database&lt;/strong&gt;: Managed relational database service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cosmos DB&lt;/strong&gt;: Globally distributed, multi-model database service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Database for MySQL/PostgreSQL&lt;/strong&gt;: Managed database services for MySQL and PostgreSQL.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;8. Identity and Access Management (IAM)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Active Directory (AAD)&lt;/strong&gt;: Cloud-based identity and access management service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Role-Based Access Control (RBAC)&lt;/strong&gt;: Fine-grained access management for Azure resources.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;9. Security and Compliance&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Security Center&lt;/strong&gt;: Unified security management and advanced threat protection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Key Vault&lt;/strong&gt;: Secure storage for secrets, keys, and certificates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Policy&lt;/strong&gt;: Service to create, assign, and manage policies for resource compliance.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;10. Monitoring and Management&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Monitor&lt;/strong&gt;: Comprehensive monitoring solution for collecting, analyzing, and acting on telemetry data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Automation&lt;/strong&gt;: Service for automating repetitive tasks and configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Advisor&lt;/strong&gt;: Personalized recommendations to optimize Azure resources.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;11. Developer Tools&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure DevOps&lt;/strong&gt;: Services for CI/CD, version control, and agile planning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual Studio Team Services&lt;/strong&gt;: Cloud-based version of Visual Studio for development and collaboration.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;12. AI and Machine Learning&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Machine Learning&lt;/strong&gt;: Cloud-based environment for training, deploying, and managing machine learning models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cognitive Services&lt;/strong&gt;: APIs for adding AI capabilities like vision, speech, and language understanding.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;13. Internet of Things (IoT)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure IoT Hub&lt;/strong&gt;: Central message hub for bi-directional communication between IoT applications and devices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure IoT Central&lt;/strong&gt;: Fully managed IoT SaaS solution for connecting and managing IoT devices.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;14.Integration Services&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Azure Logic Apps&lt;/strong&gt;: Service for automating workflows and integrating apps, data, and services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Service Bus&lt;/strong&gt;: Messaging service for connecting applications and services.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These components collectively enable Azure to provide a robust, scalable, and secure cloud computing environment for a wide range of applications and services.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
