<?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: Celestina Odili</title>
    <description>The latest articles on DEV Community by Celestina Odili (@celestina_odili).</description>
    <link>https://dev.to/celestina_odili</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%2F1587096%2Fe1dd5115-e786-401b-bb5d-b9ab15fffd62.jpg</url>
      <title>DEV Community: Celestina Odili</title>
      <link>https://dev.to/celestina_odili</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/celestina_odili"/>
    <language>en</language>
    <item>
      <title>Serverless Integration: Automate Your Workflow with Logic App</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Wed, 18 Sep 2024 12:01:34 +0000</pubDate>
      <link>https://dev.to/celestina_odili/serverless-integration-automate-your-workflow-with-logic-app-38b6</link>
      <guid>https://dev.to/celestina_odili/serverless-integration-automate-your-workflow-with-logic-app-38b6</guid>
      <description>&lt;p&gt;Here is a step-by-step guide to creating a Logic App and automating a task process in the Azure portal:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 1: Log in to Azure Portal&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Visit &lt;a href="https://portal.azure.com/" rel="noopener noreferrer"&gt;portal.azure.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sign in with your Azure credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 2: Create a Logic App&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the search bar at the top of the Azure Portal, type &lt;strong&gt;"Logic Apps"&lt;/strong&gt; and select &lt;strong&gt;Logic Apps&lt;/strong&gt; from the search results.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;+ Add&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae7ymbb4g5zxaduk57v6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae7ymbb4g5zxaduk57v6.jpg" alt="Image description" width="576" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select a &lt;strong&gt;hosting option&lt;/strong&gt; to begin creating a new Logic App. Choose between &lt;strong&gt;Consumption Plan&lt;/strong&gt; and &lt;strong&gt;Standard Plans&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;click select&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 3: Configure the Logic App&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Basics Settings&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subscription&lt;/strong&gt;: Select your Azure subscription.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Group&lt;/strong&gt;: Choose an existing resource group or create a new one by clicking &lt;strong&gt;Create new&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic App Name&lt;/strong&gt;: Enter a globally unique name for your Logic App.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt;: Select the Azure region where the Logic App will be hosted. Choose a location closest to your users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable Log Analytics&lt;/strong&gt;: select yes or No &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffujoxwljoxv8tzgn2v3k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffujoxwljoxv8tzgn2v3k.jpg" alt="Image description" width="747" height="716"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Review and Create&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Review + Create&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review all the information entered.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt; to deploy the Logic App.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 4: Define a Workflow&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Go to the Logic App Designer&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;After deployment, click &lt;strong&gt;Go to Resource&lt;/strong&gt; to open your Logic App.&lt;/li&gt;
&lt;li&gt;In the left pane, select &lt;strong&gt;Development Tools&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Logic App Designer&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click add a trigger&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Choose a Workflow Trigger&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Choose a &lt;strong&gt;Trigger&lt;/strong&gt; for your workflow. Triggers tell your app when to start running. Each workflow needs at least one trigger. It can be event-based or schedule-based.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Examples of Triggers&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;HTTP Request (e.g., when an HTTP request is received).&lt;/li&gt;
&lt;li&gt;Recurrence (e.g., run every 1 hour).&lt;/li&gt;
&lt;li&gt;Azure Service (e.g., when a new blob is added to Azure Storage).&lt;/li&gt;
&lt;li&gt;OneDrive (e.g, when a file is created) &lt;/li&gt;
&lt;li&gt;Gmail (e.g, when a new email arrives) &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;we will be using OneDrive (When a file is created) trigger here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomrx6zvrj4uh6nel0zrb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomrx6zvrj4uh6nel0zrb.jpg" alt="Image description" width="598" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a connection by signing in &lt;/li&gt;
&lt;li&gt;Click accept to allow logic app access to your information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the parameter tab:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add the particular folder you want to track, choose root if there is none in particular. &lt;/li&gt;
&lt;li&gt;choose how often the folder will be checked. &lt;/li&gt;
&lt;li&gt;click save&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add Actions to the Workflow&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After defining the trigger, click &lt;strong&gt;New Step&lt;/strong&gt; to add &lt;strong&gt;Actions&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy99vxprzqxx3n7p99ag2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy99vxprzqxx3n7p99ag2.jpg" alt="Image description" width="410" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Actions are tasks that run when the trigger condition is met. You can integrate various services (e.g., send an email, create a record in a database, call an API, etc.).&lt;br&gt;
     - &lt;strong&gt;Examples of Actions&lt;/strong&gt;:&lt;br&gt;
       - Send an email using &lt;strong&gt;Office 365&lt;/strong&gt;.&lt;br&gt;
       - Insert data into &lt;strong&gt;SQL Server&lt;/strong&gt;.&lt;br&gt;
       - Send email &lt;strong&gt;Gmail&lt;/strong&gt;&lt;br&gt;
In this article, we will use send email (Gmail)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1yh42v7rw6xq499g7g9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1yh42v7rw6xq499g7g9.jpg" alt="Image description" width="599" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides a connection name and authentication type and sign in to create a connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx9fq9fjvsaqsvreouid.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx9fq9fjvsaqsvreouid.jpg" alt="Image description" width="631" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the email to be used, sign in, allow access and continue. &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;On the action parameter tab, add your recipient email address, compose the automatic email and save.&lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 5: Test the Logic App&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;After configuring the trigger and actions, click &lt;strong&gt;Save&lt;/strong&gt; in the top toolbar to save your Logic App. The Logic App will check for the stated trigger following the time interval configured and execute the action once the parameter is met. Now let us test the logic app.   &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upload a new file in OneDrive.  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;After the configured time interval, check the recipient email.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;To test the Logic App manually, click on &lt;strong&gt;Run Trigger&lt;/strong&gt; in the Logic App overview.&lt;/li&gt;
&lt;li&gt;You can also monitor the workflow execution in real-time by going to the &lt;strong&gt;Run History&lt;/strong&gt; tab on the &lt;strong&gt;Development Tools&lt;/strong&gt;, which shows the status of each run (successful or failed).&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 6: Clean up&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When you are done testing your logic app, delete the resource group to avoid incurring charges. This will clean up the resource group and all resources in it.&lt;/p&gt;

</description>
      <category>logicapps</category>
      <category>serverless</category>
      <category>automation</category>
      <category>devops</category>
    </item>
    <item>
      <title>Web Site Deployment with ARM Templates and Azure CLI.</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Wed, 04 Sep 2024 06:10:13 +0000</pubDate>
      <link>https://dev.to/celestina_odili/deploy-a-web-app-with-arm-templates-and-azure-cli-206l</link>
      <guid>https://dev.to/celestina_odili/deploy-a-web-app-with-arm-templates-and-azure-cli-206l</guid>
      <description>&lt;p&gt;Table of Contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
Introduction&lt;br&gt;
Step 1: Prerequisite &lt;br&gt;
Step 2: Push your website to remote repository (GitHub)&lt;br&gt;
Step 3: Sign in to Azure&lt;br&gt;
Step 4: Prepare your ARM template files&lt;br&gt;
Step 5: Deploy the ARM Template&lt;br&gt;
Step 6: Host the Website to the App Service&lt;br&gt;
Step 7: Browse the Deployed Website&lt;br&gt;
Step 8: Clean Up Resources (Optional)&lt;/p&gt;
&lt;h3&gt;
  
  
  Introduction &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Using Azure Resource Manager (ARM) templates and Azure CLI (Command Line Interface) for deploying resources in Azure offers several benefits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Using ARM Templates&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Infrastructure as Code (IaC)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ARM templates allow you to define your entire infrastructure in a &lt;em&gt;declarative JSON format&lt;/em&gt;, enabling you to automate deployment and configuration of resources.&lt;/li&gt;
&lt;li&gt;Ensures consistent deployments, reducing human errors compared to manual configuration.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Repeatability&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Templates can be reused to deploy the same resources in different environments (e.g., dev, test, prod), ensuring consistency across all environments.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scalability and Orchestration&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ARM templates can deploy complex workloads, including dependencies between resources, making them ideal for orchestrating multi-tier deployments.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Version Control&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Since ARM templates are written in JSON, they can be versioned, tracked, and audited in source control systems like Git, allowing for change management and rollback.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Parameterization&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ARM templates support parameters, enabling dynamic input like resource names, sizes, and locations, which allows flexibility without needing multiple templates.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dependency Management&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can define dependencies between resources in an ARM template, ensuring that resources are deployed in the correct order.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Built-in Validation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ARM templates allow you to &lt;em&gt;validate&lt;/em&gt; deployments before applying them, ensuring that your configuration is correct and complete.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cost Estimation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With ARM templates, you can estimate the cost of the resources being deployed, helping you to plan your budget and optimize resource usage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefits of Using Azure CLI&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Simplicity and Speed&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure CLI offers a &lt;em&gt;command-line interface&lt;/em&gt; that’s easy to learn and quick to execute, making it ideal for developers and engineers comfortable with scripting.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Automation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure CLI can be used to automate deployment, configuration, scaling, and management of Azure resources through scripts (e.g., bash, PowerShell), helping to streamline repetitive tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cross-Platform&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure CLI is &lt;em&gt;cross-platform&lt;/em&gt;, running on Windows, macOS, and Linux, offering flexibility for developers working across different operating systems.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scriptability&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can write scripts to handle complex deployment scenarios, such as looping over resource creation or conditional logic based on input parameters.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Interactive and Ad-hoc Commands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure CLI can be used interactively for quick, ad-hoc tasks or combined with scripts for larger automation scenarios.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Integration with DevOps Pipelines&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure CLI can be easily integrated into CI/CD pipelines (e.g., Azure DevOps, GitHub Actions), allowing automated deployments and testing in a DevOps workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Flexibility in Resource Management&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CLI commands provide flexibility in managing resources on the go (create, update, scale, delete), and allow users to execute tasks not easily done in the portal.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Using Both &lt;strong&gt;ARM Templates&lt;/strong&gt; and &lt;strong&gt;Azure CLI&lt;/strong&gt; together offer a robust benefit from both.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use ARM templates for &lt;em&gt;consistent, declarative deployments&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Use Azure CLI to &lt;em&gt;invoke&lt;/em&gt; and &lt;em&gt;manage&lt;/em&gt; those templates programmatically in scripts or automation workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This blog will guide you through creating the necessary resources (Resource Group, App Service Plan, and Web App), deploying a website, and using an ARM template and Azure CLI for deployment.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Prerequisite &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Azure account
If you do not have one yet, click &lt;a href="https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account" rel="noopener noreferrer"&gt;here &lt;/a&gt;to sign up for a free account &lt;/li&gt;
&lt;li&gt;Azure CLI
If you haven't already installed the Azure CLI, you can install it from &lt;a href="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Visual studio code with Azure CLI tools extension installed&lt;/li&gt;
&lt;li&gt;GitHub account. Sign up &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt; if you do not have one yet.&lt;/li&gt;
&lt;li&gt;website application. Create a website if you have coding skills or search for free web app online and download. You can see &lt;a href="https://themewagon.com/" rel="noopener noreferrer"&gt;Theme wagon&lt;/a&gt; for example.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Push your website to remote repository (GitHub) &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a repository in Github&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fy6bcw8t50d0vpclose0x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fy6bcw8t50d0vpclose0x.jpg" alt="Image description" width="723" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open your website application code on visual studio code

&lt;ul&gt;
&lt;li&gt;On terminal tab, switch to git bash&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fnxuiea0nc51fob973v5u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fnxuiea0nc51fob973v5u.jpg" alt="Image description" width="800" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the following command to push your website to GitHub&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initialize your repository. Run the following command
&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;Create a connection to your Repository
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add origin URL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;replace URL with your repository URL copied from GitHub. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add all your files
&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;Commit to save
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git commit -m"initial commit"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Push to the remote repository
&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 origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.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%2Fueqt4kurefchrh4d815v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fueqt4kurefchrh4d815v.jpg" alt="Image description" width="778" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Files will be visible in your GitHub repo upon a successful push.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ffr5x4gz3nc04zecdms2j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ffr5x4gz3nc04zecdms2j.jpg" alt="Image description" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To learn more about how to create a repository and push file to it click &lt;a href="https://dev.to/celestina_odili/a-quick-start-to-git-and-github-587d"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3: Sign in to Azure &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On the terminal, sign in to your Azure account:
&lt;/li&gt;
&lt;/ul&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;ul&gt;
&lt;li&gt;When prompted, choose your account type and continue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fknwf8nhn1drhy80qh6an.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fknwf8nhn1drhy80qh6an.jpg" alt="Image description" width="491" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide your account details to sign in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhe7tk1e3b41rzapegxca.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhe7tk1e3b41rzapegxca.jpg" alt="Image description" width="488" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upon successful sign in, your subscription will be listed typical in json, yaml or table form.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhr6rq4o4bol4xw27gym4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhr6rq4o4bol4xw27gym4.jpg" alt="Image description" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 4: Prepare your ARM template files &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a new folder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Manually create a new folder in same directory as your website and create json files for your deployment. Alternatively, use Linux command to move out of the website folder, make a new folder for the ARM template and create json files. Here we will go with the later, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Move a step back
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Create a new folder furniture-ARM-Template
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir furniture-ARM-Template 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Move into the new folder
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd furniture-ARM-Template
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Create json files (template.json and parameter.json)for your ARM Template. Use any name of your choice but remember to stick to lower case to avoid unnecessary errors while deploying resources.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch template.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano template.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;put the following command in the file&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]",
        "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;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch parameter.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano parameter.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Put the following command into the file&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": "furnitureAppPlan87"
    },
    "webAppName": {
      "value": "interiorfurnitureWebApp9040"
    }
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace furnitureAppPlan87 and interiorfurnitureWebApp9040 with a unique name of your choice for your app service plan and web app respectively.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the Folder furniture-ARM-Template to confirm your saved files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F89bhv6qnm3qxl0r0jzwi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F89bhv6qnm3qxl0r0jzwi.jpg" alt="Image description" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Deploy the ARM Template &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a Resource Group using Azure CLI
Use the format to create a resource group.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az group create --name ResourceGroupName --location ResourceGroupLocation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the ResourceGroupName with any name of your choice ResourceGroupLocation with any azure location of your choice. &lt;/p&gt;

&lt;p&gt;Example&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 --name furnitureRG --location westeurope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.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%2F9uhw1ic0kga0pt9zbs8j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9uhw1ic0kga0pt9zbs8j.jpg" alt="Image description" width="654" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deploy the ARM Template to create App Service Plan and webapp
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.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%2Fjbk70ogw7ha4o4tbhppf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fjbk70ogw7ha4o4tbhppf.jpg" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Host the Website to the App Service &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to your website repository on github.com&lt;/li&gt;
&lt;li&gt;Navigate to code and copy the url provided or from the address bar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F56b9e1cqsgjtrkztp42x.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F56b9e1cqsgjtrkztp42x.jpg" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configure the webapp deployment source.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the following command, Replace interiorfurnitureWebApp9040 with your web app name, furnitureRG  with resource group name and &lt;a href="https://github.com/celestinaodili/furniture-website.git" rel="noopener noreferrer"&gt;https://github.com/celestinaodili/furniture-website.git&lt;/a&gt; with your url.&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 interiorfurnitureWebApp9040 --resource-group furnitureRG  --repo-url https://github.com/celestinaodili/furniture-website.git --branch master --manual-integration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Run the command in your terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fpht0jtrhzt977kfxpj41.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fpht0jtrhzt977kfxpj41.jpg" alt="Image description" width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7: Browse the Deployed Website &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;After the deployment is complete&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to Azure portal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the default domain url&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fhodnxv84pnngw9w4zmx6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fhodnxv84pnngw9w4zmx6.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Paste the url on a browser to visit the website.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;interiorfurniturewebapp9040.azurewebsites.net
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will show a furniture e-commerce website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fup556rscrx1upudqjuzc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fup556rscrx1upudqjuzc.jpg" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 8: Clean Up Resources (Optional) &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;If you are practicing, it is always good to delete resources after practice to avoid incurring charges on your account. You may want to leave this because it is a free tier but if you want to delete, you can do so with the following command:&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 delete --name furnitureRG --yes --no-wait
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace furnitureRG with the name of your resource group. This will remove the resource group and all associated resources.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

</description>
      <category>armtemplates</category>
      <category>azurecli</category>
      <category>cloudcomputing</category>
      <category>webdeployment</category>
    </item>
    <item>
      <title>Deploy Virtual Machines via ARM Template</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Wed, 14 Aug 2024 13:12:57 +0000</pubDate>
      <link>https://dev.to/celestina_odili/deploy-a-virtual-machine-using-an-arm-template-4gm4</link>
      <guid>https://dev.to/celestina_odili/deploy-a-virtual-machine-using-an-arm-template-4gm4</guid>
      <description>&lt;p&gt;Contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
   Introduction&lt;br&gt;
1: Sign in to the Azure Portal &lt;br&gt;
2: Start a Custom Deployment&lt;br&gt;
3: Select the ARM Template&lt;br&gt;
4: Enter or Load the ARM Template &lt;br&gt;
5: Configure Deployment Settings&lt;br&gt;
6: Verify the Deployment&lt;br&gt;
7: Test Connection&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Azure Resource Manager (ARM) template is a JSON file that defines the infrastructure and configuration of your Azure resources. It allows deployment, management and configuration of resources in a consistent and repeatable way. ARM templates are a core component of infrastructure as code (IaC) in Azure, enabling automation and deployment at scale. Deploying a virtual machine using an ARM template in Azure Portal is via "Custom deployment". Here is a step-by-step guide:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Sign in to the Azure Portal&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to the &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;Azure Portal&lt;/a&gt; and log in with your Azure credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Start a Custom Deployment&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure Portal, search for &lt;strong&gt;"Deploy a custom template"&lt;/strong&gt; in the search bar and select it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucbyqfg91zbowip8sebv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fucbyqfg91zbowip8sebv.jpg" alt="Image description" width="751" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Select the ARM Template&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On the &lt;strong&gt;Custom deployment&lt;/strong&gt; page, you can:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"Build your own template in the editor"&lt;/strong&gt;: This allows you to create or edit an ARM template directly in the Azure Portal.&lt;/li&gt;
&lt;li&gt;Choose from &lt;strong&gt;"common templates"&lt;/strong&gt; if it is among the lists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Start with a QuickStart template or template spec"&lt;/strong&gt;: This allows you to select existing template file or upload a JSON file that contains your template. Choose either option based on your preference. In this guide, we will be using QuickStart template.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femrizwob6j7jymjrr91i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femrizwob6j7jymjrr91i.jpg" alt="Image description" width="702" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Enter or Load the ARM Template&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you selected &lt;strong&gt;"Build your own template in the editor"&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;"Build your own template in the editor"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the editor, delete the content, paste your ARM template JSON and edit if necessary or write a new one. Here is an example template for deploying a Linux VM:
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&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.Compute/virtualMachines",
      "apiVersion": "2022-08-01",
      "name": "[parameters('vmName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "hardwareProfile": {
          "vmSize": "[parameters('vmSize')]"
        },
        "storageProfile": {
          "imageReference": {
            "publisher": "[parameters('imagePublisher')]",
            "offer": "[parameters('imageOffer')]",
            "sku": "[parameters('imageSku')]",
            "version": "latest"
          },
          "osDisk": {
            "createOption": "FromImage"
          }
        },
        "osProfile": {
          "computerName": "[parameters('vmName')]",
          "adminUsername": "[parameters('adminUsername')]",
          "adminPassword": "[parameters('adminPassword')]",
          "linuxConfiguration": {
            "disablePasswordAuthentication": false
          }
        },
        "networkProfile": {
          "networkInterfaces": [
            {
              "id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]"
            }
          ]
        }
      }
    },
    {
      "type": "Microsoft.Network/networkInterfaces",
      "apiVersion": "2022-08-01",
      "name": "[parameters('networkInterfaceName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "subnet": {
                "id": "[parameters('subnetId')]"
              },
              "privateIPAllocationMethod": "Dynamic",
              "publicIPAddress": {
                "id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIpAddressName'))]"
              }
            }
          }
        ]
      }
    },
    {
      "type": "Microsoft.Network/publicIPAddresses",
      "apiVersion": "2022-08-01",
      "name": "[parameters('publicIpAddressName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "publicIPAllocationMethod": "Dynamic"
      }
    }
  ],
  "parameters": {
    "vmName": {
      "type": "string"
    },
    "vmSize": {
      "type": "string",
      "defaultValue": "Standard_B1s"
    },
    "adminUsername": {
      "type": "string"
    },
    "adminPassword": {
      "type": "securestring"
    },
    "networkInterfaceName": {
      "type": "string"
    },
    "publicIpAddressName": {
      "type": "string"
    },
    "subnetId": {
      "type": "string",
      "metadata": {
        "description": "The resource ID of the subnet."
      }
    },
    "imagePublisher": {
      "type": "string",
      "defaultValue": "Canonical"
    },
    "imageOffer": {
      "type": "string",
      "defaultValue": "UbuntuServer"
    },
    "imageSku": {
      "type": "string",
      "defaultValue": "18.04-LTS"
    }
  }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;"Save"&lt;/strong&gt; when done&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;If you selected &lt;strong&gt;"Start with a QuickStart template or template spec"&lt;/strong&gt;: Here we will use QuickStart template.

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;"QuickStart template"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Search QuickStart template and select your desired VM template file. Here, we will be selecting a simple Linux VM&lt;/li&gt;
&lt;li&gt;Click Select template to load the template or Edit template if you want to change some parameters.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwooci9qnkhstzgt92pqm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwooci9qnkhstzgt92pqm.jpg" alt="Image description" width="740" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;Configure Deployment Settings&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;After saving or loading the template, you will be taken to the &lt;strong&gt;Custom deployment&lt;/strong&gt; page.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Subscription&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select an existing &lt;strong&gt;Resource Group&lt;/strong&gt; or create a new one.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Region&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enter the required &lt;strong&gt;Parameters&lt;/strong&gt; like VM name, size, etc.). These are all defined in your ARM template.&lt;/li&gt;
&lt;li&gt;Choose authentication type (SSH public key or password) Here, we are using password. provide Admin Username and password. Take note of the username and password because they will be needed for connection.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Review and Create&lt;/strong&gt; to review the configuration summary.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn81car3faxyrml5ivnrq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn81car3faxyrml5ivnrq.jpg" alt="Image description" width="734" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdqffitsi87u2cpd4ih4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdqffitsi87u2cpd4ih4.jpg" alt="Image description" width="786" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;"Create"&lt;/strong&gt; to start the deployment.&lt;/li&gt;
&lt;li&gt;The deployment process will begin, and you can monitor its progress in the &lt;strong&gt;Notifications&lt;/strong&gt; area.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;strong&gt;Verify the Deployment&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Once the deployment is complete, click go to resource group. This will take you to the &lt;strong&gt;Resource group&lt;/strong&gt; you specified.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;You should see the virtual machine and any associated resources (like network interfaces, disks, Virtual network etc.).&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;strong&gt;Test Connection&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to the VM overview page and copy the public IP address&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Launch your command terminal (bash for Linux OS and PowerShell for windows OS) and run the following command by replacing username with the username you created and public-ip with the public IP address copied earlier.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh username@public-ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Type yes to verify fingerprint and put your password. When typing your password, the characters will not be displayed but if correctly typed, you will get a welcome message indicating a successful connection and the name of your Linux VM will be displayed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0f3og3mx9pzjp69fb77i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0f3og3mx9pzjp69fb77i.jpg" alt="Image description" width="632" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

</description>
      <category>armtemplate</category>
      <category>infrastructureascode</category>
      <category>virtualmachine</category>
      <category>linux</category>
    </item>
    <item>
      <title>Deploying a Web App with CI/CD Pipeline on Azure App Service</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Sat, 10 Aug 2024 02:29:29 +0000</pubDate>
      <link>https://dev.to/celestina_odili/deploying-a-web-app-with-cicd-pipeline-on-azure-app-service-3cd3</link>
      <guid>https://dev.to/celestina_odili/deploying-a-web-app-with-cicd-pipeline-on-azure-app-service-3cd3</guid>
      <description>&lt;p&gt;Contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
Introduction &lt;br&gt;
Step 1: Create an Azure App Service plan &lt;br&gt;
Step 2: Create an Azure App Service&lt;br&gt;
Step 3: Create a GitHub Repository&lt;br&gt;
Step 4: Clone Your Repository Locally &lt;br&gt;
Step 5: Set Up Deployment Center in Azure App Service&lt;br&gt;
Step 6: Test Your CI/CD Pipeline&lt;/p&gt;
&lt;h3&gt;
  
  
  Introduction &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Deploying a web app with a CI/CD(continuous integration and continuous deployment) pipeline on Azure App. With Azure App Service and Source control like GitHub, Bitbucket or Azure Repos, setting up a CI/CD pipeline for your web app becomes a streamlined process. It ensures that your application is automatically integrated and deployed, reducing the manual intervention required and minimizing the risk of errors. In this article, we will walk you through the steps to deploy a web app with a CI/CD pipeline on Azure App Service using GitHub. By following the steps outlined, you can efficiently deploy and manage your web applications in Azure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before you begin, ensure you have the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An &lt;strong&gt;Azure account&lt;/strong&gt; (sign up &lt;a href="https://azure.microsoft.com/en-us/free/" rel="noopener noreferrer"&gt;here&lt;/a&gt; for free if you do not have one).&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;GitHub account&lt;/strong&gt; for source code management. Sign up &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt; if you do not have one. &lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Visual studio code&lt;/strong&gt; installed. Click &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;here&lt;/a&gt; to download and install if you do not have one installed.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;back to content&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Create an Azure App Service plan &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Creating an App Service plan on Azure is a key step before deploying your web app. The App Service plan defines the region, pricing tier, and scale of your web app. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Log in to the Azure Portal
Go to &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;https://portal.azure.com&lt;/a&gt; and sign in with your Azure account.&lt;/li&gt;
&lt;li&gt;In the search box, type &lt;strong&gt;App Service plan&lt;/strong&gt; and select it from the dropdown list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furzfuou9osa26yjiaphe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furzfuou9osa26yjiaphe.jpg" alt="Image description" width="525" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Click on &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Configure the App Service Plan Basics and Pricing Tier&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subscription&lt;/strong&gt;: Select the Azure subscription you want to use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Group&lt;/strong&gt;: Choose an existing resource group or create a new one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Name&lt;/strong&gt;: Enter a name for your App Service plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operating System&lt;/strong&gt;: Choose between Windows or Linux based on your app requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt;: Select the region where you want your App Service plan to be hosted. Choose a region close to your users to reduce latency.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;explore pricing plans&lt;/strong&gt; to explore and select the pricing tier.&lt;/li&gt;
&lt;li&gt;Choose a pricing tier that fits your needs. The tiers range from free and shared plans for development/testing to standard and premium plans for production workloads.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;select&lt;/strong&gt; once you have selected the appropriate pricing tier. Here we are using free tier.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Review and Create&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbs0da7d99gf8vbuvig8u.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbs0da7d99gf8vbuvig8u.jpg" alt="Image description" width="765" height="644"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Create&lt;/strong&gt; after validation has passed to create the App Service plan .&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;back to content&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Create an Azure App Services &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Creating an Azure App Service is pretty straightforward. Here are the detailed steps to create an App Service on Azure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the search box, type &lt;strong&gt;App Services&lt;/strong&gt; and select it from the dropdown list.&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Create&lt;/strong&gt; choose the type of app services of your choice. Here we will be working with web App.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Configure the Web App Basics&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subscription&lt;/strong&gt;: Select the Azure subscription you want to use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Group&lt;/strong&gt;: Choose an existing resource group or create a new one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Name&lt;/strong&gt;: Enter a unique name for your web App (this will be part of your app's URL).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publish&lt;/strong&gt;: Select the type of code you want to deploy (Code, Container or static web app).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime stack&lt;/strong&gt;: Choose the runtime stack (e.g. php, .NET, Node.js, Python, Java) for your application. Here we will be using php 8.3.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operating System&lt;/strong&gt;: Choose between Windows or Linux based on your app requirements. Here we will be using Linus.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt;: Select the region where you want your App Service to be hosted. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing Plan&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Click to select app service plan. Choose the app service plan created earlier or Create new to create a new App Service plan if you do not have an existing one.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Review + create&lt;/strong&gt;: to review your configuration settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ai05tk8h7rwc6j1xw34.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ai05tk8h7rwc6j1xw34.jpg" alt="Image description" width="733" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cgidt2d9phrq71j4dlk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cgidt2d9phrq71j4dlk.jpg" alt="Image description" width="743" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Create&lt;/strong&gt; after validation is passed to create the App Service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;back to content&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3: &lt;strong&gt;Create a GitHub Repository&lt;/strong&gt;  &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sign In to GitHub&lt;/strong&gt; with your GitHub account credentials.&lt;/li&gt;
&lt;li&gt;click on the &lt;strong&gt;+&lt;/strong&gt; icon in the upper right corner of the page.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;New repository&lt;/strong&gt; from the dropdown menu.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Enter a name for your repository. The name should be unique to your account and should be descriptive of your project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description (optional)&lt;/strong&gt;: Add a short description of your project.&lt;/li&gt;
&lt;li&gt;Choose whether you want your repository to be &lt;strong&gt;Public&lt;/strong&gt; (anyone can see it) or &lt;strong&gt;Private&lt;/strong&gt; (only you and people you explicitly share it with can see it).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Initialize this repository with&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;README&lt;/strong&gt;: Check this box to add a README file, which is a great place to describe your project and provide instructions for others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.gitignore&lt;/strong&gt;: Check this box to add a .gitignore file. Select a template that matches the type of project you're working on (e.g. PHP, Node, Python, Java).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt;: Check this box to add a license file. Select a license that you want to apply to your project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Click on the &lt;strong&gt;Create repository&lt;/strong&gt; button once you have configured the repository settings.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;em&gt;back to content&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 4: &lt;strong&gt;Clone Your Repository Locally&lt;/strong&gt;  &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;To work on your project locally, you need to clone the repository to your local machine. Here, we will use git bash on visual studio code terminal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to your newly created repository on GitHub.
-Click the &lt;strong&gt;Code&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;Copy the URL provided.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Open a new terminal on visual studio code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0xxkkbtvsa1e03qr89r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0xxkkbtvsa1e03qr89r.jpg" alt="Image description" width="685" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Switch to git bash&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Make a directory where you want to clone your repository.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir &amp;lt;repository_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Replace &lt;code&gt;&amp;lt;repository_name&amp;gt;&lt;/code&gt; with the name of your repository.  Example is &lt;code&gt;mkdir Project&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Navigate to the directory.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd &amp;lt;repository_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Replace &lt;code&gt;&amp;lt;repository_name&amp;gt;&lt;/code&gt; with the name of your repository.  Example is &lt;code&gt;cd Project&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run the following command:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   git clone &amp;lt;repository_url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Replace &lt;code&gt;&amp;lt;repository_url&amp;gt;&lt;/code&gt; with the URL you copied from GitHub. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbvh1afkdc08bfxmm5jq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbvh1afkdc08bfxmm5jq.jpg" alt="Image description" width="459" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Add Files, Make Commit and Push&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Create a file:
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   touch &amp;lt;filename&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Replace &lt;code&gt;&amp;lt;filename&amp;gt;&lt;/code&gt; with the name of your file. &lt;br&gt;
Example is &lt;code&gt;touch Index.php&lt;/code&gt;. &lt;br&gt;
A file Index.php will be created, open it, then copy and paste a simple web app below and save.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Index&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;?php
        echo "Hello, this is my first web app!";
    ?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcu8g3mzj2wq4d8fcrt83.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcu8g3mzj2wq4d8fcrt83.jpg" alt="Image description" width="773" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add files to your repository.
&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;Commit the changes:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   git commit -m "Adding Index.php"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro4vkt28m7lrp8xnk423.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro4vkt28m7lrp8xnk423.jpg" alt="Image description" width="450" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Push your code (file) to the GitHub repository: Use the command below.
&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 origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;main&lt;/code&gt; with the default branch name if it's different.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flsg4ilzljp4iytde548w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flsg4ilzljp4iytde548w.jpg" alt="Image description" width="378" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File push confirmation.
Go to GitHub to confirm the file pushed is resident .&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;em&gt;back to content&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: &lt;strong&gt;Set Up Deployment Center in Azure App Service&lt;/strong&gt;  &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your &lt;strong&gt;Web App&lt;/strong&gt; in the Azure Portal. &lt;/li&gt;
&lt;li&gt;In the left pane, select &lt;strong&gt;Deployment&lt;/strong&gt; and then &lt;strong&gt;Deployment Center&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose &lt;strong&gt;GitHub&lt;/strong&gt; as the source control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Authorize&lt;/strong&gt; to give Azure access your GitHub account if you have not already. Sign in to your GitHub and authorize.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2p05jpa3k8v6jcjuwaen.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2p05jpa3k8v6jcjuwaen.jpg" alt="Image description" width="556" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your &lt;strong&gt;GitHub username&lt;/strong&gt; for organisation.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;repository&lt;/strong&gt; and &lt;strong&gt;branch&lt;/strong&gt;you want to deploy from.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxeyfjr89u6pa7qqycfa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxeyfjr89u6pa7qqycfa.jpg" alt="Image description" width="580" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Under &lt;strong&gt;Authentication setting&lt;/strong&gt; Choose &lt;strong&gt;authentication type&lt;/strong&gt; and &lt;strong&gt;subscription&lt;/strong&gt;. If you choose user assigned identity, you need to create the user identity assignment. you can click create new to get it created automatically for you. If you choose basic, you need to go to configure setting to enable SCM basic authentication. Here we will use basic authentication. Ensure to save your changes after configuring the setting. &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workflow Configuration: CI/CD pipeline&lt;/strong&gt;. A YAML file will be auto-generated for the GitHub Actions workflow. This is the CI/CD pipeline. Click preview file to preview the work flow and edit if need be. Here is an example of what the workflow might look like:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy PHP app to Azure Web App - My-webapp123

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.3'

      - name: Check if composer.json exists
        id: check_files
        uses: andstor/file-existence-action@v1
        with:
          files: 'composer.json'

      - name: Run composer install if composer.json exists
        if: steps.check_files.outputs.files_exists == 'true'
        run: composer validate --no-check-publish &amp;amp;&amp;amp; composer install --prefer-dist --no-progress

      - name: Zip artifact for deployment
        run: zip release.zip ./* -r

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v4
        with:
          name: php-app
          path: release.zip

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v4
        with:
          name: php-app

      - name: Unzip artifact for deployment
        run: unzip release.zip

      - name: 'Deploy to Azure Web App'
        uses: azure/webapps-deploy@v3
        id: deploy-to-webapp
        with:
          app-name: 'My-webapp123'
          slot-name: 'production'
          package: .
          publish-profile: ${{ secrets.AzureAppService_PublishProfile_bf7ee8a6c0d4486fae6bfd525ceda399
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;click save to move to logs. Wait for deployment to complete in GitHub action.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;em&gt;back to content&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: &lt;strong&gt;Test Your CI/CD Pipeline&lt;/strong&gt; &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to your web app overview page and copy the default domain url.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;paste in a browser new window and see your web app content.
Here is the content of my webapp.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt; Make a &lt;strong&gt;commit&lt;/strong&gt; to your repository in GitHub or push new changes from your local repository.&lt;/li&gt;
&lt;li&gt; Go to the &lt;strong&gt;Actions&lt;/strong&gt; tab in your GitHub repository to monitor the workflow.&lt;/li&gt;
&lt;li&gt; Ensure that the workflow runs successfully and your app is deployed to Azure.&lt;/li&gt;
&lt;li&gt;Refresh the default domain url page to see the changes. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is the content of my webapp update.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;back to content&lt;/em&gt;&lt;/p&gt;

</description>
      <category>azureappservice</category>
      <category>appservice</category>
      <category>cicd</category>
      <category>gitlab</category>
    </item>
    <item>
      <title>A Quick Start with Git and GitHub</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Sat, 03 Aug 2024 03:59:02 +0000</pubDate>
      <link>https://dev.to/celestina_odili/a-quick-start-to-git-and-github-587d</link>
      <guid>https://dev.to/celestina_odili/a-quick-start-to-git-and-github-587d</guid>
      <description>&lt;p&gt;Check out &lt;a href="https://github.com/celestinaodili/MyRepo" rel="noopener noreferrer"&gt;My Repository&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Table of Contents
&lt;/h4&gt;

&lt;p&gt;Introduction&lt;br&gt;
Setting Up Git&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;li&gt;Configuration&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Initializing a Repository&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basic Git Commands&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checking Status&lt;/li&gt;
&lt;li&gt;Adding Files&lt;/li&gt;
&lt;li&gt;Making Commits&lt;/li&gt;
&lt;li&gt;Pushing Changes&lt;/li&gt;
&lt;li&gt;Pulling Changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Introduction
&lt;/h4&gt;

&lt;p&gt;Git and GitHub have become essential tools for developers worldwide. Git is a version control system that tracks changes in source code, while GitHub is a web-based platform for hosting Git repositories. Mastering Git and GitHub is crucial for modern software development and devops. This guide will walk you through setting up Git, creating a repository and using the basic commands like commits, pushing and pulling.&lt;/p&gt;
&lt;h3&gt;
  
  
  Setting Up Git and GitHub
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Installation &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;To get started with Git, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;download&lt;/a&gt; to download and install.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Choose your local computer OS. For windows, choose the appropriate for your configuration and install.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/signup" rel="noopener noreferrer"&gt;Sign up&lt;/a&gt; on GitHub to register a GitHub account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;visual Studio code&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Configuration &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;After installing Git, initialize your git in git bash and configure your username and email. These details will be associated with your commits.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On your local computer task bar search for git bash and run as administrator.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Configure Username. Run the command below personalizing the username and press enter.&lt;br&gt;
&lt;code&gt;git config --global user.name "Your GitHub username"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure email. Run the command below personalizing the email and press enter.&lt;br&gt;
&lt;code&gt;git config --global user.email "your github email address"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fnxqfttngp83ks1w8da.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fnxqfttngp83ks1w8da.jpg" alt="Image description" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Creating a Repository
&lt;/h3&gt;

&lt;p&gt;A Git repository is where your project files and their revision history are stored.&lt;/p&gt;
&lt;h4&gt;
  
  
  Create a Directory
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Run this command to create a new directory called gitlab3.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir gitlab3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Run the command below to change to the new directory created.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd gitlab3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  Initializing a Repository
&lt;/h4&gt;

&lt;p&gt;To initialize a new repository, run the following command&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;This will initialize empty git repository in the local directory.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Move to Visual studio code (optional)
&lt;/h4&gt;

&lt;p&gt;You can complete all task with git bash but if you do enjoy the GUI feel of visual studio code while working on the terminal, you can navigate to visual studio code by running the following command.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;This will launch a new visual studio code interface. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1llw3q5ha8elos8jqjvi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1llw3q5ha8elos8jqjvi.jpg" alt="Image description" width="" height=""&gt;&lt;/a&gt;&lt;br&gt;
On the Visual studio code,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a simple html file called Index.html &lt;/li&gt;
&lt;li&gt;go to the menu, click on the 3 dot select terminal and then new terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbwdlqn615efxbqmmztkw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbwdlqn615efxbqmmztkw.jpg" alt="Image description" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Basic Git Commands &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Now that you have your code ready, you can carry out any other command. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the terminal, run git commands like check git status, git add, git commit, git push and git pull.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Checking Status
&lt;/h4&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;h4&gt;
  
  
  Adding Files
&lt;/h4&gt;

&lt;p&gt;Add your file to the staging area.&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 filename
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;replace _filename _ with the name of the file you want to add. For example&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;ul&gt;
&lt;li&gt;To add all changes:
&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;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F773tzttr8dtyfd18lqd6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F773tzttr8dtyfd18lqd6.jpg" alt="Image description" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Making Commits
&lt;/h4&gt;

&lt;p&gt;Commits are snapshots of your project at a given point in time. Once your changes are staged with the add command, commit them with a message:&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 "Your commit message"

example:
git commit -m "initial commit"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;h3&gt;
  
  
  Pushing Changes
&lt;/h3&gt;

&lt;p&gt;Pushing command sends your commits to a remote repository, like GitHub. Hence, the remote repository has to exist first before a push command can take effect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating Remote Repository in GitHub
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;go github.com and sign in&lt;/li&gt;
&lt;li&gt;click on + to add new repository&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Give it a name.&lt;/li&gt;
&lt;li&gt;choose public or private&lt;/li&gt;
&lt;li&gt;Add README file for your documentation&lt;/li&gt;
&lt;li&gt;Click create repository &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;go to code and copy the repository url.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;connect the repository to the local machine. use the following command.
&lt;code&gt;git remote add origin repo url&lt;/code&gt;
replace &lt;em&gt;repo url&lt;/em&gt; with your git hub repository url&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For Example,&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/nnenne/mywebapp.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;Push changes
&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 origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;sign in to GitHub when prompted and authorize git ecosystem. This is only applicable when you are pushing for the first time.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go back to GitHub and notice the file is now in GitHub.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;add a readme file on visual studio code. Afterwards do git add, git commit and git push.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;h3&gt;
  
  
  Pulling Changes
&lt;/h3&gt;

&lt;p&gt;Pulling fetches and merges changes from the remote repository to your local repository. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edit any of the file on GitHub, commit changes&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;On your terminal, type the pull command below and notice the changes now reflect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git pull origin master&lt;/code&gt;&lt;/p&gt;

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

&lt;p&gt;Check out &lt;a href="https://github.com/celestinaodili/MyRepo" rel="noopener noreferrer"&gt;My Repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>devops</category>
      <category>developer</category>
    </item>
    <item>
      <title>Practical Use of TCO and Pricing Calculator for Cost Management</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Sat, 27 Jul 2024 05:03:44 +0000</pubDate>
      <link>https://dev.to/celestina_odili/practical-use-of-tco-and-pricing-calculator-for-cost-management-2j9a</link>
      <guid>https://dev.to/celestina_odili/practical-use-of-tco-and-pricing-calculator-for-cost-management-2j9a</guid>
      <description>&lt;h3&gt;
  
  
  Maximizing Cost Management with TCO and Pricing Calculators
&lt;/h3&gt;

&lt;p&gt;Total Cost of Ownership (TCO) and Pricing Calculator are effective tools for management of business cost in today's world. They ensure profitability and sustainable growth in businesses. These tools when used accurately help business owners to make more informed financial decisions by providing a comprehensive understanding of all costs associated with acquiring, operating, and maintaining an asset. In this article, we will be using Azure TCO and Azure pricing calculator.&lt;/p&gt;

&lt;h3&gt;
  
  
  Azure TCO at a Glance
&lt;/h3&gt;

&lt;p&gt;Azure TCO (Total Cost of Ownership) is a calculation tool provided by Microsoft to help businesses estimate the cost savings and benefits of migrating their workloads to the Azure cloud platform. The TCO calculator allows users to compare the costs of running on-premises infrastructure to using Azure services.&lt;/p&gt;

&lt;p&gt;The Azure TCO calculator is a valuable tool for businesses considering migrating to the cloud. It provides a detailed comparison of costs, helping them understand the financial implications and potential savings of moving their workloads to Azure. By leveraging Azure TCO, companies can make informed decisions and optimize their IT infrastructure for cost-effectiveness and scalability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Components of Azure TCO
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Capital Expenses (CapEx):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial costs of hardware, software licenses, and infrastructure setup for on-premises deployments.&lt;/li&gt;
&lt;li&gt;For Azure, these costs are significantly reduced or eliminated since infrastructure is managed by Microsoft.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Operational Expenses (OpEx):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ongoing costs such as power, cooling, maintenance, IT staff, and data center operations for on-premises infrastructure.&lt;/li&gt;
&lt;li&gt;Azure operational costs include subscription fees for various services, which are typically more predictable and scalable.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cost Savings:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduction in hardware and software costs.&lt;/li&gt;
&lt;li&gt;Lower maintenance and operational costs.&lt;/li&gt;
&lt;li&gt;Improved efficiency and productivity.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Azure Pricing Calculator at a Glance
&lt;/h3&gt;

&lt;p&gt;The Azure Pricing Calculator is an online cost estimation tool provided by Microsoft to allow users estimate the cost of using Azure services. Users can configure and price a wide range of Azure services tailoring it to their specific needs and providing a detailed cost breakdown. This tool is essential for planning and budgeting cloud deployments, invaluable for anyone planning to use Azure services. It provides a clear and detailed estimate of costs, helping users make informed decisions and optimize their cloud spending.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of the Azure Pricing Calculator
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Service Selection:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users can choose from a wide variety of Azure services, including Virtual Machines, Storage, Databases, Networking, and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configuration Options:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each service can be customized based on different parameters such as instance type, storage capacity, region, and usage duration.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cost Estimation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The calculator provides a detailed cost estimate based on the selected services and configurations, including monthly and annual costs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Export and Share Estimates:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users can export their estimates to Excel or share a direct link to the configured estimate.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Regular Updates:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The calculator is regularly updated with the latest Azure pricing and new services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Practical Implementation of TCO and Pricing Calculator
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Use Case Scenario:
&lt;/h4&gt;

&lt;p&gt;Jumia, an e-commerce company struggles with traffic spikes during promo periods like black Fridays. Their on-premises infrastructure cannot handle the load, resulting in slow performance and sometimes crashes.   Now the company is considering migrating to cloud but first they want to ensure that they make the most cost-effective decision. Provide practical cost overview with Azure Total Cost of Ownership (TCO) and pricing calculator for the company.&lt;/p&gt;

&lt;p&gt;To create a practical Azure Total Cost of Ownership (TCO) and pricing calculator, you can follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identify the Requirements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define the workloads and services you plan to use in Azure.&lt;/li&gt;
&lt;li&gt;Estimate the size and scale of your deployment (e.g., number of VMs, storage requirements, database sizes, network bandwidth, etc.).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use Azure Pricing Calculator:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the &lt;a href="https://azure.microsoft.com/en-us/pricing/calculator/" rel="noopener noreferrer"&gt;Azure Pricing Calculator&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Add the services you plan to use (e.g., Virtual Machines, Storage, Databases, Networking).&lt;/li&gt;
&lt;li&gt;Configure each service according to your requirements (e.g., VM sizes, storage types, database tiers).&lt;/li&gt;
&lt;li&gt;The calculator will provide an estimate of the monthly cost.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Use Azure TCO Calculator to Compare the Cost of Running your Infrastructure on-premises vs. in Azure:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the &lt;a href="https://azure.microsoft.com/en-us/pricing/tco/calculator/" rel="noopener noreferrer"&gt;Azure TCO Calculator&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Define your workloads.&lt;/li&gt;
&lt;li&gt;Adjust assumptions.&lt;/li&gt;
&lt;li&gt;View report. The calculator will provide an estimate of cost savings over a period of time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Steps to Use the Azure TCO Calculator
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;- Go to the &lt;a href="https://azure.microsoft.com/en-us/pricing/tco/calculator/" rel="noopener noreferrer"&gt;Azure TCO Calculator&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Define Your Workload:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Enter details about your current on-premises setup, including the number of servers, storage, databases and network components. This information will be used to understand your current TCO and recommended services in Azure&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click add server workload to define the details of your current on-premises server infrastructure.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

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

&lt;p&gt;Change workload1 to any name of your choice and select the other details as applicable to current on-premises server.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; - click add databases 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Enter the details of your on-premises database infrastructure in the Source section. In the Destination section, select the Azure service you would like to use &lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; - click add storage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;After adding storage, select the storage type and enter the remaining details.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; - Under network  enter outbound bandwidth and destination region. 
 - Click next
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Adjust assumptions:&lt;/strong&gt;
The assumptions in the TCO model are industry averages accredited by Nucleus Research. Adjust these assumption to reflect your situation and click next.&lt;/li&gt;
&lt;/ol&gt;

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

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

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fky64vo4a5h0y4x0qjmm6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fky64vo4a5h0y4x0qjmm6.jpg" alt="Image description" width="600" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;View report to Calculate and Compare Costs:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The TCO calculator will estimate the costs of running your workloads on-premises versus on Azure.&lt;/li&gt;
&lt;li&gt;It will provide a detailed comparison, highlighting potential cost savings and benefits.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Example Scenario Using Azure TCO Calculator
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Current On-Premises Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10 physical servers (average cost $5,000 each)&lt;/li&gt;
&lt;li&gt;5 TB storage (RAID 10 configuration, cost $2,000)&lt;/li&gt;
&lt;li&gt;3 SQL Servers (licensing cost $3,000 each)&lt;/li&gt;
&lt;li&gt;Operational costs (power, cooling, maintenance): $2,000/month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Objective:&lt;/strong&gt; Migrate to Azure to reduce costs and improve scalability.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Define Current Infrastructure:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Servers: 10 (cost $50,000)&lt;/li&gt;
&lt;li&gt;Storage: 5 TB (cost $2,000)&lt;/li&gt;
&lt;li&gt;SQL Servers: 3 (licensing cost $9,000)&lt;/li&gt;
&lt;li&gt;Operational Costs: $2,000/month&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Specify Azure Deployment:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Virtual Machines: 10 VMs (D4s v3 instances)&lt;/li&gt;
&lt;li&gt;Storage: 5 TB (Standard HDD)&lt;/li&gt;
&lt;li&gt;SQL Databases: 3 SQL Database Managed Instances (General Purpose tier)&lt;/li&gt;
&lt;li&gt;Networking: VPN Gateway and Load Balancer&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;Calculate and Compare Costs:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;On-Premises Costs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial Setup: $50,000 (servers) + $2,000 (storage) + $9,000 (SQL Server licenses) = $61,000&lt;/li&gt;
&lt;li&gt;Monthly Operational Costs: $2,000&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Azure Costs (Estimated Monthly):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Virtual Machines: ~$4,000/month&lt;/li&gt;
&lt;li&gt;Storage: ~$100/month&lt;/li&gt;
&lt;li&gt;SQL Databases: ~$1,500/month&lt;/li&gt;
&lt;li&gt;Networking: ~$250/month&lt;/li&gt;
&lt;li&gt;Backup and Monitoring: ~$150/month&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Total Estimated Monthly Cost:&lt;/strong&gt; ~$6,000&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;TCO Comparison:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;On-Premises Total Monthly Cost:&lt;/strong&gt; ~$4,500 (considering 3-year amortization of initial setup costs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Azure Total Monthly Cost:&lt;/strong&gt; ~$6,000&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Steps to Use the Azure Pricing Calculator
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Access the Tool:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Visit &lt;a href="https://azure.microsoft.com/en-us/pricing/calculator/" rel="noopener noreferrer"&gt;Azure Pricing Calculator&lt;/a&gt; page.&lt;/li&gt;
&lt;li&gt;click login. This will automatically log you in with your email address.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;To get started, select product, choose example scenarios or open a saved estimate. we will be selecting services according to our identified needs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fub73yadzl6x7noge6db4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fub73yadzl6x7noge6db4.jpg" alt="Image description" width="677" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Select Services:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Browse for the Azure services you plan to use. Here, we will be using Virtual Machine Scale Sets, App services, Azure SQL Database, Storage account, virtual network and load balance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;click add to estimate&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configure Services:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Customize each selected service based on your requirements. For instance:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Virtual Machine scale Sets:&lt;/strong&gt; Choose the region, operating system, type,tier, category, instance series and instance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; - **SQL Database:** Select the tier, compute size, and storage capacity.
 - **Storage:** Determine the type of storage and the amount of data.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Review Cost Estimates:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The calculator will display a detailed cost breakdown for each service, including compute costs, storage costs, and any additional features or options.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Total Estimated Monthly Cost:&lt;/strong&gt; $551.79&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Adjust and Optimize:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Modify the configurations to see how changes impact the overall cost. This helps in optimizing the setup for cost efficiency.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Export and Share:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once satisfied with the estimate, you can export it to Excel for further analysis or share a direct link with colleagues or stakeholders.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

</description>
    </item>
    <item>
      <title>Internet of Things: Creating a Practical Solution using Azure IoT Hub.</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Fri, 19 Jul 2024 04:46:32 +0000</pubDate>
      <link>https://dev.to/celestina_odili/internet-of-things-creating-a-practical-solution-using-azure-iot-hub-417c</link>
      <guid>https://dev.to/celestina_odili/internet-of-things-creating-a-practical-solution-using-azure-iot-hub-417c</guid>
      <description>&lt;p&gt;contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
Introduction &lt;br&gt;
Vital Components of IoT&lt;br&gt;
Area of Applications of IoT&lt;br&gt;
Creating a practical IoT solution using Azure IoT Hub&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Step 1: Set Up Azure IoT Hub&lt;/li&gt;
&lt;li&gt; Step 2: Register a Device&lt;/li&gt;
&lt;li&gt; Step 3: Configure IoT Hub to Route Data to Blob Storage&lt;/li&gt;
&lt;li&gt; Step 4: Verify Data in Blob Storage&lt;/li&gt;
&lt;li&gt; Step 5 Simulate a Device to Send Telemetry Data (Practical IoT Solution)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Introduction &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;The Internet of Things (IoT) refers to the network of physical objects such as devices, vehicles, appliances and lots more embedded with sensors, software, and other technologies that enable them to connect and exchange data with other devices and systems over the internet. IoT represents a significant technological advancement, enabling a more connected and automated world, driving innovation across various sectors.&lt;/p&gt;

&lt;h4&gt;
  
  
  Vital Components of IoT &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Devices/Sensors&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;These are the physical objects that collect data from their environments. Examples include temperature sensors, smart thermostats, health monitors, and industrial machines.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Connectivity&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The collected data needs to be transmitted to a central location for processing. This is done through various communication protocols such as Wi-Fi, Bluetooth, Zigbee, cellular networks, or other specialized IoT protocols.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Processing&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the data is collected and transmitted, it is processed and analyzed. This can happen at the edge (near the data source) or in the cloud, depending on the application.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;User Interface&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The processed data needs to be accessible to users. This can be through dashboards, mobile apps, or other interfaces that allow users to monitor and control their IoT devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Area of Applications of IoT &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Smart Home&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Devices like smart thermostats, smart lighting, and security systems make homes more efficient and secure.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Wearables&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fitness trackers and smartwatches monitor health metrics like heart rate, sleep patterns, and physical activity.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Industrial IoT (IIoT)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used in manufacturing and supply chain management to monitor equipment health, optimize operations, and increase efficiency.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Smart Cities&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implementing IoT in city infrastructure to improve energy efficiency, reduce traffic congestion, and enhance public services.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Healthcare&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remote patient monitoring, smart medical devices, and telehealth services improve patient care and reduce healthcare costs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Creating a practical IoT solution using Azure IoT Hub &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;To achieve this, follow steps below: &lt;/p&gt;

&lt;p&gt;back to top&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Set Up Azure IoT Hub &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Create an IoT Hub&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sign in to the &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;Azure Portal&lt;/a&gt;. If you do not have one, you can create a free account &lt;a href="https://azure.microsoft.com/en-us/free" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;On the search bar, Search and select &lt;code&gt;IoT Hub&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;click create&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Configure the IoT Hub:&lt;/li&gt;
&lt;li&gt;Subscription: Select your subscription.&lt;/li&gt;
&lt;li&gt;Resource group: Create a new resource group or use an existing one.&lt;/li&gt;
&lt;li&gt;Region: Select a region close to you.&lt;/li&gt;
&lt;li&gt;IoT Hub Name: Provide a unique name for your IoT Hub.&lt;/li&gt;
&lt;li&gt;Tier: select free&lt;/li&gt;
&lt;li&gt;Click Review + create, then Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs75pjr6u07g637z6bfcs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs75pjr6u07g637z6bfcs.jpg" alt="Image description" width="726" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the deployment is complete, go to the resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;back to top&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Register a Device &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;on the left pane of the IoT Hub created, navigation to device Management&lt;/li&gt;
&lt;li&gt;select device&lt;/li&gt;
&lt;li&gt;Click + Add Device.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;on the create a device menu, Provide a unique device ID.&lt;/li&gt;
&lt;li&gt;Click Save.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu2qa0cbo3pkykwurlbf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feu2qa0cbo3pkykwurlbf.jpg" alt="Image description" width="552" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note Down Device Connection String&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the device you just created.&lt;/li&gt;
&lt;li&gt;click on the copy icon beside the Primary Connection String, copy it. paste it somewhere, you will need it for your device simulation.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;back to top&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Configure IoT Hub to Route Data to Blob Storage &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Create message routing to Azure Blob Storage&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your IoT Hub.&lt;/li&gt;
&lt;li&gt;Go to Hub Settings &lt;/li&gt;
&lt;li&gt;Select Message routing.&lt;/li&gt;
&lt;li&gt;under route tab, Click + Add &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt; For end point type, Select storage&lt;/li&gt;
&lt;li&gt;Give the endpoint a name.&lt;/li&gt;
&lt;li&gt;click Pick a container&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Create a storage account and in turn create a container or select an existing one if you have one created already. For this project, I will be creating a new storage account here.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click +Storage account&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Provide a name for the storage account.&lt;/li&gt;
&lt;li&gt;click ok&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1m3xnj56lxoflgdzeh1h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1m3xnj56lxoflgdzeh1h.jpg" alt="Image description" width="402" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the storage is deployed, click on it to open and add a container.&lt;/li&gt;
&lt;li&gt;click + container&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxehda948oy2dekxlmdai.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxehda948oy2dekxlmdai.jpg" alt="Image description" width="436" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide a name for the container. Ensure to follow the naming convention.&lt;/li&gt;
&lt;li&gt;click create&lt;/li&gt;
&lt;li&gt;Click on the container you created.&lt;/li&gt;
&lt;li&gt;Click select to return to create a route page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsz58lr9al61yt247ebrj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsz58lr9al61yt247ebrj.jpg" alt="Image description" width="333" height="651"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Under encoding, pick JSON&lt;/li&gt;
&lt;li&gt;click create and next&lt;/li&gt;
&lt;li&gt;provide a route name. Ensure enable this route is checked.&lt;/li&gt;
&lt;li&gt;For data source, Choose Device telemetry message.&lt;/li&gt;
&lt;li&gt;Click test, test route. Ensure you see "the message match the query" and then continue.&lt;/li&gt;
&lt;li&gt;click create +skip enrichments or create +add enrichments. 
Here, we will create +add enrichments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge18lljv1dumpudg0lid.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge18lljv1dumpudg0lid.jpg" alt="Image description" width="621" height="647"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add a name and value if you choose create + add enrichments&lt;/li&gt;
&lt;li&gt;Click add&lt;/li&gt;
&lt;li&gt;Ensure you can see the created route
back to top
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Create File Upload&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to your IoT Hub.&lt;/li&gt;
&lt;li&gt;Select Hub setting.&lt;/li&gt;
&lt;li&gt;Click File upload.&lt;/li&gt;
&lt;li&gt;Click select Azure storage container &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Select container and storage account you created.&lt;/li&gt;
&lt;li&gt;save&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upload Image to IoT plug and play&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Go to your smartphone app store, download and install IOT plug and play app and then open the app.&lt;/li&gt;
&lt;li&gt;click on scan QR code then click connect manually,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp7amldytjiayja75g03r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp7amldytjiayja75g03r.jpg" alt="Image description" width="540" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;paste the primary connection string copied earlier on the Iot hub device connection string path.&lt;/li&gt;
&lt;li&gt;click connect.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqvk70zk0ltquh70b2ge.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqvk70zk0ltquh70b2ge.jpg" alt="Image description" width="367" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;choose upload image. &lt;/li&gt;
&lt;li&gt;Upload any image of your choice &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fznjs2fegjq06jz8uahsp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fznjs2fegjq06jz8uahsp.jpg" alt="Image description" width="405" height="900"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;back to top&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Verify Data in Blob Storage &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Once your connection to the IoT plug and play is successful, a folder with the telemetry data will be created for you. Another folder with the uploaded file will be created too after file upload is created. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Your created storage container in Azure,
click the folders to view the image uploaded.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;To view telemetry data,&lt;/li&gt;
&lt;li&gt;click the folder containing the name of your IoT. Here it is amazing-world-iot. Open it until you see a file with .json extension.
&lt;/li&gt;
&lt;li&gt;click on the three dot on right of the file to download the .json file or generate SAS link&lt;/li&gt;
&lt;li&gt;Open it on visual studio code. The telemetry data should look like this when opened.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;back to top&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Simulate a Device to Send Telemetry Data (Practical IoT Solution) &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;*&lt;em&gt;Communication from device to cloud *&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the IoT hub, go to device&lt;/li&gt;
&lt;li&gt;Select your device to open it&lt;/li&gt;
&lt;li&gt;click on device twin and notice editable in line 37&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhuy6ldbmogl8uftcsh7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxhuy6ldbmogl8uftcsh7.jpg" alt="Image description" width="714" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;go to IoT plug and play app&lt;/li&gt;
&lt;li&gt;click on property and go to editable&lt;/li&gt;
&lt;li&gt;edit it with any message and send&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbedfb7ifanbab8mi6opj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbedfb7ifanbab8mi6opj.jpg" alt="Image description" width="540" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;go back to device twin and notice the message sent appeared in line 37.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Using Direct Method&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the IoT hub, go to device&lt;/li&gt;
&lt;li&gt;Select your device to open it&lt;/li&gt;
&lt;li&gt;Click on direct method &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxk1iys1ahraala9vgwtu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxk1iys1ahraala9vgwtu.jpg" alt="Image description" width="690" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provide a method name for example lightOn&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under payload, write a JSON command. for this guided we will use existing command, copy and paste any of the commands below&lt;br&gt;
for light on,&lt;br&gt;
{&lt;br&gt;
"duration ": 3,&lt;br&gt;
"deley": null&lt;br&gt;
  "pulse": 2&lt;br&gt;
}&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click invoke method&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;back to top&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloudcomputing</category>
      <category>computerscience</category>
      <category>wordpress</category>
    </item>
    <item>
      <title>Create Azure Virtual Network (VNet)</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Sat, 13 Jul 2024 04:18:05 +0000</pubDate>
      <link>https://dev.to/celestina_odili/create-an-azure-virtual-network-vnet-48fp</link>
      <guid>https://dev.to/celestina_odili/create-an-azure-virtual-network-vnet-48fp</guid>
      <description>&lt;p&gt;Contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
Overview of Azure Virtual Network&lt;br&gt;
Steps to Creating Azure Virtual Network&lt;br&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Overview of Azure Virtual Network &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Azure Virtual Network (VNet) is a versatile and powerful service that provides flexibility, security, and scalability required to support a wide range of applications and workloads in the cloud. It enable users to securely connect Azure resources to each other, to the internet, and to on-premises networks. It serves as the backbone for networking within the Azure ecosystem, offering a range of features and capabilities that facilitate secure and efficient communication.&lt;/p&gt;

&lt;h5&gt;
  
  
  Key Features and Capabilities
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Isolation and Segmentation: VNets provide logical isolation within the Azure environment, allowing users to create multiple isolated networks. Each VNet is isolated from other VNets, providing a secure environment for deploying resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Subnets: A subnet or subnetwork is a network inside a network. VNets can be divided into subnets to enable better organization and management of resources. Subnets can also be used to apply network security policies and route network traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Network Security Groups (NSGs): NSGs allow users to control inbound and outbound traffic to and from network interfaces, VMs, and subnets. They act as virtual firewalls, providing granular control over network traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Azure Firewall: A managed, cloud-based network security service that protects Azure Virtual Network resources. It allows users to define, enforce, and log application and network connectivity policies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;VPN Gateway: This service enables secure cross-premises connectivity between the VNet and on-premises infrastructure through a secure VPN tunnel. It supports both site-to-site and point-to-site configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ExpressRoute: Provides a dedicated, private connection between Azure datacenters and on-premises infrastructure or colocation environments. It offers higher security, reliability, and faster speeds compared to typical internet connections.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Peering: VNet peering allows VNets to communicate with each other directly through the Azure backbone network, enabling low-latency, high-bandwidth connectivity between VNets in the same region or across regions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Load Balancing: Azure Load Balancer and Application Gateway provide scalable and high-availability network services. They distribute incoming network traffic across multiple servers to ensure reliability and optimal performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DNS Services: Azure DNS hosts domain names and resolves DNS queries using Microsoft’s global network of name servers, ensuring high performance and availability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DDoS Protection: Azure DDoS Protection safeguards applications by scrubbing traffic at the Azure network edge before it can affect service availability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Use Cases
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Hybrid Cloud Deployments: Securely extend on-premises networks to Azure, enabling a hybrid cloud environment that leverages the benefits of both on-premises and cloud resources.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-Tier Applications: Deploy multi-tier applications with isolated network environments for different tiers (e.g., web, application, and database tiers) to enhance security and manageability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Disaster Recovery: Utilize VNets for disaster recovery setups, ensuring that critical applications and data can be quickly recovered in the event of a failure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Big Data and Analytics: Deploy big data and analytics solutions, connecting various services and resources securely within the VNet for efficient data processing and analysis.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;back to top&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps to Creating Azure Virtual Network &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This guide will create an Azure virtual network with four subnets using the address space 192.148.30.0/26 for company XYZ. The  four chosen subnets represent four departments in the company which are ICT, Sales, Audit, and Account. Below is a step-by-step guide:&lt;/p&gt;

&lt;h5&gt;
  
  
  Step 1: Log in to the Azure Portal
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On your web browser, type portal.azure.com to go to the Azure Portal login page.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Log in with your Azure account credentials or click &lt;a href="https://azure.microsoft.com/en-us/free" rel="noopener noreferrer"&gt;here&lt;/a&gt; to create a free one if you do not have an account yet.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Step 2: Create a Virtual Network
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;On the Azure Portal search bar, type Virtual Network and select Virtual Network from the list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fgko2eqserexigdzdtrri.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fgko2eqserexigdzdtrri.jpg" alt="Image description" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftk4ao8yotpfvir2ltmx7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftk4ao8yotpfvir2ltmx7.jpg" alt="Image description" width="716" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Step 3: Configure the Virtual Network Basics
&lt;/h5&gt;

&lt;p&gt;In the Basics tab, fill in the following details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Subscription: Select the subscription to use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Resource group: Create a new resource group or select an existing one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Name: Enter a name for the VNet (example: XYZ-VNet).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Region: Select the region where you want to create the VNet.&lt;br&gt;
&lt;a href="https://media.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%2Fng1m3qbd0txvy9nn559f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fng1m3qbd0txvy9nn559f.jpg" alt="Image description" width="716" height="389"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Step 4: Configure the Address Space
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Click on the IP Addresses tab.&lt;/li&gt;
&lt;li&gt;Under IPv4 address space, &lt;/li&gt;
&lt;li&gt;Enter 192.148.30.0 in the Address space field and select /26 on the CIDR field then delete the default subnet created and add your subnets.
&lt;img src="https://media.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%2Ft4x6clqe63fusajobjs0.jpg" alt="Image description" width="753" height="492"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Step 5: Add Subnets
&lt;/h5&gt;

&lt;p&gt;add four subnets for ICT, Sale, Audit and Account department&lt;br&gt;
&lt;strong&gt;For ICT Subnet:&lt;/strong&gt;&lt;br&gt;
Under the Subnets section of the address space, &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;click on + Add subnet. 
On the Add subnet screen,&lt;/li&gt;
&lt;li&gt;enter or select values for the subnet settings. Enter the following details for example:&lt;/li&gt;
&lt;li&gt;Subnet name: ICT&lt;/li&gt;
&lt;li&gt;Starting address: 192.148.30.0&lt;/li&gt;
&lt;li&gt;size: select /28&lt;/li&gt;
&lt;li&gt;Click Add 
&lt;img src="https://media.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%2Fkv93w0z55b16psnfk4fn.jpg" alt="Image description" width="800" height="618"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;For sales Subnet:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click on + Add subnet&lt;/li&gt;
&lt;li&gt;Subnet name: sales&lt;/li&gt;
&lt;li&gt;starting address: 192.148.30.16&lt;/li&gt;
&lt;li&gt;Size:/28&lt;/li&gt;
&lt;li&gt;Click Add 
Do the same for the other two subnets with the following details:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Audit Subnet:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subnet name: Audit&lt;/li&gt;
&lt;li&gt;starting address: 192.148.30.32&lt;/li&gt;
&lt;li&gt;Size:/28&lt;/li&gt;
&lt;li&gt;Click Add &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For account Subnet:&lt;/strong&gt;&lt;br&gt;
Subnet name: Account&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;starting address : 192.148.30.48&lt;/li&gt;
&lt;li&gt;Size:/28&lt;/li&gt;
&lt;li&gt;Click Add &lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Step 6: Review and Create the VNet
&lt;/h5&gt;

&lt;p&gt;Once all subnets are added, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click on the Review + create button at the bottom of the page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fkbvfy6r4s0dtq2w5m7kb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkbvfy6r4s0dtq2w5m7kb.jpg" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review the settings to ensure everything is configured correctly.&lt;/li&gt;
&lt;li&gt;Click Create to deploy the Virtual Network.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Step 7: Verify the Deployment
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;After the deployment is complete, click Go to resource to see the overview.
&lt;img src="https://media.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%2F65mjqvg2nl5zbnifxv1k.jpg" alt="Image description" width="722" height="467"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ensure that the subnets are created with the correct address ranges.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On the left pane, click setting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;select subnets&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.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%2F8d563w6s8la87h1uyx9j.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F8d563w6s8la87h1uyx9j.jpg" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By the way, if this is for practice only, endeavor to delete the virtual network after creating to avoid unnecessary costs.&lt;/em&gt;&lt;br&gt;
back to top&lt;/p&gt;

</description>
      <category>virtualnet</category>
      <category>azure</category>
      <category>tutorial</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Hosting Static Website on Azure Blob Storage</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Fri, 05 Jul 2024 11:37:21 +0000</pubDate>
      <link>https://dev.to/celestina_odili/hosting-static-website-on-azure-blob-storage-3aa6</link>
      <guid>https://dev.to/celestina_odili/hosting-static-website-on-azure-blob-storage-3aa6</guid>
      <description>&lt;p&gt;Table of Contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
Introduction&lt;br&gt;
Requirements&lt;br&gt;
Steps on Hosting a Static website on Azure Blob Storage &lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A static website is a website whose content is constant. They present the same content to all users and do not use databases or server-side processing. The contents are not generated using server-side scripting languages like PHP, Java, Ruby, Pithon rather they are built using front end languages like HTML, CSS and JavaScript.&lt;/p&gt;

&lt;p&gt;Azure blob storage is a type of storage in Azure that store massive amount of unstructured data. Blobs are organized in a container. A container can store unlimited number of them. A container is located in a storage account.&lt;/p&gt;

&lt;p&gt;What does it mean to host a website? To host a website also known as web hosting is to make a website available and accessible on the internet. Hosting your content in Azure storage enables you to use serverless architecture. it is a good option when you do not require a server to render your content.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to Contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Requirements &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This guide uses Visual studio code to deploy already built static website to Azure blob storage. Hence, you need to do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download and install Visual studio code.&lt;/li&gt;
&lt;li&gt;install extensions like Azure Account and Azure Storage on the Visual Studio Code. The extensions will be used by visual studio code to deploy your static website to Azure Storage.&lt;/li&gt;
&lt;li&gt;Already created static website saved in a folder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;back to Contents&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps on Hosting a Static website on Azure Blob Storage &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;h5&gt;
  
  
  Sign in
&lt;/h5&gt;

&lt;p&gt;sign in to portal.azure.com if you already have azure subscription otherwise click &lt;a href="https://azure.microsoft.com/en-us/free/?WT.mc_id=A261C142F"&gt;here&lt;/a&gt; to create a free one.&lt;/p&gt;

&lt;h5&gt;
  
  
  Create a Storage Account
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Search and select storage accounts on the search bar, then click create.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;On the basic tab, fill the following
On the Project details, select the subscription in which to create the new storage account. Create a new or select an existing resource group to organize and manage your storage account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the Instance details, give the storage account a name. Select region closest to your user. For performance, select standard or premium performance. Standard is recommended for most general-purpose v2 account scenarios while premium is recommended for scenarios that require low latency. Finally, select the redundancy type. &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Click review and create then create.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h5&gt;
  
  
  Configure Static Website for Hosting
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Once deployment is complete, click go to resource to move to your storage account overview page.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxx2x66585ywwz4rnpbdp.jpg" alt="Image description" width="720" height="342"&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the left pane, click on data management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select static website blade and click enable. &lt;br&gt;
Enabling static websites on the blob service allows you to host static content. &lt;br&gt;
In the Index document name field, provide the name for your default index page, for instance index.html. This is the page that displays when a user navigates to the root of your static website.&lt;br&gt;
In the Error document path field, specify the path to a default error page of your site. This is the default error page that is displayed when a user attempts to navigate to a page that does not exist in your static website. For example, "C:\Users\HP\Documents\mywebsite\404.html" or just simply 404.html.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click Save. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Azure portal now displays your &lt;em&gt;static website endpoint&lt;/em&gt;. Also, a container named &lt;em&gt;$web&lt;/em&gt; is automatically created for you. The $web container will contain the files for your static website. &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;On the left pane, go to data storage. Click on  container to view the $web container that was created.  Notice it has no content. &lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Host a Static Website
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Launch Visual studio code to open your static website folder.  Click on the explorer and select open folder. Locate and open the folder for your site.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfa7tuxvmuq7ejst89p7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfa7tuxvmuq7ejst89p7.jpg" alt="Image description" width="720" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right-click under the folder in the explorer panel and select Deploy to Static Website via Azure Storage to deploy your website. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fygykt7uet5nwf4f3ofyb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fygykt7uet5nwf4f3ofyb.jpg" alt="Image description" width="720" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will be prompted to sign in. Click sign in to Azure and select the right subscription containing the storage account for which you enabled static website hosting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6elz8nagwc7cye2ha0bj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6elz8nagwc7cye2ha0bj.jpg" alt="Image description" width="720" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will be redirected to a browser. When you have successfully login, go back to visual studio code and select the storage account when prompted.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg2fhkfwoap3gbu7dw13.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbg2fhkfwoap3gbu7dw13.jpg" alt="Image description" width="720" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio Code will upload your files to your web endpoint and show the success on the status bar. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqnjz7mhshw9thyqitoa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqnjz7mhshw9thyqitoa.jpg" alt="Image description" width="720" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80i47v1chcb4b9z0b64l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80i47v1chcb4b9z0b64l.jpg" alt="Image description" width="462" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch the website to view it in Azure. On Azure portal, copy your static website endpoint displayed when you enabled static website. Paste on a browser and launch.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;em&gt;Congratulations!!! You've successfully hosted a static website on Azure blob storage.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to contents&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>azure</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Azure Virtual Machine Scale Set: How to Create and Connect using SSH</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Fri, 28 Jun 2024 07:01:36 +0000</pubDate>
      <link>https://dev.to/celestina_odili/azure-virtual-machine-scale-set-how-to-create-and-connect-using-ssh-hn9</link>
      <guid>https://dev.to/celestina_odili/azure-virtual-machine-scale-set-how-to-create-and-connect-using-ssh-hn9</guid>
      <description>&lt;p&gt;Table of Contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
Overview of Virtual Machine Scale Set (VMSS)&lt;br&gt;
Creating Virtual Machine Scale Set&lt;br&gt;
Connecting Virtual Machine Scale Set&lt;/p&gt;

&lt;h2&gt;
  
  
  Overview of Virtual Machine Scale Set (VMSS) &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Azure Virtual Machine Scale Set is a service that makes it possible to create and manage a group of load balanced VMs. Tt can be configured manually or automatically to scale out (increase the number of VMs) or scale in (decrease the number of VMs) based on demand or a defined schedule. The benefits of scale sets include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to create and manage multiple VMs. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scale sets allow all VM instances to be created from the same base OS image and configuration. This makes it easy to create and manage many VMs without having to do extra configuration or network management.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides high availability and application resiliency.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Running multiple VM instances and distribution across availability zones or fault domains makes the application highly available and fault tolerant. There will be little or no down time if any of the VMs have problem. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Allows your application to automatically scale as resource demand changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the auto scaling configuration, scale set can scale your application in or out in response to demand or schedule. This help to reduce cost for business owner and improve performance of the application leading to users' satisfaction. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Works at large-scale&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With scale set, you can have up to 600 VM instances for managed images and 1000 for standard marketplace images and custom images through the Azure Compute Gallery.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to top&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Virtual Machine Scale Set &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Step 1: Sign to portal.azure.com
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Step 2: Create Virtual Machine Scale Set
&lt;/h4&gt;

&lt;p&gt;Search for virtual machine scale set in the search box and select virtual machine scale sets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fugwvw42atd3f3v3pu3ua.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fugwvw42atd3f3v3pu3ua.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Create on the virtual machine scale sets page. This will open the create a virtual machine scale set basic page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fq56lby8rquql8r8f7ma8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fq56lby8rquql8r8f7ma8.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3: Fill the basic tab parameters.
&lt;/h4&gt;

&lt;p&gt;Fill the information in the following category&lt;br&gt;
Project detail&lt;br&gt;
Scale set detail&lt;br&gt;
Orchestration&lt;br&gt;
Instance details&lt;br&gt;
Administration account &lt;/p&gt;

&lt;p&gt;Under Project details, select the subscription and resource group. Create a new resource group if you do not have existing one. Under scale set details, type a name for the scale set and select a region of your choice. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F6oj0jelzr8ceuykbahw8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F6oj0jelzr8ceuykbahw8.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under Orchestration, select the Uniform Orchestration mode, set security type to standard and set scaling mode to autoscaling and click configure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Frydty90uirrj2jzjjg7v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Frydty90uirrj2jzjjg7v.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the scaling configuration page that opens, click add a scaling condition.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fpqpn91egt7ohpel0mg5r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fpqpn91egt7ohpel0mg5r.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give it a name, fill the conditions as needed and click save.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F0qwgb4cz083mzikz7cf2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F0qwgb4cz083mzikz7cf2.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fiq5ztg98wofrn741r7kv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fiq5ztg98wofrn741r7kv.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F1tazfzch34gpeq9no0nu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F1tazfzch34gpeq9no0nu.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the condition added is selected on scaling configuration page and scale-in policy is set then save.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fvilnt2jl64leoayqlq3g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fvilnt2jl64leoayqlq3g.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under instance details, Select a marketplace image for Image. An example is Ubuntu Server 22.04 LTS-x64 Gen2. choose a size for the VM instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fdsb4uxv5hpbnalcwwbt2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fdsb4uxv5hpbnalcwwbt2.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under administrator account, select ssh public key, input your desired username and key pair name. You can use the default if you wish.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F9e4izy7tm4q1lb4m2n7o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F9e4izy7tm4q1lb4m2n7o.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 4: Network Configuration
&lt;/h4&gt;

&lt;p&gt;Go to networking tab, configure network interface and create a load balancer. A virtual network and network interface is created by default. Under network interface, click the edit icon to edit the network interface created for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fxokoyplvkcj246mpwem4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fxokoyplvkcj246mpwem4.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Set the public inbound ports to allow selected ports and select ssh 22 and HTTP 80. Enable public IP address and click ok.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fot7qdu74v4m49u9cw7ys.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fot7qdu74v4m49u9cw7ys.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ensure you check the editted network interface. Select Azure load balancer and click create a load balancer&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fe3unr6ferhtyuh0ree0m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fe3unr6ferhtyuh0ree0m.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type a name for the load balancer. Take note of the start value for frontend port range under inbound NAT rules then click create.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fykdpcbt7vq0083pkmker.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fykdpcbt7vq0083pkmker.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5: Review and Create
&lt;/h4&gt;

&lt;p&gt;Click review and create, review the details and click create. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F1ooreqjg2d2yab8r17zv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F1ooreqjg2d2yab8r17zv.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After it has been validated, a Generate new key pair window will open. Select Download Private key and create resource. This will download the .pem key pair to your local computer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F0zd7zvwvbrkbkbtbaovx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F0zd7zvwvbrkbkbtbaovx.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When deployment is completed, clicking Go to resource will take you straight to the VMSS. You can carry out additional configurations if need be and view the instances that are running.&lt;br&gt;
&lt;a href="https://media.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%2Faxwlj0oha9u97b15vgaf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Faxwlj0oha9u97b15vgaf.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to top&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting Virtual Machine Scale Set &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;On your local computer, open ssh connection through the in-built app for writing command. Find out the right one for your computer OS and open it. Use command prompt or PowerShell for window. For MacOS, the default app is called terminal. In this guide, command prompt is used.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Open Command Prompt
&lt;/h4&gt;

&lt;p&gt;Search for CMD and run as an administrator. Running as an administrator will help to prevent restriction.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Type SSH Command
&lt;/h4&gt;

&lt;p&gt;At the prompt, type&lt;br&gt;
ssh space -i space path to the private key (.pem file downloaded) space username@public IP address and press enter.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;example,&lt;br&gt;
ssh -i "C:\Users\HP\Documents\Tina files\Project_key.pem" &lt;a href="mailto:azureuser@52.232.125.22"&gt;azureuser@52.232.125.22&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you experience idle time out add -p and 50000 (frontend port starting value) to the command. When connecting for the first time, you will be prompted to check and verify the host keys fingerprint. type yes to continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fkivjhuyx27gkjem2ikh1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fkivjhuyx27gkjem2ikh1.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When your connection is successful, you will get a welcome message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fxpwazf4cfvdutgfx9qjt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fxpwazf4cfvdutgfx9qjt.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;back to top&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>azure</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Deploy and Connect to Linux Virtual Machine in Azure: Step by Step Guide</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Fri, 21 Jun 2024 03:50:43 +0000</pubDate>
      <link>https://dev.to/celestina_odili/how-to-deploy-and-connect-to-linus-virtual-machine-in-azure-step-by-step-guide-1p22</link>
      <guid>https://dev.to/celestina_odili/how-to-deploy-and-connect-to-linus-virtual-machine-in-azure-step-by-step-guide-1p22</guid>
      <description>&lt;p&gt;Table of Contents &lt;a&gt;&lt;/a&gt;&lt;br&gt;
Create (Deploy) Linus Virtual Machine&lt;br&gt;
Connect to Linus Virtual Machine&lt;br&gt;
Testing&lt;/p&gt;

&lt;p&gt;This guide shows how to deploy and connect a Linux virtual machine running Ubuntu Server 22.04 LTS-x64 Gen2 using SSH public key through Azure portal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create (Deploy) Linux Virtual Machine &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Step 1: Sign in to Azure portal&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Go to portal.azure.com and sign in. If you do not have a subscription yet, click &lt;a href="https://azure.microsoft.com/en-us/free/open-source" rel="noopener noreferrer"&gt;here&lt;/a&gt; for sign up for free.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Step 2: Create a Linux Virtual Machine (VM)&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;a) Create a virtual machine&lt;/strong&gt;&lt;br&gt;
On the Home menu, click create a resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fdzep97elja6dtoojxvii.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fdzep97elja6dtoojxvii.jpg" alt="Image description" width="768" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Locate virtual machine and click create. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fvydkzbaeeab8cmp0sw2b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fvydkzbaeeab8cmp0sw2b.jpg" alt="Image description" width="768" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will open the basic tab of the create a virtual machine page. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b) Configure the VM Basics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Under the project details&lt;/em&gt;, select the subscription, create new resource group with any name of your choice or use an existing one. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F1g340chx7vzgdqy5pt0t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F1g340chx7vzgdqy5pt0t.jpg" alt="Image description" width="763" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Under Instance details&lt;/em&gt;, type a name for the VM and select a region. For the availability option, choose No infrastructure redundancy required. select standard for security type. For the image, select Ubuntu Server 22.04 LTS-x64 Gen2. leave the size at default.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F5qdjb7onnop4kq11rtb0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F5qdjb7onnop4kq11rtb0.jpg" alt="Image description" width="768" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Under Administrator account&lt;/em&gt;, select SSH public key then enter a username. You can use the default username if you wish. Select Generate new key pair for the SSH public key source and RSA SSH format for the SSH key type. Give a name for the key pair name. The default name is usually your VM name_key. You can change it if desired.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fnlrg499dhfgrs61n4eu6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fnlrg499dhfgrs61n4eu6.jpg" alt="Image description" width="763" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Under Inbound port rules&lt;/em&gt;, select Allow selected ports and check HTTP (80) and SSH (22) from the drop down.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fodvgkb99xekvhrx83zhv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fodvgkb99xekvhrx83zhv.jpg" alt="Image description" width="763" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c) Configure other Tabs (optional)&lt;/strong&gt;&lt;br&gt;
Having completed the basics tab then click review + create at the bottom of the page to provision the virtual machine or review each tab for full customization. Here, we will leave the other tabs at default setting.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Step 3: Review and Create (Deploy)&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Click review and create at the bottom of the page. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fo0tnpi0wksb0ysuavasb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fo0tnpi0wksb0ysuavasb.jpg" alt="Image description" width="763" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review the details and click create.&lt;br&gt;
&lt;a href="https://media.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%2Fjofdsz004s639g7q1wzy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fjofdsz004s639g7q1wzy.jpg" alt="Image description" width="768" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After validation is passed, a Generate new key pair window will open. Select Download Private key and create resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F87uhlop7zao88pe5i6p8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F87uhlop7zao88pe5i6p8.jpg" alt="Image description" width="763" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your key file will be downloaded with a .pem extension.&lt;/p&gt;

&lt;p&gt;**Note: **The location of the key file downloaded should be noted for easy connection through the terminal. You will need to reference the path when connecting to your VM.&lt;/p&gt;

&lt;p&gt;back to top &lt;/p&gt;

&lt;h2&gt;
  
  
  Connect to Linux Virtual Machine &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Step 1:  Get Public IP Address.&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;When deployment is completed, click Go to resource.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fe6zo857tskq0n3gbt306.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fe6zo857tskq0n3gbt306.jpg" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the new Linus VM, copy the public IP address&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fivfu9vgpo3pv9tk157q1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fivfu9vgpo3pv9tk157q1.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Step 2: Connect to the Virtual Machine&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Create an SSH connection with the virtual machine. To achieve this, you will run a few commands in terminals. For a Mac or Linus user, use Bash prompt and set read-only permission on the .pem file. For windows user, use PowerShell or CMD and run as administrator.&lt;/p&gt;

&lt;p&gt;When prompted on your opened terminal, open SSH connection by typing&lt;br&gt;
&lt;strong&gt;&lt;em&gt;ssh -i the path to the private key (the.pem file downloaded) username@public IP address&lt;br&gt;
for example,&lt;br&gt;
ssh -i "C:\Users\HP\Documents\Tina files\Linus-VM_key.pem" &lt;a href="mailto:azureuser@52.232.125.22"&gt;azureuser@52.232.125.22&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzk7mltcc943et9d0gven.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzk7mltcc943et9d0gven.jpg" alt="Image description" width="502" height="331"&gt;&lt;/a&gt;&lt;br&gt;
If your connection is successful, you will get a welcome message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fx9ymm2kranoeysqvlilt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fx9ymm2kranoeysqvlilt.jpg" alt="Image description" width="508" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Testing &lt;a&gt;&lt;/a&gt;&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;To test if your VM is working, run a simple command to update the VM and install a web application (NGINX). &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a) Update the VM&lt;/strong&gt;&lt;br&gt;
Type sudo apt-get -y update &lt;br&gt;
and press enter &lt;br&gt;
&lt;a href="https://media.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%2Fxtaaxigw3pnk1mphckqv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fxtaaxigw3pnk1mphckqv.jpg" alt="Image description" width="507" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b) Install NGINX&lt;/strong&gt;&lt;br&gt;
Type sudo apt-get -y install nginx&lt;br&gt;
and press enter&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fv8z5beiz30c8m5ig8m59.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fv8z5beiz30c8m5ig8m59.jpg" alt="Image description" width="515" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c) View in Browser&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open a browser and enter the public IP address of the VM created. The web application will open.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fpxbt4n0ywiu8sb0wh8gv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fpxbt4n0ywiu8sb0wh8gv.jpg" alt="Image description" width="768" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;back to top &lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>azure</category>
      <category>linux</category>
      <category>virtualmachine</category>
    </item>
    <item>
      <title>Step by Step Guide to Deploying and Connecting Window Virtual Machine in Azure</title>
      <dc:creator>Celestina Odili</dc:creator>
      <pubDate>Fri, 14 Jun 2024 15:56:00 +0000</pubDate>
      <link>https://dev.to/celestina_odili/step-by-step-guide-to-deploying-and-connecting-to-azure-virtual-machine-c7d</link>
      <guid>https://dev.to/celestina_odili/step-by-step-guide-to-deploying-and-connecting-to-azure-virtual-machine-c7d</guid>
      <description>&lt;h2&gt;
  
  
  Contents &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;What is Azure Virtual Machine&lt;br&gt;
How to Deploy Virtual Machines in Azure&lt;br&gt;
Step 1: Sign in to Azure Portal&lt;br&gt;
Step 2: Create a Virtual machine&lt;br&gt;
Step 3: Configure the Virtual Machine Basics&lt;br&gt;
Step 4: Configure other Settings(optional)&lt;br&gt;
Step 5: Review and Create (Deploy) the Virtual Machine&lt;/p&gt;

&lt;p&gt;How to connect to a Virtual Machine in Azure&lt;br&gt;
Step 1: Sign in to Azure Portal&lt;br&gt;
Step 2: Locate the virtual machine&lt;br&gt;
Step 3: Step 3: Connect using the port selected while creating the VM&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Azure Virtual Machine &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Back to contents&lt;br&gt;
Azure virtual machines (VMs) are simulations of physical computer. They enable you to create dedicated compute resources in minutes which can be used just like a physical desktop or server machine. Azure VMs can be defined and deployed in several ways: The Azure portal, a script (using the Azure CLI or Azure PowerShell) or through an Azure Resource Manager template. This guide is through azure portals&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Deploy Virtual Machines in Azure &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Back to contents&lt;/p&gt;

&lt;h4&gt;
  
  
  Step1: Sign in to Azure Portal
&lt;/h4&gt;

&lt;p&gt;Go to portal.azure.com and sign in with your email and password if you have already signed up.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jsfhd1rqc0scyxjm3mc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jsfhd1rqc0scyxjm3mc.jpg" alt="Image description" width="264" height="264"&gt;&lt;/a&gt;.  Otherwise sign up first to create an account and subscription. Click &lt;a href="https://dev.to/celestina_odili/core-architectural-components-of-azure-3mk7"&gt;here&lt;/a&gt; for details on subscription and sign up.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Create a Virtual machine
&lt;/h4&gt;

&lt;p&gt;Once sign in is successful, you can create any needed resource. On the Home page Click on "Create a resource", select Virtual Machine and click create. Other ways to achieve this include clicking on virtual machine directly or use the search bar to search for virtual machine.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Step 3: Configure the Virtual Machine Basics.
&lt;/h4&gt;

&lt;p&gt;For the basics tab, fill the basic setting of your VM. Select subscription, resource group or create a new one if you wish.&lt;br&gt;
Follow the suggested naming convention and give and appropriate name to your VM. Here I choose ABC-Project as my VM name. select the region and availability options. Set the security type and&lt;br&gt;
Choose the Image (The type and version of the OS) you want. Azure allow only Linus or windows OS.  Pick a VM size based on the required CPU, memory, and storage. Set up administrator account by Creating username and password. This password will be used to connect to the VM after deployment. So, it is important you note the password. Configure networking, allow public inbound ports selection to Choose a suitable port option. Choosing SSH will enable connection to your VM through IP address while choosing RDP (Remote desktop Protocol) will enable connection through remote desktop connection. For my ABC-Project, I choose RDP3389. Finally, you need to Confirm licensing before you can proceed.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Step 4: Configure other Settings(optional)
&lt;/h4&gt;

&lt;p&gt;You can customize the other tabs or apply their default settings. In ABC-Project, the default setting was used. The tabs include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Disks&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;li&gt;Management&lt;/li&gt;
&lt;li&gt;Monitoring&lt;/li&gt;
&lt;li&gt;Advanced&lt;/li&gt;
&lt;li&gt;Tags &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Step 5: Review and Create (Deploy) the Virtual Machine
&lt;/h4&gt;

&lt;p&gt;On the review and create tab, review all your configuration and click on create to deploy the VM. If all the parameters are properly set, it will be verified, and the deployment process will start. Wait for the deployment process to complete and your VM is created. However, if it did not pass the verification, you will be notified about the error.  Always read your notification because it usually points to the error and suggest the fix.&lt;/p&gt;

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

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

&lt;h3&gt;
  
  
  How to Connect to a virtual machine &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Back to contents&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Sign in to Azure Portal.
&lt;/h4&gt;

&lt;p&gt;If you did not logout after deploying the VM, skip this step&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Locate the virtual machine.
&lt;/h4&gt;

&lt;p&gt;To locate the VM, search for virtual machine from the search bar and click on it. Then Click the VM name (ABC-Project) to open it and click on connect. Alternatively, you could click "go to resource" from the notification bar especially if you just deployed the VM. This will take you straight to the exact resource it is pointing to.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Step 3: Connect using the port selected while creating the VM.
&lt;/h4&gt;

&lt;p&gt;For RDP port, download the RPD file, open the file, Check &lt;br&gt;
"don’t ask me again for connection to this computer" in the pop menu and click connect. Input the password created during the set-up stage of the VM deployment when prompted for password. When alerted for certification verification, do not verify. Click yes to continue and wait for it to connect. Once connected, your VM is ready for use. you can Work on the VM like you would on a physical PC. Meanwhile basic Pc configuration should be done when connecting to the VM for the first time. &lt;/p&gt;

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

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

</description>
      <category>cloudpractitioner</category>
      <category>azure</category>
      <category>microsoft</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
