<?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: Olaolu' Afolami</title>
    <description>The latest articles on DEV Community by Olaolu' Afolami (@laoluafolami).</description>
    <link>https://dev.to/laoluafolami</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%2F1563926%2Fd943871a-0aaa-4106-b89a-e988760a0834.png</url>
      <title>DEV Community: Olaolu' Afolami</title>
      <link>https://dev.to/laoluafolami</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laoluafolami"/>
    <language>en</language>
    <item>
      <title>🛒 Optimizing Electro E-Commerce with AWS Load Balancer Solutions</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Tue, 09 Dec 2025 09:41:12 +0000</pubDate>
      <link>https://dev.to/laoluafolami/load-balanced-electro-e-commerce-website-on-aws-using-aws-load-balancer-2hde</link>
      <guid>https://dev.to/laoluafolami/load-balanced-electro-e-commerce-website-on-aws-using-aws-load-balancer-2hde</guid>
      <description>&lt;h2&gt;
  
  
  🛒 Load-Balanced Electro E-Commerce Website on AWS (Using AWS Load Balancer)
&lt;/h2&gt;

&lt;p&gt;This project demonstrates how to deploy a highly available e-commerce website using &lt;strong&gt;Amazon Web Services (AWS)&lt;/strong&gt;. It uses &lt;strong&gt;two EC2 instances&lt;/strong&gt;, an &lt;strong&gt;Application Load Balancer (ALB)&lt;/strong&gt;, and a custom &lt;strong&gt;VPC with public subnets&lt;/strong&gt; — configured exactly as shown in the architecture diagram.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ &lt;strong&gt;Perfect for beginners learning AWS infrastructure, load balancing, and high availability!&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🎯 Project Goal
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Deploy a Electro e-commerce website on two EC2 instances.&lt;/li&gt;
&lt;li&gt;Distribute incoming web traffic across both instances using an Application Load Balancer.&lt;/li&gt;
&lt;li&gt;Build a secure and scalable network architecture using VPC, subnets, and an Internet Gateway.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🏗️ Architecture Overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VPC&lt;/strong&gt;: &lt;code&gt;12.0.0.0/16&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public Subnets&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;12.0.1.0/24&lt;/code&gt; → Hosts &lt;strong&gt;EC2 Instance 1&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;12.0.3.0/24&lt;/code&gt; → Hosts &lt;strong&gt;EC2 Instance 2&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;EC2 Instances&lt;/strong&gt;: 2 web servers (running Apache)&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Load Balancer&lt;/strong&gt;: Application Load Balancer (HTTP on port 80)&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Target Group&lt;/strong&gt;: Routes traffic to both healthy EC2 instances&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Internet Gateway&lt;/strong&gt;: Enables public internet access&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F240a9d32-2622-4b69-b7b1-2f7715f641d6" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F240a9d32-2622-4b69-b7b1-2f7715f641d6" width="705" height="417"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Step-by-Step Implementation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. *&lt;em&gt;Create a Custom VPC *&lt;/em&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;VPC Dashboard → Your VPCs → Create VPC&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;ecommerce-vpc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;IPv4 CIDR: &lt;code&gt;12.0.0.0/16&lt;/code&gt; &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F2a5087b0-7e5d-4638-b149-a0a20c90c9ea" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F2a5087b0-7e5d-4638-b149-a0a20c90c9ea" width="1000" height="712"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  2. *&lt;em&gt;Create Two Public Subnets *&lt;/em&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subnet 1&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;public-subnet-1a&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;VPC: &lt;code&gt;ecommerce-vpc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Availability Zone: e.g., &lt;code&gt;us-east-2a&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;CIDR: &lt;code&gt;12.0.1.0/24&lt;/code&gt; ← &lt;strong&gt;Matches diagram&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Subnet 2&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;public-subnet-2b&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;AZ: &lt;code&gt;us-east-2b&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;CIDR: &lt;code&gt;12.0.3.0/24&lt;/code&gt; &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F901dbcb2-7b67-4320-89b5-b649e54b7a11" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F901dbcb2-7b67-4320-89b5-b649e54b7a11" width="1100" height="756"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F14c93074-8352-4522-bdd9-b572bec8978f" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F14c93074-8352-4522-bdd9-b572bec8978f" width="1096" height="675"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  3. &lt;strong&gt;Create and Attach an Internet Gateway&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Internet Gateways → Create&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;ecommerce-igw&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;After creation, &lt;strong&gt;attach&lt;/strong&gt; it to &lt;code&gt;ecommerce-vpc&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F0484d711-6a18-4a36-8c30-6fb79da35186" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F0484d711-6a18-4a36-8c30-6fb79da35186" width="954" height="312"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F10dbadf7-4ccd-4b90-ab8d-80ff5b60a7dc" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F10dbadf7-4ccd-4b90-ab8d-80ff5b60a7dc" width="1103" height="232"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  4. &lt;strong&gt;Configure Route Table for Public Access&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Route Tables&lt;/strong&gt;, select the main route table for your VPC&lt;/li&gt;
&lt;li&gt;Edit &lt;strong&gt;Routes&lt;/strong&gt; → Add:

&lt;ul&gt;
&lt;li&gt;Destination: &lt;code&gt;0.0.0.0/0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Target: &lt;code&gt;ecommerce-igw&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Associate&lt;/strong&gt; this route table with both public subnets (&lt;code&gt;12.0.1.0/24&lt;/code&gt; and &lt;code&gt;12.0.3.0/24&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Ff522accc-9c3d-4314-8b2b-a5016644edbd" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Ff522accc-9c3d-4314-8b2b-a5016644edbd" width="1095" height="357"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fa67d11a3-0b90-4f17-81a3-6d73200d8077" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fa67d11a3-0b90-4f17-81a3-6d73200d8077" width="1168" height="336"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Ffdf4aa92-6ba7-4b35-8942-d8bddf75ac8d" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Ffdf4aa92-6ba7-4b35-8942-d8bddf75ac8d" width="1119" height="239"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F185a9dbb-85d2-4ee8-93cb-08516dceca8f" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F185a9dbb-85d2-4ee8-93cb-08516dceca8f" width="1108" height="291"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  5. &lt;strong&gt;Launch Two Ubuntu EC2 Instances&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Launch &lt;strong&gt;two&lt;/strong&gt; EC2 instances using the &lt;strong&gt;Ubuntu 22.04 LTS AMI&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AMI&lt;/strong&gt;: &lt;code&gt;Ubuntu 22.04 LTS (x86_64)&lt;/code&gt; — search in AMI catalog&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instance Type&lt;/strong&gt;: &lt;code&gt;t2.micro&lt;/code&gt; (Free Tier eligible)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network&lt;/strong&gt;: &lt;code&gt;ecommerce-vpc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subnet&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Instance 1 → &lt;code&gt;public-subnet-1a&lt;/code&gt; (&lt;code&gt;12.0.1.0/24&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Instance 2 → &lt;code&gt;public-subnet-2b&lt;/code&gt; (&lt;code&gt;12.0.3.0/24&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-assign public IP&lt;/strong&gt;: ✅ Enable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Group&lt;/strong&gt;: Create new &lt;code&gt;web-sg&lt;/code&gt; with:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inbound Rules&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;HTTP (Port 80) → Source: &lt;code&gt;0.0.0.0/0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;SSH (Port 22) → Your IP (or &lt;code&gt;0.0.0.0/0&lt;/code&gt; for testing)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Paste the script below in the data field of the EC2 instance under "Additional settings" to install Apache2 and update the server:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  #!/bin/bash
# Update system packages
apt-get update -y

# Install Apache2
apt-get install -y apache2

# Ensure Apache starts on boot
systemctl enable apache2
systemctl start apache2

# Ensure /var/www/html exists and has correct ownership
mkdir -p /var/www/html
chmod -R 755 /var/www/html

# Optional: Create a simple test page
echo "&amp;lt;h1&amp;gt;Apache2 is running on Server1&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;Instance provisioned automatically on Server1.&amp;lt;/p&amp;gt;" &amp;gt; /var/www/html/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F564253e4-7b1d-4974-89fc-4cd265113d88" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F564253e4-7b1d-4974-89fc-4cd265113d88" width="917" height="746"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F25756a6e-7cbc-44c0-b473-6f966111ab85" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F25756a6e-7cbc-44c0-b473-6f966111ab85" width="901" height="618"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fc5ae11ad-877f-471a-b6e3-880e2a6ffacf" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fc5ae11ad-877f-471a-b6e3-880e2a6ffacf" width="898" height="671"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fd903c5d5-9970-4b9a-a287-d4c4c6e83ca9" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fd903c5d5-9970-4b9a-a287-d4c4c6e83ca9" width="1398" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F169b0ad3-2c1b-4308-8837-e6c93a5a26b8" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F169b0ad3-2c1b-4308-8837-e6c93a5a26b8" width="1687" height="194"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Repeat step 5 to create the second EC2 instance
&lt;/h2&gt;
&lt;h2&gt;
  
  
  - In the echo section of the script, change the h1 tag to Apache2 is running on Server2 to distinguish the servers.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;6. Create an Application Load Balancer (ALB)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to EC2 → Load Balancers → Create Load Balancer&lt;/li&gt;
&lt;li&gt;Choose Application Load Balancer&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;ecommerce-alb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Scheme: &lt;code&gt;Internet-facing&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;IP address type: &lt;code&gt;IPv4&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Listeners: &lt;code&gt;HTTP (Port 80)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Availability Zones: Select your VPC and both &lt;code&gt;public subnets (12.0.1.0/24 and 12.0.3.0/24)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Security Group: Create or select &lt;code&gt;alb-sg&lt;/code&gt; allowing HTTP from &lt;code&gt;0.0.0.0/0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Target Group:&lt;/li&gt;
&lt;li&gt;Create new: &lt;code&gt;ecommerce-tg&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Protocol: &lt;code&gt;HTTP&lt;/code&gt;, &lt;code&gt;Port: 80&lt;/code&gt;, Health check path: &lt;code&gt;/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Register both Ubuntu EC2 instances by selecting them and click &lt;code&gt;Include as pending below.&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Review and Create
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fe7f344e9-23cc-422c-a43a-5d5c958d5fc3" width="1229" height="757"&gt;
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F2b791c8e-48b8-444a-a5a1-ae74eece8128" width="1372" height="669"&gt;
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F845a2c8d-76e3-4ba7-94ad-01e3266c7c0b" width="911" height="666"&gt;
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F90b723e2-bb47-4de3-9083-ec17ecab798f" width="1314" height="343"&gt;
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F72fe5e02-d57d-4303-9e12-fc7398296e28" width="1143" height="489"&gt;
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Ffaae6c52-7e25-495f-9edf-7e5cab0c2ca9" width="1634" height="734"&gt;
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F54e105c1-a617-42b9-bb9b-bec963c06c27" width="1458" height="675"&gt;
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;7. Test the Load Balancer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait 2–5 minutes for the ALB to become active&lt;/li&gt;
&lt;li&gt;Copy the DNS name of your ALB from the AWS console&lt;/li&gt;
&lt;li&gt;Open in browser: &lt;code&gt;http://&amp;lt;your-alb-dns-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Refresh multiple times — you should see alternating messages:&lt;/li&gt;
&lt;li&gt;“Server 1 (Subnet: 12.0.1.0/24)”&lt;/li&gt;
&lt;li&gt;“Server 2 (Subnet: 12.0.3.0/24)”&lt;/li&gt;
&lt;li&gt;Confirm both instances show Healthy in Target Groups
&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F838644ac-9041-4460-803a-2ab0f767508e" width="1402" height="401"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F22d98c2f-7b43-439c-9ccf-f6fe9e01322c" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F22d98c2f-7b43-439c-9ccf-f6fe9e01322c" width="1106" height="461"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  8. &lt;strong&gt;Deploy Your Website Files on Ubuntu&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Upload your website files (e-commerce web files)&lt;/strong&gt;&lt;br&gt;
To upload you website files:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔹 Step 1: Open Git Bash in Your Website Folder&lt;/strong&gt;&lt;br&gt;
✅ Open your terminal and navigate to your project folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\laolu\Documents\Realprojects\AWS projects\ALB-ecommerce\Electro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🔹 Step 2: Set Secure Permissions on Your Key&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod 400 test-ALB-demo.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🔹 Step 3: Copy Files to Server 1 (3.139.70.220)&lt;/strong&gt;&lt;br&gt;
✅ Run this command (all on one line):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scp -i test-ALB-demo.pem -r Electro/* ubuntu@3.139.70.220:/tmp/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🔹 Step 4: Move Files into Web Folder on Server 1&lt;/strong&gt;&lt;br&gt;
✅ Now log in to Server 1:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i test-ALB-demo.pem ubuntu@3.139.70.220
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Once logged in, run these 3 commands (copy/paste one at a time):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# 1. Delete default Apache files
sudo rm -rf /var/www/html/*
&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;# 2. Move your files from /tmp to the web folder
sudo mv /tmp/* /var/www/html/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;🔹 Step 5: Copy Files to Server 2 (18.217.149.70)&lt;/strong&gt;&lt;br&gt;
✅ Run this command (all on one line):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scp -i test-ALB-demo.pem -r Electro/* ubuntu@18.217.149.70:/tmp/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Wait for the files to finish copying.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🔹 Step 6: Move Files into Web Folder on Server 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Log in to Server 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh -i test-ALB-demo.pem ubuntu@18.217.149.70
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Run the same 3 commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo rm -rf /var/www/html/*
sudo mv /tmp/* /var/www/html/
exit

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

&lt;/div&gt;



&lt;p&gt;✅ Done! 🎉&lt;br&gt;
Your entire E-commerce website is now live on both servers.&lt;/p&gt;

&lt;p&gt;🔍 Test It Out&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open your browser and go to:&lt;/li&gt;
&lt;li&gt;➤ &lt;code&gt;http://3.139.70.220&lt;/code&gt; → should show your real website&lt;/li&gt;
&lt;li&gt;&lt;p&gt;➤ &lt;code&gt;http://18.217.149.70&lt;/code&gt; → same website&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From your Load Balancer, visit its DNS name and refresh — you should see the same site served from both servers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Load Balancer DNS: &lt;code&gt;http://ecommerce-alb-178280318.us-east-2.elb.amazonaws.com/&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fcc9412ec-41f2-4647-803e-78f6b2a5ef4c" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fcc9412ec-41f2-4647-803e-78f6b2a5ef4c" width="1649" height="967"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F229083e8-2341-431b-9748-bc42c759a7c9" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F229083e8-2341-431b-9748-bc42c759a7c9" width="1659" height="814"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F23bb884e-0600-421c-961d-ee0e7bbaaa08" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F23bb884e-0600-421c-961d-ee0e7bbaaa08" width="1638" height="532"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fb2043638-b539-4b83-9a8a-a17c1615013a" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fb2043638-b539-4b83-9a8a-a17c1615013a" width="1651" height="505"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fcb802dc9-d8f5-42ff-b5bc-339af3f5612f" class="article-body-image-wrapper"&gt;&lt;img alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fcb802dc9-d8f5-42ff-b5bc-339af3f5612f" width="1620" height="782"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>architecture</category>
      <category>aws</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Deploying a web app with CI/CD pipeline on Azure App Service.</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Sat, 10 Aug 2024 00:09:07 +0000</pubDate>
      <link>https://dev.to/laoluafolami/deploying-a-web-app-with-cicd-pipeline-on-azure-app-service-ikg</link>
      <guid>https://dev.to/laoluafolami/deploying-a-web-app-with-cicd-pipeline-on-azure-app-service-ikg</guid>
      <description>&lt;h2&gt;
  
  
  Azure App Service
&lt;/h2&gt;

&lt;p&gt;Azure App Service is a fully managed platform-as-a-service (PaaS) offering by Microsoft Azure that enables developers to build, deploy, and scale web applications, mobile backends, and RESTful APIs quickly. It supports various programming languages and frameworks, including .NET, Node.js, Java, Python, PHP, and Ruby, allowing developers to work in their preferred environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Managed Hosting:&lt;/strong&gt; Azure App Service takes care of infrastructure management, so you don’t need to worry about server maintenance, patching, or scaling.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Scaling:&lt;/strong&gt; It supports auto-scaling, allowing your application to handle varying loads by automatically scaling out or in based on traffic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Continuous Deployment and Integration:&lt;/strong&gt; It integrates seamlessly with GitHub, Azure DevOps, and other CI/CD tools, enabling automated deployments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-in Monitoring and Diagnostics:&lt;/strong&gt; Application Insights and Azure Monitor provide deep insights into the performance and health of your applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; Supports custom domain SSL, authentication with Azure Active Directory, and compliance with security standards like ISO and SOC.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Azure App Service Plan.
&lt;/h2&gt;

&lt;p&gt;An Azure App Service Plan defines the region, resource allocation (CPU, memory, etc.), and pricing tier for the apps hosted in Azure App Service. Essentially, it represents the underlying infrastructure that supports your web app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Components:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Region:&lt;/strong&gt; The geographical location where your App Service Plan’s resources are hosted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pricing Tiers:&lt;/strong&gt; There are multiple tiers ranging from Free to Premium, each offering different levels of compute resources, scaling options, and features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Free/Shared:&lt;/strong&gt; Basic tiers for development and testing with limited features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Basic:&lt;/strong&gt; Suitable for low-traffic production sites with up to three instances.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standard:&lt;/strong&gt; Includes autoscaling, traffic manager, and more advanced features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Premium:&lt;/strong&gt; For high-traffic, mission-critical apps needing higher performance, more instances, and additional features like VNET integration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Allocation:&lt;/strong&gt; The plan determines how much compute power, memory, and storage your apps can use.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Benefits:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Management:&lt;/strong&gt; By adjusting the tier of your App Service Plan, you can optimize costs according to your application’s needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple Apps:&lt;/strong&gt; You can host multiple apps on the same App Service Plan, sharing the allocated resources, which helps in efficient resource utilization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexible Scaling:&lt;/strong&gt; Depending on the tier, you can scale out (add more instances) or scale up (move to a more powerful tier) based on the demands of your application.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, Azure App Service and App Service Plans provide a robust, scalable, and cost-effective solution for hosting web applications and APIs on the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases and Scenarios.
&lt;/h2&gt;

&lt;p&gt;Azure App Service and App Service Plan are versatile tools that cater to a wide range of scenarios:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Hosting:&lt;/strong&gt; Azure App Service is ideal for hosting websites and web applications, whether they're simple static sites or complex, enterprise-grade applications. Its support for multiple languages and frameworks makes it a go-to solution for developers working in diverse environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Hosting:&lt;/strong&gt; Azure App Service is also well-suited for hosting RESTful APIs. The platform's built-in authentication and authorization capabilities, along with seamless integration with Azure API Management, make it easy to manage and secure APIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile Backend:&lt;/strong&gt; App Service can serve as the backend for mobile applications, offering features like offline sync, push notifications, and authentication services. This makes it a robust solution for mobile app developers who need a reliable and scalable backend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continuous Deployment:&lt;/strong&gt; For teams practicing DevOps, Azure App Service supports continuous integration and deployment, allowing code changes to be automatically deployed to production. This reduces manual intervention and helps maintain a continuous delivery pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Tenant Applications:&lt;/strong&gt; Azure App Service can host multiple web apps within a single App Service Plan. This is particularly useful for multi-tenant applications where different clients or customers share the same infrastructure while maintaining isolation.&lt;/p&gt;

&lt;h2&gt;
  
  
  STEPS:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Create an Azure App Service Plan&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log in to the &lt;a href="//www.portal.azure.com"&gt;Azure Portal&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;code&gt;Create a resource&lt;/code&gt; and search for &lt;code&gt;App Service Plan&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;code&gt;Create&lt;/code&gt; and provide the following details:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Subscription:&lt;/strong&gt; Choose your Azure subscription.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Group:&lt;/strong&gt; Select an existing resource group or create a new one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; Provide a name for your App Service Plan.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Region:&lt;/strong&gt; Choose the region that is closest to your users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pricing tier:&lt;/strong&gt; Choose the pricing tier based on your app's requirements (the free tier is suitable for small applications).&lt;br&gt;
Click &lt;code&gt;Review + Create&lt;/code&gt; and then &lt;code&gt;Create&lt;/code&gt; to provision the App Service Plan.&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%2Fe63o2xr0n2orx9a9co3t.png" 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%2Fe63o2xr0n2orx9a9co3t.png" alt="Azure app service plan" width="800" height="650"&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%2F9tmfhu683ikiaczw2t5l.png" 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%2F9tmfhu683ikiaczw2t5l.png" alt="create" width="800" height="825"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Create an Azure App Service&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Navigate to "App Services" and 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%2Fqsmgndd2zu9o19o4jj3g.png" 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%2Fqsmgndd2zu9o19o4jj3g.png" alt="app services" width="800" height="262"&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%2Ftg86qrd0zidvd8gdwurh.png" 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%2Ftg86qrd0zidvd8gdwurh.png" alt="app services" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Provide the necessary details:&lt;br&gt;
&lt;strong&gt;Subscription:&lt;/strong&gt; Select the subscription you used in the previous step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resource Group:&lt;/strong&gt; Choose the resource group where your App Service Plan is located.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Name:&lt;/strong&gt; Give a unique name to your web app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Publish:&lt;/strong&gt; Choose &lt;code&gt;Code&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runtime stack:&lt;/strong&gt; Select the language stack (e.g., Node.js, .NET, Python).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Region:&lt;/strong&gt; Choose the same region as your App Service Plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;App Service Plan:&lt;/strong&gt; Select the App Service Plan you created earlier.&lt;/p&gt;

&lt;p&gt;Click &lt;code&gt;Review + Create&lt;/code&gt; and then &lt;code&gt;Create&lt;/code&gt; to deploy your App Service.&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%2Fq8x9tlunuzncspd2rf0v.png" 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%2Fq8x9tlunuzncspd2rf0v.png" alt="webapp" width="800" height="655"&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%2Fjchequw6ad4epevfh8gd.png" 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%2Fjchequw6ad4epevfh8gd.png" alt="webapp" width="800" height="534"&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%2Fq7qw94b0uo0vnbebjwoo.png" 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%2Fq7qw94b0uo0vnbebjwoo.png" alt="Create" width="800" height="893"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click &lt;code&gt;Go to resource&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%2Fd81ub72n0ga0q7laiv9c.png" 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%2Fd81ub72n0ga0q7laiv9c.png" alt="goto" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Prepare Your Web Application.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Log in to your Github account and create a 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%2F4f99r6n5u9xtdcjn3y7b.png" 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%2F4f99r6n5u9xtdcjn3y7b.png" alt="Github" width="800" height="441"&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%2Fa0pna0pv5vwb7nkyy859.png" 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%2Fa0pna0pv5vwb7nkyy859.png" alt="New repo" width="800" height="188"&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%2Fq400czwmza7dhn0kf7vg.png" 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%2Fq400czwmza7dhn0kf7vg.png" alt="New repo" width="800" height="846"&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%2Fo8myf95b168ofnjrfa4n.png" 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%2Fo8myf95b168ofnjrfa4n.png" alt="wepapp repo" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;code&gt;Code&lt;/code&gt; and copy the web URL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Visual Studio code and select the &lt;code&gt;Terminal&lt;/code&gt; =&amp;gt; &lt;code&gt;New terminal&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change the terminal to &lt;code&gt;Bash&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%2F5dvx6nmx8kc5gdxoh6fo.png" 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%2F5dvx6nmx8kc5gdxoh6fo.png" alt="VScode" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Create a folder which will contain all the files for your site and then clone the repository you created in Github.&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%2F97wm3vnjbi5jqor8fgve.png" 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%2F97wm3vnjbi5jqor8fgve.png" alt="Git repo" width="729" height="481"&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%2Faumkq8ijs7lja8ejfef8.png" 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%2Faumkq8ijs7lja8ejfef8.png" alt="git clone" width="603" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
In Visual Studio code, navigate to the folder created and create a new file called index.php and add a simple code below.
&lt;/li&gt;
&lt;/ul&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 lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Simple PHP Website&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;header&amp;gt;
        &amp;lt;h1&amp;gt;Welcome to My Simple PHP Website&amp;lt;/h1&amp;gt;
        &amp;lt;nav&amp;gt;
            &amp;lt;ul&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href="index.php"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href="about.php"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href="contact.php"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;/ul&amp;gt;
        &amp;lt;/nav&amp;gt;
    &amp;lt;/header&amp;gt;

    &amp;lt;main&amp;gt;
        &amp;lt;h2&amp;gt;Home Page&amp;lt;/h2&amp;gt;
        &amp;lt;p&amp;gt;This is the home page of my simple PHP website.&amp;lt;/p&amp;gt;
    &amp;lt;/main&amp;gt;

    &amp;lt;footer&amp;gt;
        &amp;lt;p&amp;gt;&amp;amp;copy; 2024 Simple PHP Website&amp;lt;/p&amp;gt;
    &amp;lt;/footer&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%2Fivvhpsbmkugsbk603tko.png" 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%2Fivvhpsbmkugsbk603tko.png" alt="VScode" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&lt;br&gt;
Use the commands &lt;code&gt;Git add .&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt; and &lt;code&gt;git push&lt;/code&gt; to add the newly created file &lt;em&gt;index.php&lt;/em&gt; to 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%2F8f802ptmjtcl72kq04u0.png" 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%2F8f802ptmjtcl72kq04u0.png" alt="git push" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Configure GitHub Actions for CI/CD
&lt;/h2&gt;

&lt;p&gt;GitHub Actions is a powerful tool to automate your CI/CD process directly from your GitHub repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the Azure Portal, navigate to your App Service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;code&gt;Deployment Center&lt;/code&gt; in the &lt;em&gt;Deployment blade&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;code&gt;Github&lt;/code&gt; as the &lt;em&gt;Source&lt;/em&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%2Fgvhs5x75af5qp0cmmx8t.png" 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%2Fgvhs5x75af5qp0cmmx8t.png" alt="Image description" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>azureappserviceplan</category>
    </item>
    <item>
      <title>Creating Git and Github</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Sat, 03 Aug 2024 15:33:36 +0000</pubDate>
      <link>https://dev.to/laoluafolami/creating-git-and-github-275a</link>
      <guid>https://dev.to/laoluafolami/creating-git-and-github-275a</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Git and GitHub are essential tools for modern software development. Git is a version control system that helps developers track changes, collaborate with others, and maintain the history of their projects. GitHub is a web-based platform that uses Git for version control and provides additional features like collaboration, issue tracking, and project management. This guide will walk you through setting up Git, creating a repository, making commits, and performing basic Git operations like pushing and pulling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git terminology
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Repository (repo):&lt;/strong&gt; The directory, located at the top level of a working tree, where Git keeps all the history and metadata for a project. Repositories are almost always referred to as repos. A bare repository is one that isn't part of a working tree; it's used for sharing or backup. A bare repo is usually a directory with a name that ends in .git—for example, p_roject.git._&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Commit:&lt;/strong&gt; When used as a verb, commit means to make a commit object. This action takes its name from commits to a database. It means you are committing the changes you have made so that others can eventually see them, too.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Branch:&lt;/strong&gt; A branch is a named series of linked commits. The most recent commit on a branch is called the head. The default branch, which is created when you initialize a repository, is called main, often named master in Git. The head of the current branch is named HEAD. Branches are an incredibly useful feature of Git because they allow developers to work independently (or together) in branches and later merge their changes into the default branch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remote:&lt;/strong&gt; A remote is a named reference to another Git repository. When you create a repo, Git creates a remote named origin that is the default remote for push and pull operations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Commands, subcommands, and options:&lt;/strong&gt; Git operations are performed by using commands like &lt;code&gt;git push&lt;/code&gt; and &lt;code&gt;git pull&lt;/code&gt;. &lt;code&gt;git&lt;/code&gt; is the command, and &lt;code&gt;push&lt;/code&gt; or &lt;code&gt;pull&lt;/code&gt; is the subcommand. The subcommand specifies the operation you want Git to perform. Commands frequently are accompanied by options, which use hyphens (-) or double hyphens (--). For example, &lt;code&gt;git reset --hard&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Installing Git&lt;/strong&gt;&lt;br&gt;
To start using Git, you need to install it on your system. Here are the installation steps for different operating systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;: Download the installer from &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;Git&lt;/a&gt; for Windows, run it, and follow the installation instructions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;macOS&lt;/strong&gt;: Install Git using Homebrew by running the command &lt;code&gt;brew install git&lt;/code&gt; in your terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;: Install Git using your distribution’s package manager. For example, on Ubuntu, you can run &lt;code&gt;sudo apt-get install git&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once installed, open your terminal or Git Bash (if you’re on Windows) and run this code: &lt;code&gt;git --version&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should see the installed Git version. Congrats, you’re ready to roll!&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%2F1rxc6slug1f52r3ekbud.png" 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%2F1rxc6slug1f52r3ekbud.png" alt="git version" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configuring Git&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you do not have a Github account you will need to create an account.&lt;br&gt;
Click &lt;a href="https://github.com/signup?ref_cta=Sign+up&amp;amp;ref_loc=header+logged+out&amp;amp;ref_page=%2F&amp;amp;source=header-home" rel="noopener noreferrer"&gt;here&lt;/a&gt; a Github account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Follow the prompts to create an account with your email address.&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%2Flw8m1k6fky6mcxa09drh.png" 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%2Flw8m1k6fky6mcxa09drh.png" alt="Git hub account" width="797" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You need to configure Git with your user information. Open your terminal  and run the following commands:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git config --global user.name "Your Name"&lt;br&gt;
git config --global user.email "you@example.com"&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
These commands set your name and email, which will appear in your commits.&lt;/p&gt;
&lt;h2&gt;
  
  
  Creating Your First Repository.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Initializing a New Repository&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To create a new Git repository, navigate to your project directory in the terminal and run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command initializes a new Git repository in the current directory, creating a .git folder that contains all the necessary files for version control.&lt;br&gt;
PS: Note that the .git folder is hidden.&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%2Fpnbd8mle559cq36g5vyn.png" 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%2Fpnbd8mle559cq36g5vyn.png" alt="git init" width="624" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Great! You’ve just created a Git repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Adding Files to the Repository:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create some files (e.g. &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;style.css&lt;/code&gt;, &lt;code&gt;script.js&lt;/code&gt; etc)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can use a Linux command such as &lt;code&gt;touch&lt;/code&gt; to create a file or use Visual Studio code (VSC) editor. In this article we will use VSC.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;From the terminal (Git Bash), create a directory named &lt;em&gt;GitLab&lt;/em&gt; using the command &lt;code&gt;mkdir GitLab&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%2Fncofs9gsnjjsqo68qwvl.png" 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%2Fncofs9gsnjjsqo68qwvl.png" alt="mkdir" width="578" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In Git bash, type &lt;code&gt;code .&lt;/code&gt; to open Visual studio code editor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create your files &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;style.css&lt;/code&gt;, &lt;code&gt;script.js&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the block of codes below to the &lt;em&gt;index.html&lt;/em&gt; file you just created.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HTML code&lt;/strong&gt;&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 lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;Simple Website&amp;lt;/title&amp;gt;
    &amp;lt;link rel="stylesheet" href="styles.css"&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;header&amp;gt;
        &amp;lt;h1&amp;gt;Welcome to My Simple Website&amp;lt;/h1&amp;gt;
        &amp;lt;nav&amp;gt;
            &amp;lt;ul&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href="#home"&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href="#about"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;a href="#contact"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;/ul&amp;gt;
        &amp;lt;/nav&amp;gt;
    &amp;lt;/header&amp;gt;
    &amp;lt;main&amp;gt;
        &amp;lt;section id="home"&amp;gt;
            &amp;lt;h2&amp;gt;Home&amp;lt;/h2&amp;gt;
            &amp;lt;p&amp;gt;This is the home section of the website.&amp;lt;/p&amp;gt;
        &amp;lt;/section&amp;gt;
        &amp;lt;section id="about"&amp;gt;
            &amp;lt;h2&amp;gt;About&amp;lt;/h2&amp;gt;
            &amp;lt;p&amp;gt;This is the about section of the website. Here you can find information about this website.&amp;lt;/p&amp;gt;
        &amp;lt;/section&amp;gt;
        &amp;lt;section id="contact"&amp;gt;
            &amp;lt;h2&amp;gt;Contact&amp;lt;/h2&amp;gt;
            &amp;lt;p&amp;gt;This is the contact section of the website. Feel free to get in touch!&amp;lt;/p&amp;gt;
            &amp;lt;button onclick="showAlert()"&amp;gt;Click Me&amp;lt;/button&amp;gt;
        &amp;lt;/section&amp;gt;
    &amp;lt;/main&amp;gt;
    &amp;lt;footer&amp;gt;
        &amp;lt;p&amp;gt;&amp;amp;copy; 2024 Simple Website. All rights reserved.&amp;lt;/p&amp;gt;
    &amp;lt;/footer&amp;gt;
    &amp;lt;script src="scripts.js"&amp;gt;&amp;lt;/script&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;strong&gt;CSS (styles.css)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

header {
    background-color: #4CAF50;
    color: white;
    padding: 15px 20px;
    text-align: center;
}

header nav ul {
    list-style-type: none;
    padding: 0;
}

header nav ul li {
    display: inline;
    margin: 0 10px;
}

header nav ul li a {
    color: white;
    text-decoration: none;
}

main {
    padding: 20px;
}

main section {
    margin-bottom: 20px;
}

footer {
    background-color: #333;
    color: white;
    text-align: center;
    padding: 10px 0;
    position: fixed;
    width: 100%;
    bottom: 0;
}

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;scripts.js&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function showAlert() {
    alert('Button clicked!');
}
&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%2Fiaqlj3q342r4qiusncg8.png" 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%2Fiaqlj3q342r4qiusncg8.png" alt="VSC" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding the created files to the repository
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
To add the created files to the repository &lt;em&gt;index.html, style.css, script.js&lt;/em&gt;, run the command &lt;code&gt;git add .&lt;/code&gt; This can be done using the Git Bash console or from VsCode &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%2Fvkb05nku93jj8kf0bl6i.png" 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%2Fvkb05nku93jj8kf0bl6i.png" alt="git add ." width="573" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt;command adds all the files and changes in the current directory to the repository.&lt;br&gt;
If you want to add specific files you use &lt;code&gt;git add "filename"&lt;/code&gt;'&lt;/p&gt;

&lt;p&gt;To check the status of your staged files you use &lt;code&gt;git status&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%2Fb35vkxpuvzf9e1ac3lkz.png" 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%2Fb35vkxpuvzf9e1ac3lkz.png" alt="git status" width="618" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Committing Changes&lt;/strong&gt;&lt;br&gt;
Once you have staged your changes, you can commit them to the repository with a descriptive message: &lt;code&gt;git commit -m "Your commit message"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;-m&lt;/code&gt; flag in this command tells Git that you're providing a commit message.&lt;/p&gt;

&lt;p&gt;This command creates a snapshot of the staged changes and records it in the repository’s history.&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%2Fkshkgwgrh3q7cr13fogj.png" 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%2Fkshkgwgrh3q7cr13fogj.png" alt="git commit" width="617" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pushing and Pulling&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To push your local commits to a remote repository on GitHub, you first need to add the remote repository:&lt;br&gt;
You can create the reposistory first in Github or use the command below &lt;br&gt;
&lt;code&gt;git remote add origin https://github.com/username/Gitlab.git&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Log in to your git account and click &lt;strong&gt;New&lt;/strong&gt; to create a new repository&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%2F2h1b0qrz0kqq88eimu98.png" 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%2F2h1b0qrz0kqq88eimu98.png" alt="new repo" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Enter the &lt;em&gt;Repository name&lt;/em&gt; and give a description (optional).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Create a repository&lt;/strong&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%2Fkz4cdngu25ae84r66f4g.png" 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%2Fkz4cdngu25ae84r66f4g.png" alt="create repo" width="800" height="567"&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%2Fnlxbiqqwwywhopxj53p6.png" 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%2Fnlxbiqqwwywhopxj53p6.png" alt="create repo" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Then, push your commits to the remote repository: &lt;code&gt;git push origin main&lt;/code&gt;
Replace &lt;em&gt;main&lt;/em&gt; with your branch name if you are working on a different branch.&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%2Fkyj0lncd6s4gukg52deu.png" 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%2Fkyj0lncd6s4gukg52deu.png" alt="git push" width="525" height="146"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Open Github to view the added files:&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%2Fsyggk920w0izzrfqde3e.png" 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%2Fsyggk920w0izzrfqde3e.png" alt="created files" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pulling Changes from GitHub&lt;/strong&gt;&lt;br&gt;
To fetch and integrate changes from a remote repository, use the following command: &lt;code&gt;git pull origin main&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command updates your local repository with the latest changes from the remote repository.&lt;/p&gt;
&lt;h2&gt;
  
  
  Additional Git Operations
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Branching&lt;/strong&gt;&lt;br&gt;
Branches allow you to work on different features or bug fixes independently. To create a new branch, use: &lt;code&gt;git checkout -b new-branch&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
To switch to an existing branch, use: &lt;code&gt;git checkout existing-branch&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Merging&lt;/strong&gt;&lt;br&gt;
To merge changes from one branch into another, first switch to the branch you want to merge into: &lt;code&gt;git checkout main&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then, merge the other branch:&lt;br&gt;
&lt;code&gt;git merge new-branch&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Viewing Commit History&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To view the commit history of your repository, use: &lt;code&gt;git log&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
You can also use &lt;code&gt;git log --oneline&lt;/code&gt; for a simplified view.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Resolving Conflicts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Conflicts may arise when multiple changes are made to the same part of a file. Git will mark the conflicts in the affected files, and you will need to resolve them manually. After resolving conflicts, stage the resolved files and commit the changes.&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 resolved-file
git commit -m "Resolved merge conflict in resolved-file"


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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Git and GitHub are powerful tools that streamline the development process, facilitate collaboration, and ensure that your code is version-controlled and backed up. By following this guide, you should be able to set up Git, create and manage repositories, make commits, and handle basic Git operations.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Optimizing Azure Cost Management with TCO and Pricing Calculators.</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Thu, 25 Jul 2024 15:13:59 +0000</pubDate>
      <link>https://dev.to/laoluafolami/optimizing-azure-cost-management-with-tco-and-pricing-calculators-5ack</link>
      <guid>https://dev.to/laoluafolami/optimizing-azure-cost-management-with-tco-and-pricing-calculators-5ack</guid>
      <description>&lt;p&gt;Effective cost management is crucial for businesses leveraging cloud services. Azure offers powerful tools such as the Total Cost of Ownership (TCO) Calculator and Pricing Calculator to help organizations estimate and optimize their cloud expenses. In this blog, we'll explore how these tools can be practically used to manage costs in Azure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding TCO and Pricing Calculators
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;TCO Calculator&lt;/strong&gt;: The TCO Calculator helps estimate the cost savings you can achieve by migrating your workloads to Azure. It considers factors like hardware, software, electricity, and labor costs, providing a comprehensive comparison between on-premises and Azure costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pricing Calculator&lt;/strong&gt;: The Pricing Calculator allows you to estimate the costs of specific Azure services based on your expected usage. You can customize various parameters such as region, instance type, and storage needs to get a detailed pricing estimate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Use Cases.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Planning Cloud Migration.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;: A company is considering migrating its on-premises data center to Azure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Data Collection&lt;/strong&gt;:Gather information about current on-premises infrastructure workload, including hardware specifications- Servers, Databases, Storage, Networking, software licenses, maintenance costs, and energy consumption, Data center costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;TCO Calculation&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Input the collected data into the TCO Calculator.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compare the total cost of ownership for on-premises versus Azure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identify potential savings and ROI of migrating to Azure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open the Azure &lt;a href="https://azure.microsoft.com/en-us/pricing/tco/calculator/" rel="noopener noreferrer"&gt;TCO calculatator&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%2Fphpey4v1xyqauy6j2xw9.png" 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%2Fphpey4v1xyqauy6j2xw9.png" alt="TCO" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter the details of your server configurations with a workload name&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%2Fzn1iyek48pe6czwdaq6d.png" 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%2Fzn1iyek48pe6czwdaq6d.png" alt="Server details" width="800" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Enter the details of your storage and Networking.&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%2Fbzcankz383cdu50fb0zd.png" 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%2Fbzcankz383cdu50fb0zd.png" alt="Storage" width="800" height="159"&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%2Fkje556l8adavrskudiw4.png" 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%2Fkje556l8adavrskudiw4.png" alt="Networking" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click &lt;code&gt;Next&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Adjust your assumptions based on your
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Replication option&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The number of Virtual machines&lt;br&gt;
The electricity cost of running your data center&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%2Fppzy10mreepxr1v005y4.png" 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%2Fppzy10mreepxr1v005y4.png" alt="Electricity" width="800" height="52"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Storage costs&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%2Fdeiowddfoauglyxv87ly.png" 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%2Fdeiowddfoauglyxv87ly.png" alt="Storage" width="800" height="186"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
IT labour costs&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%2F1xmq445qmsj26k3kosuz.png" 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%2F1xmq445qmsj26k3kosuz.png" alt="labour" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&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%2F0em6cfsh8j89rgp9s5a4.png" 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%2F0em6cfsh8j89rgp9s5a4.png" alt="Other options" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;code&gt;Next&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Total Cost of Ownership Report
&lt;/h2&gt;

&lt;p&gt;The TCO report below shows the cost savings estimates of moving your workloads to Azure based on the time frame selected which is for a period of 1 to 5 years and the region in which you intend to deploy your resources.&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%2F5wqutr3kb7s62aa568j8.png" 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%2F5wqutr3kb7s62aa568j8.png" alt="Report" width="793" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Estimated cost for over 5 years&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%2Fejk1t8ngg7jz2g1fe0xw.png" 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%2Fejk1t8ngg7jz2g1fe0xw.png" alt="Cost" width="800" height="170"&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%2Fofyej0n3jajgocrglbe6.png" 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%2Fofyej0n3jajgocrglbe6.png" alt="cost" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TCO of running your Datacenter&lt;/strong&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%2Fkk3q5vy5mxazg4y6af2u.png" 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%2Fkk3q5vy5mxazg4y6af2u.png" alt="Image description" width="800" height="751"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost of running your workloads on Azure&lt;/strong&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%2F49flpv0f3uvm5hzpr1f3.png" 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%2F49flpv0f3uvm5hzpr1f3.png" alt="azure cost" width="800" height="701"&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%2Fdemg0yhqzahsywuxus7q.png" 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%2Fdemg0yhqzahsywuxus7q.png" alt="sidebyside" width="800" height="370"&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%2Fyrjqu3dcbi2b6f70on7p.png" 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%2Fyrjqu3dcbi2b6f70on7p.png" alt="breakdown" width="711" height="147"&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%2Fvb9w6p1uf0shrjspbnjw.png" 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%2Fvb9w6p1uf0shrjspbnjw.png" alt="breakdown2" width="800" height="671"&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%2Fuffisvl7necpkzgi3jaf.png" 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%2Fuffisvl7necpkzgi3jaf.png" alt="breakdown3" width="705" height="130"&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%2F25u7pn4w26ti9sikqu1b.png" 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%2F25u7pn4w26ti9sikqu1b.png" alt="breakdown4" width="800" height="670"&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%2Fnmq5rwlih6kk01bmgk2u.png" 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%2Fnmq5rwlih6kk01bmgk2u.png" alt="onpremise" width="800" height="529"&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%2Fh8owehepz04vda72f60o.png" 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%2Fh8owehepz04vda72f60o.png" alt="Azure" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the TCO Calculator helps to make an informed decision about the migration, highlighting the cost benefits to stakeholders.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pricing Calculator.
&lt;/h2&gt;

&lt;p&gt;The pricing calculator helps in estimating the cost of setting up workloads for new projects in Azure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scenario:  A development team plans to deploy a new application on Azure.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Log in to Azure &lt;a href="https://azure.microsoft.com/en-us/pricing/calculator/" rel="noopener noreferrer"&gt;Price Calculator&lt;/a&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%2Ftfobfm3t74q0vtwuojb6.png" 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%2Ftfobfm3t74q0vtwuojb6.png" alt="Price calc" width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Define Requirements: Determine the application's infrastructure needs, such as virtual machines, storage, databases, and networking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using the example scenario for a CI/CD for Azure Web Apps:&lt;br&gt;
Azure Web Apps is a fast and simple way to create web apps using ASP.NET, Java, Node.js, or PHP. Deliver value faster to your customers with a continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Web Apps.&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%2Fjrtm1i3rleqs9ge4rt1y.png" 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%2Fjrtm1i3rleqs9ge4rt1y.png" alt="webapp" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Azure Resource requirements.&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%2Fj75ud2rrhjq2ij6ea61g.png" 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%2Fj75ud2rrhjq2ij6ea61g.png" alt="Req" width="242" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pricing Calculation:&lt;/strong&gt;&lt;br&gt;
Use the Pricing Calculator to estimate the costs for each required Azure service.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click on the &lt;code&gt;Example scenarios&lt;/code&gt; tab on the pricing calculator page and select &lt;code&gt;CI/CD for Azure Web Apps&lt;/code&gt;, then select &lt;code&gt;Add to estimate
&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%2F000zonrqr7jd0u0pnyok.png" 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%2F000zonrqr7jd0u0pnyok.png" alt="Estimate" width="800" height="784"&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%2Fc87f1i74bsnxymkjm2b9.png" 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%2Fc87f1i74bsnxymkjm2b9.png" alt="estimate" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Scroll down to see the monthly price estimates.&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%2Fmb93w78k26wwrfh2sb8z.png" 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%2Fmb93w78k26wwrfh2sb8z.png" alt="Monthly estimates" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Customize parameters like Region,licenses, instance type, and usage duration to match the project requirements.&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%2Feh4g4pygtx58z0uw1k14.png" 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%2Feh4g4pygtx58z0uw1k14.png" alt="param" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Budget Planning:&lt;/strong&gt; Aggregate the individual service costs to get a total estimate for the project. Adjust parameters if needed to fit within the budget.&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%2F21psjddv06ctz1v1j3i6.png" 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%2F21psjddv06ctz1v1j3i6.png" alt="aggregate" width="800" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for Effective Cost Management.
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regular Monitoring:&lt;/strong&gt; Continuously monitor your Azure usage and costs using Azure Cost Management + Billing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Right-Sizing:&lt;/strong&gt; Regularly review and adjust the size and type of your resources to align with actual usage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reserved Instances:&lt;/strong&gt; Take advantage of Azure Reserved Instances for predictable workloads to benefit from significant cost savings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automation:&lt;/strong&gt; Use Azure Automation to schedule and automate the scaling and management of resources based on demand.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Azure's TCO and Pricing Calculators are invaluable tools for managing cloud costs. Whether planning a migration, estimating new project costs, or optimizing existing resources, these calculators provide the insights needed to make informed financial decisions. By leveraging these tools effectively, organizations can maximize their cloud investments and achieve greater cost efficiency.&lt;/p&gt;

&lt;p&gt;By integrating TCO and Pricing Calculators into your Azure cost management strategy, you can gain a clearer understanding of your cloud expenses and uncover opportunities for savings. Start using these tools today to take control of your Azure spending and drive financial success.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Practical IoT solution using Azure IoT Hub.</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Fri, 19 Jul 2024 06:37:50 +0000</pubDate>
      <link>https://dev.to/laoluafolami/practical-iot-solution-using-azure-iot-hub-2apc</link>
      <guid>https://dev.to/laoluafolami/practical-iot-solution-using-azure-iot-hub-2apc</guid>
      <description>&lt;p&gt;Microsoft Azure offers Azure IoT Hub, a robust managed service that serves as a single hub for managing and connecting Internet of Things (IoT) devices. Let us examine the specifics:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objective and Usability:&lt;/strong&gt;&lt;br&gt;
Central Hub: The foundation of all IoT applications developed on the Azure platform is Azure IoT Hub. It makes it easier for cloud services and Internet of Things devices to communicate seamlessly.&lt;br&gt;
Secure and consistent connectivity is guaranteed between your IoT application and the devices it is linked to.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: An IoT Hub instance may be linked to millions of devices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Device Management&lt;/strong&gt;: The IoT Hub has tools for managing, authenticating, and provisioning devices.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Important characteristics:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Device-to-Cloud Telemetry&lt;/strong&gt;: Gather information from gadgets to comprehend their condition and actions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cloud-to-Device Messages&lt;/strong&gt;: Notifications and orders can be sent to linked devices from the cloud.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security and Authentication&lt;/strong&gt;: To improve security, authenticate every device separately.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automate the registration and provisioning of devices&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Over-the-Air Updates&lt;/strong&gt;: Update firmware and software on devices to keep them current.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integration with Azure Services&lt;/strong&gt;: You can effortlessly include Event Grid, Azure Functions, and other Azure services with ease.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IoT Edge Integration&lt;/strong&gt;: Use Azure IoT Edge to expand your solution from the cloud to the edge.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Use Cases:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart Cities&lt;/strong&gt;: Keep an eye on and control traffic signals, trash cans, lamps, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Industrial IoT&lt;/strong&gt;: Monitor the condition of machinery, enhance productivity, and raise security.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Healthcare&lt;/strong&gt;: Keep an eye on hospital facilities, medical equipment, and patient vitals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agriculture&lt;/strong&gt;: Gather information with sensors in cattle, greenhouses, and fields.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Retail&lt;/strong&gt;: Track assets, keep an eye on inventories, and improve customer service.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical steps using a mobile device (Samsung phone).
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Set Up Azure IoT Hub.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Register a Simulated Device (Samsung phone).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simulate the Device &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Azure Blob Storage Integration.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log in to your &lt;a href="//www.portal.azure.com"&gt;Azure&lt;/a&gt; account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search for “IoT Hub” and click “+ Add.”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Configure the settings below:&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Name&lt;/em&gt;: Choose a unique name for your IoT Hub.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pricing Tier&lt;/em&gt;: Select the appropriate tier based on your requirements.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Resource Group&lt;/em&gt;: Create a new one or use an existing group.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Region&lt;/em&gt;: Choose a region close to your devices.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click on &lt;strong&gt;Review + 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%2Ff0cngdni0shm4uqmlm2m.png" 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%2Ff0cngdni0shm4uqmlm2m.png" alt="IoT Hub" width="800" height="306"&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%2Fior30vjpj90xfjdt78ic.png" 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%2Fior30vjpj90xfjdt78ic.png" alt="IoT Hub" width="800" height="676"&gt;&lt;/a&gt;&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%2F88uixjvd1o0b55e3tmsm.png" 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%2F88uixjvd1o0b55e3tmsm.png" alt="Resource" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Register a Simulated Device.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Create a Simulated Device:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
From your IoT Hub overview page:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click &lt;strong&gt;Device&lt;/strong&gt; from the &lt;em&gt;Device management blade.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Select &lt;strong&gt;+ Add device.&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%2F9rog4c88v0p3mk7t2sem.png" 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%2F9rog4c88v0p3mk7t2sem.png" alt="Device Add" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Provide the &lt;strong&gt;Device ID&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose an authentication type (e.g., &lt;em&gt;symmetric key&lt;/em&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leave the default values of the other fields and select &lt;strong&gt;Save&lt;/strong&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%2Ftiskmi8fslujxc1onpk3.png" 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%2Ftiskmi8fslujxc1onpk3.png" alt="Device" width="800" height="652"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Go to the &lt;em&gt;Device Overview&lt;/em&gt; page and click the newly created device (&lt;em&gt;Samsungphone&lt;/em&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%2Fxyx8xkf4blz0g4v174w3.png" 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%2Fxyx8xkf4blz0g4v174w3.png" alt="Device" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On your device (The smart phone in this case the Samsung phone), go to _Playstore _ and download the app called &lt;strong&gt;IoT PnP&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the landing page, click on &lt;em&gt;Scan QR code&lt;/em&gt;  as indicated below.&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%2F4cl45isruf3as0346azn.png" 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%2F4cl45isruf3as0346azn.png" alt="QR code" width="435" height="832"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;em&gt;Manually connect&lt;/em&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%2Fnypm5nps58j5bm79bgbh.png" 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%2Fnypm5nps58j5bm79bgbh.png" alt="connect" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Select the &lt;em&gt;IoT Hub device connection string&lt;/em&gt; radio button.&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%2Fddmgqxmztjnzk7bxr2y9.png" 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%2Fddmgqxmztjnzk7bxr2y9.png" alt="Connection string" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Paste the &lt;strong&gt;Primary Connection String&lt;/strong&gt; in the &lt;em&gt;IoT Hub device connection string field&lt;/em&gt;  and click the &lt;em&gt;Connect&lt;/em&gt; button.&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%2Fkwjnxhbzdqtcfus3t9w8.png" 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%2Fkwjnxhbzdqtcfus3t9w8.png" alt="Connect string" width="715" height="1500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
The telemetry data of the phone is 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%2Fon529m2f2vst436qhq40.png" 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%2Fon529m2f2vst436qhq40.png" alt="Telemetry details" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Azure Blob Storage Integration
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Navigate to the IoT device overview page and select &lt;strong&gt;Message routing&lt;/strong&gt; from the &lt;em&gt;Hub settings&lt;/em&gt; blade.&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%2Fk2qgi19zb1273g4iv2rs.png" 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%2Fk2qgi19zb1273g4iv2rs.png" alt="Message Route" width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;+ Add&lt;/strong&gt; to add a route.&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%2Ftyfy2qvkjdojpr6duqyw.png" 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%2Ftyfy2qvkjdojpr6duqyw.png" alt="+ Add" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Storage&lt;/strong&gt; as the &lt;em&gt;Endpoint type&lt;/em&gt;, provide the &lt;em&gt;Endpoint name&lt;/em&gt; and select the &lt;strong&gt;Jason&lt;/strong&gt; as the &lt;em&gt;encoding type&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on the &lt;strong&gt;Pick a container&lt;/strong&gt; button to begin creating a storage account.&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%2Frv96xze0huunar29burm.png" 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%2Frv96xze0huunar29burm.png" alt="Endpoint" width="766" height="902"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click the &lt;strong&gt;+ Storage account&lt;/strong&gt; option to create a 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%2Fdpne9zoum15wrfyx9ucc.png" 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%2Fdpne9zoum15wrfyx9ucc.png" alt="Storage" width="775" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Provide the Storage details as indicated in the screenshot below and click the &lt;em&gt;Ok button&lt;/em&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%2F0f2jbuk0ivwygtkt0lgo.png" 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%2F0f2jbuk0ivwygtkt0lgo.png" alt="Storage" width="566" height="835"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Select the created storage account (&lt;em&gt;phonestorage&lt;/em&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%2Fsr9vmsan6srinvp1fw7e.png" 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%2Fsr9vmsan6srinvp1fw7e.png" alt="Storage" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Create a Container.
&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%2Fb9wnz2585pzb00udi97j.png" alt="Container" width="800" height="356"&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%2F6smklqbww8m3zql200gh.png" 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%2F6smklqbww8m3zql200gh.png" alt="storage" width="573" height="831"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click on &lt;em&gt;Create&lt;/em&gt; to provision the container (&lt;em&gt;phonefiles&lt;/em&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%2F9ryfsclz0dstwqrb0qbo.png" 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%2F9ryfsclz0dstwqrb0qbo.png" alt="Container" width="573" height="831"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Select the container created.&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%2Fepuystpl9ku3gcxb8hj9.png" 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%2Fepuystpl9ku3gcxb8hj9.png" alt="Container" width="800" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click the &lt;em&gt;Create + next button&lt;/em&gt; to proceed.&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%2Fsw9mvmz3hp5hcehfplpz.png" 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%2Fsw9mvmz3hp5hcehfplpz.png" alt="Proceed" width="750" height="826"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Enter a route name and select a &lt;em&gt;Device Telemetry message&lt;/em&gt; in the Data source drop-down and click &lt;strong&gt;Test&lt;/strong&gt; to test the route.&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%2F64rt2lqvjzkuv7kt50y3.png" 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%2F64rt2lqvjzkuv7kt50y3.png" alt="Route" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click the _Create + add enrichment button.&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%2Ff1fh47jhg9nwe9u4ov69.png" 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%2Ff1fh47jhg9nwe9u4ov69.png" alt="enrichment" width="800" height="583"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click the &lt;em&gt;Add button&lt;/em&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%2Fpb1bswp5oid8wf2tjhdq.png" 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%2Fpb1bswp5oid8wf2tjhdq.png" alt="rtt" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the created IoT hub212 and select &lt;em&gt;File upload&lt;/em&gt; from the &lt;strong&gt;Hub settings&lt;/strong&gt; blade.&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%2F07pkyoxtvp8bm5t9xxl1.png" 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%2F07pkyoxtvp8bm5t9xxl1.png" alt="fileupload" width="800" height="691"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Select &lt;em&gt;Azure storage container&lt;/em&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%2F2bqll53ew9yqj4fr83h8.png" 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%2F2bqll53ew9yqj4fr83h8.png" alt="Storage container" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Select the created container (&lt;em&gt;phonefiles&lt;/em&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%2Ftk5g5srt6kmcl0k8dwaw.png" 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%2Ftk5g5srt6kmcl0k8dwaw.png" alt="Container" width="800" height="828"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Turn on &lt;em&gt;file notification settings&lt;/em&gt; then 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%2F8yfkcsq2ze5vyzqm9h0c.png" 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%2F8yfkcsq2ze5vyzqm9h0c.png" alt="Image" width="800" height="787"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
From your mobile phone, click on &lt;em&gt;Image upload&lt;/em&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%2Fz0tiezc9q9rfxcyzej0d.png" 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%2Fz0tiezc9q9rfxcyzej0d.png" alt="Image upload" width="720" height="1480"&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%2F3xuhr0s028v8k1kqxx28.png" 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%2F3xuhr0s028v8k1kqxx28.png" alt="Image upload" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Upload an image from your phone.&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%2Fh60uc0hscc1ztrif22bf.png" 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%2Fh60uc0hscc1ztrif22bf.png" alt="Image upload" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Navigate to your Blob Storage to view the uploaded file.&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%2Ffeth5ir0nt6xifzfgf2v.png" 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%2Ffeth5ir0nt6xifzfgf2v.png" alt="storage folder" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The uploaded files.&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%2Fopep2dz4od0o5921eclk.png" 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%2Fopep2dz4od0o5921eclk.png" alt="Files" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Viewing the telemetry data using Visual studio code.
&lt;/h2&gt;

&lt;p&gt;Navigate to the storage folder and download the Json files and view them in Visual studio code editor.&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%2F1a8jc2edqsh6iq1njgpl.png" 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%2F1a8jc2edqsh6iq1njgpl.png" alt="Json files" width="800" height="563"&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%2Flw9rtme0j3q5vdvuhhuk.png" 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%2Flw9rtme0j3q5vdvuhhuk.png" alt="Image description" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
For Bi-directional data, from your mobile phone, click on the Properties tab from the IoT plug n Play 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%2F3t8qfmtm7zdso27k9pxr.png" 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%2F3t8qfmtm7zdso27k9pxr.png" alt="properties" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Click on the &lt;em&gt;Editable property&lt;/em&gt; tile, edit it with any word or sentence and click on &lt;em&gt;Send&lt;/em&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%2Fvp6slp6zwanphkrcht65.png" 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%2Fvp6slp6zwanphkrcht65.png" alt="image" width="720" height="1480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Navigate to the IoT hub and select the created device (&lt;em&gt;Samsungphone&lt;/em&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%2Fbehq06i8q5ajqbafpjev.png" 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%2Fbehq06i8q5ajqbafpjev.png" alt="device" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;device twin&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The edited string now appears in line 37 of the Json code. &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%2Fv2rd2rc5av58gx4nrn5k.png" 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%2Fv2rd2rc5av58gx4nrn5k.png" alt="edited" width="800" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This simulation demonstrated the seamless integration between our device and Azure IoT Hub. Here are the key takeaways:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Persistence in Azure Blob Storage:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Our device successfully saved telemetry data to Azure Blob Storage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This demonstrates the reliability and scalability of our chosen solution.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Telemetry Monitoring:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We monitored the telemetry data from our mobile device, gaining valuable insights, and archived logs for auditing and troubleshooting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Real-time monitoring allows us to make informed decisions promptly.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Exploring Further Use Cases:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Beyond this simulation, there are numerous other scenarios we can explore:&lt;br&gt;
Image Storage: Store images captured by our devices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Streaming Data: Process real-time streams from sensors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Archiving: Long-term storage for compliance or historical analysis.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Kindly comment, like and share.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Creating Azure Virtual Network with 4 Subnets Using the Address Space 192.148.30.0/26</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Fri, 12 Jul 2024 15:30:29 +0000</pubDate>
      <link>https://dev.to/laoluafolami/creating-azure-virtual-network-with-4-subnets-using-the-address-space-19214830026-46ii</link>
      <guid>https://dev.to/laoluafolami/creating-azure-virtual-network-with-4-subnets-using-the-address-space-19214830026-46ii</guid>
      <description>&lt;p&gt;&lt;strong&gt;Azure Virtual Network (VNet)&lt;/strong&gt; is a fundamental service in Microsoft Azure that creates a private network environment within the Azure cloud. It functions similarly to a traditional network you might have on-premises, but with the added benefits of Azure's scalability, availability, and security features.&lt;/p&gt;

&lt;p&gt;Here's a breakdown of key functionalities of an Azure VNet:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Isolation and Security&lt;/strong&gt;: VNet isolates your Azure resources, such as virtual machines (VMs), from the public internet and other VNets. This isolation creates a secure environment for your applications to communicate with each other without worrying about unauthorized access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subnet Creation&lt;/strong&gt;: VNets can be further segmented into subnets. Subnets act like sub-divisions within the VNet, allowing you to group related resources and define specific access controls for each subnet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IP Address Management&lt;/strong&gt;: VNets use a private IP address space (like the one you provided: 192.148.30.0/26) for resources within the network. This allows for private communication between resources without conflicting with public IP addresses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connectivity Options&lt;/strong&gt;: VNets offer various options for connecting resources:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Internet Access&lt;/strong&gt;: Subnets can be configured to allow resources controlled access to the internet through outbound rules in network security groups (NSGs).&lt;br&gt;
VNet Peering: VNets can be peered together to enable communication between resources across different VNets within the same region.&lt;br&gt;
VPN Gateway: VNets can connect to your on-premises network using a VPN gateway, creating a hybrid network environment.&lt;br&gt;
Integration with Azure Services: VNets can integrate with various Azure services like Azure SQL Database or Azure Storage. By placing these services within a VNet, you can enforce private access only from authorized resources within the VNet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of using Azure Virtual Network:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Improved Security&lt;/strong&gt;: Isolation and access control features enhance the security of your cloud resources.&lt;br&gt;
Simplified Management: VNets provide a centralized way to manage and configure your network infrastructure in Azure.&lt;br&gt;
Scalability: You can easily scale your VNet by adding or removing subnets as needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;: VNets offer various connectivity options to suit your specific needs.&lt;/p&gt;

&lt;p&gt;In summary, Azure VNet is a critical component for building secure and scalable private networks within the Azure cloud environment. It provides a foundation for deploying and managing your Azure resources while ensuring their isolation and controlled access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps in Creating Azure Virtual Network with 4 Subnets.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Sign in to Azure Portal&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open your web browser and navigate to the &lt;a href="//www.portal.azure.com"&gt;Azure Portal&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sign in with your Azure account credentials.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Navigate to Virtual Networks&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;Create a resource&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the "Search the Marketplace" box, type Virtual Network and press Enter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on Virtual Network in the search results.&lt;/p&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%2F55y6whya2kolu04tciye.png" 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%2F55y6whya2kolu04tciye.png" alt="Creating a Resouce" width="800" height="293"&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%2Fgkuappub4394bgxwqoqg.png" 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%2Fgkuappub4394bgxwqoqg.png" alt="Virtual Network" width="800" height="671"&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%2Ffyq82xt42nzuejhewbru.png" 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%2Ffyq82xt42nzuejhewbru.png" alt="Create" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on the &lt;strong&gt;Create&lt;/strong&gt; button.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Create a Virtual Network&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the "Basics" tab, fill in the following details:&lt;br&gt;
&lt;strong&gt;Subscription&lt;/strong&gt;: Select your subscription.&lt;br&gt;
&lt;strong&gt;Resource group&lt;/strong&gt;: Create a new resource group or select an existing one.&lt;br&gt;
&lt;strong&gt;Name&lt;/strong&gt;: Enter a name for your virtual network (e.g., &lt;em&gt;MyVNet&lt;/em&gt;).&lt;br&gt;
&lt;strong&gt;Region&lt;/strong&gt;: Select the region where you want to create the virtual network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on Next: IP Addresses.&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%2Fhdm7hhl46ak8u59laxp0.png" 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%2Fhdm7hhl46ak8u59laxp0.png" alt="Basic tab" width="800" height="693"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Configure Address Space&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
In the "IP Addresses" tab, modify the existing address space to 192.148.30.0/26.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click on &lt;strong&gt;Add a subnet.&lt;/strong&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%2Ficpr2rmax1m6l84uyudy.png" 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%2Ficpr2rmax1m6l84uyudy.png" alt="IP address" width="800" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Add Subnets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enter the following details:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Subnet name:&lt;/strong&gt; Enter a name for the subnet (e.g., Subnet1).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Subnet address range&lt;/strong&gt;: Enter the address range for the first subnet (e.g., 192.148.30.0/28).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
Click on 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%2Fzlhakbrzyhu4juhucj12.png" 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%2Fzlhakbrzyhu4juhucj12.png" alt="subnet1" width="800" height="630"&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%2F56tjm6syi1v20j6om8rg.png" 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%2F56tjm6syi1v20j6om8rg.png" alt="Image description" width="800" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Repeat  1 &amp;amp; 2 above to add the remaining three subnets with the following details:&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Subnet2: 192.148.30.16/28
&lt;/h2&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%2Fcfsfbcfudipngh2px2tn.png" 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%2Fcfsfbcfudipngh2px2tn.png" alt="subnet2" width="800" height="633"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Subnet3: 192.148.30.32/28
&lt;/h2&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%2Fhwhvve881rfboveij2a9.png" 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%2Fhwhvve881rfboveij2a9.png" alt="subnet3" width="800" height="623"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Subnet4: 192.148.30.48/28
&lt;/h2&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%2F1sxhgq8k3zcfshynlgcn.png" 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%2F1sxhgq8k3zcfshynlgcn.png" alt="subnet4" width="800" height="626"&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%2Fvv974c9cfqt9w2bmqnin.png" 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%2Fvv974c9cfqt9w2bmqnin.png" alt="Create" width="800" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Review and Create&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click on Review + create to review your configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After the validation passes, click on Create.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Verification&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Once the deployment is complete, navigate to the Resource Group you selected earlier (&lt;strong&gt;RG1&lt;/strong&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on your Virtual Network (e.g., MyVNet).&lt;br&gt;
Verify that the address space and subnets are correctly configured.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Hosting a Static Website Using Microsoft Azure Blob Storage</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Thu, 04 Jul 2024 10:17:18 +0000</pubDate>
      <link>https://dev.to/laoluafolami/hosting-a-static-website-using-microsoft-azure-blob-storage-9o0</link>
      <guid>https://dev.to/laoluafolami/hosting-a-static-website-using-microsoft-azure-blob-storage-9o0</guid>
      <description>&lt;p&gt;Microsoft's cloud storage solution for contemporary data storage scenarios is the Azure Storage platform. For a range of cloud-based data items, Azure Storage provides highly accessible, massively scalable, robust, and secure storage. Anywhere in the globe may access Azure Storage data objects using HTTP or HTTPS.&lt;br&gt;
All kinds of data are stored in Azure storage. Its primary purpose is to provide easy access to storage for both structured and unstructured data. Your static website may be quickly uploaded to Microsoft Azure, where you can establish access control and share the URL with anybody to see your website.&lt;/p&gt;

&lt;p&gt;In this article I will demonstrate how to setup a static website using the Azure portal. Let's dive in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Log in to the Azure Portal and create an Azure storage account.&lt;/strong&gt;&lt;br&gt;
Click on the &lt;a href="//www.portal.azure.com"&gt;Azure portal&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create an Azure storage account&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Search for storage accounts and click on 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%2F8nk79sbs2h98spc7x3ni.png" 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%2F8nk79sbs2h98spc7x3ni.png" alt="Storage accounts" width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a Storage account&lt;/strong&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%2Flvhd59tnv0nva51tbn6v.png" 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%2Flvhd59tnv0nva51tbn6v.png" alt="Create a storage account" width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a Resource Group&lt;/strong&gt;.&lt;br&gt;
Create or select an existing Resource Group. &lt;br&gt;
Give your storage account a unique name eg &lt;em&gt;webstore212&lt;/em&gt;.&lt;br&gt;
Click on &lt;em&gt;Review + create&lt;/em&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%2F2k1zg5f2jpkhbogvg6gh.png" 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%2F2k1zg5f2jpkhbogvg6gh.png" alt="Create a RG" width="800" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the deployment is completed, click the &lt;em&gt;Go to resource&lt;/em&gt; button.&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%2Fcxupu20jnr35ww8fmbl1.png" 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%2Fcxupu20jnr35ww8fmbl1.png" alt="Goto Resource" width="781" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From the Storage overview page&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scroll to the &lt;em&gt;Data management _ blade and select _Static website&lt;/em&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%2F6ig5yb1nmk2e7bq1tsa9.png" 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%2F6ig5yb1nmk2e7bq1tsa9.png" alt="Static website" width="800" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Enable the static websites on the blob service to host a static content.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the &lt;em&gt;index document name&lt;/em&gt; and the &lt;em&gt;Error document path&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;em&gt;Save&lt;/em&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%2Fwtgjme7f95i4op8yfln3.png" 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%2Fwtgjme7f95i4op8yfln3.png" alt="Static site" width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;From the &lt;em&gt;Data storage&lt;/em&gt; blade, select &lt;em&gt;Containers.&lt;/em&gt;&lt;br&gt;
(Note that a new container has been created named &lt;em&gt;web&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the &lt;em&gt;web&lt;/em&gt; container.&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%2F4ithrk00sx3nuu9rmoes.png" 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%2F4ithrk00sx3nuu9rmoes.png" alt="data storage" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the web storage tier, upload your website files by clicking on the &lt;em&gt;upload&lt;/em&gt; button.&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%2Fsu2tt9q45xjnsc1t3633.png" 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%2Fsu2tt9q45xjnsc1t3633.png" alt="web" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browse to where you have your website file or Drag and drop your website files.&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%2Ffx5ltcpcglxorx2pubfl.png" 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%2Ffx5ltcpcglxorx2pubfl.png" alt="Upload files" width="707" height="521"&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%2F918yftwz2suldnixx9m4.png" 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%2F918yftwz2suldnixx9m4.png" alt="files" width="659" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;em&gt;Upload&lt;/em&gt; to complete the process.&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%2F33e52tpnjfn1s45a4r3h.png" 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%2F33e52tpnjfn1s45a4r3h.png" alt="Upload files" width="705" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A view of the uploaded files&lt;/strong&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%2Far15grcf290dlmjh02rv.png" 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%2Far15grcf290dlmjh02rv.png" alt="Uploaded files" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Navigate to the storage account and under the &lt;em&gt;Data management&lt;/em&gt; blade, select &lt;em&gt;Static website&lt;/em&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Look for &lt;em&gt;Primary endpoint&lt;/em&gt; to the right of the page and copy the endpoint URL.&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%2Fsosgitvutct79toiq2e1.png" 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%2Fsosgitvutct79toiq2e1.png" alt="endpoint url" width="800" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Paste the URL in a browser to access the webpage. &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%2Fva411zzwjzsakgfkes5b.png" 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%2Fva411zzwjzsakgfkes5b.png" alt="Web" width="800" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
The displayed 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%2Fuv5sgtepno81dx3nxfux.png" 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%2Fuv5sgtepno81dx3nxfux.png" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>azurestorage</category>
    </item>
    <item>
      <title>Creating a Virtual Machine Scale-Set in Azure (VMSS).</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Wed, 26 Jun 2024 12:24:35 +0000</pubDate>
      <link>https://dev.to/laoluafolami/creating-a-virtual-machine-scale-set-in-azure-vmss-21g9</link>
      <guid>https://dev.to/laoluafolami/creating-a-virtual-machine-scale-set-in-azure-vmss-21g9</guid>
      <description>&lt;h2&gt;
  
  
  What is Virtual machine scale-set?
&lt;/h2&gt;

&lt;p&gt;One intriguing feature provided by Microsoft Azure is called Virtual Machine Scale Sets (VMSS), which aids in the creation and management of a group of similar, auto-scaling Virtual Machines (VMs). VM instances can be automatically increased or decreased in accordance with predetermined parameters.&lt;/p&gt;

&lt;p&gt;VMSS may be used to launch a collection of virtual machines (VMs) with the same operating system, applications, and data settings. In addition to offering load balancing, intelligent scaling, and connectivity with other Azure services, VMSS is a strong and adaptable tool for handling heavy workloads.&lt;/p&gt;

&lt;p&gt;All things considered, VMSS is a significant Microsoft Azure feature that offers a scalable and reliable way to build and manage a group of similar virtual machines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-Scaling&lt;/strong&gt;&lt;br&gt;
With auto-scaling, you may set an automated limit on the amount of computing resources your application uses, according to how much it requires at any given time.&lt;/p&gt;

&lt;p&gt;The main takeaway is that, regardless of how quickly or slowly, large or little, your site grows over time, you can now create a scalable architecture that will automatically scale up or down to meet your demands.&lt;/p&gt;

&lt;p&gt;These are the most often used auto-scaling methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Horizontal Scaling&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vertical Scaling&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%2Fc6jmoecfdi5op8rraj49.png" 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%2Fc6jmoecfdi5op8rraj49.png" alt="Types of scaling" width="658" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vertical Scaling&lt;/strong&gt;&lt;br&gt;
If you have a single core processor and four gigabytes of RAM in vertical scaling, you may upgrade to a dual core processor and eight gigabytes of RAM. We refer to this as &lt;strong&gt;Scale UP&lt;/strong&gt;. Scaling down means returning the configuration to its initial state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Horizontal Scaling&lt;/strong&gt;&lt;br&gt;
Horizontal scaling, also known as scale out, is the process of starting with one virtual machine and gradually adding others with the same configuration. Once your sale or business requirement is met, you may also scale down to 1 virtual machine (VM). This technique is known as "&lt;strong&gt;scaling in&lt;/strong&gt;."&lt;/p&gt;

&lt;p&gt;Distributed architecture is required because applications are usually spread over several instances, allowing for redundancy and enhanced performance. A load balancer distributes requests to one of the application instances in order to provide your customers with quicker speed and lower latency.&lt;br&gt;
Virtual Machine Scale Set (VMSS) let you Create and Manage a group of load balanced VMs. The number of VM instances can automatically increase or decrease in response to demand or a defined schedule.&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%2Fd5wih4whiho5ninvp659.png" 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%2Fd5wih4whiho5ninvp659.png" alt="VMSS" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Sign in to the &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;Azure portal&lt;/a&gt;&lt;br&gt;
You can deploy a scale set with a Windows Server image or Linux image&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal search bar, search for and select &lt;em&gt;Virtual Machine Scale Sets.&lt;/em&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%2Fwjvsur383ho9rttqrh14.png" 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%2Fwjvsur383ho9rttqrh14.png" alt="VSS" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt; on the Virtual Machine Scale Sets 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%2Fcehi0km4n3qoton0lrc4.png" 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%2Fcehi0km4n3qoton0lrc4.png" alt="VSS create" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the Basics tab, under Project details, make sure the correct subscription is selected and create a new resource group called &lt;strong&gt;vmssRG&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Scale set details&lt;/strong&gt;, set &lt;em&gt;myScaleSet&lt;/em&gt; for your scale set name and select a &lt;strong&gt;Region&lt;/strong&gt; that is close to your area.&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%2Fvrwfx5msfsh8hpvs3mv5.png" 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%2Fvrwfx5msfsh8hpvs3mv5.png" alt="Create a VMSS" width="800" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Under &lt;strong&gt;Orchestration mode&lt;/strong&gt;, select &lt;em&gt;Uniform&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under the Security type blade select &lt;em&gt;Standard.&lt;/em&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under Instance details, select a marketplace image for Image. Select any of the Supported Distros.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;strong&gt;Scaling mode&lt;/strong&gt; choose the &lt;em&gt;Autoscaling option&lt;/em&gt;. Then select &lt;em&gt;Configure&lt;/em&gt; to set parameters for the scaling configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Instance count&lt;/strong&gt; section enter &lt;em&gt;2&lt;/em&gt; (Indicating initial creation of 2 VMs). Then select &lt;em&gt;Configure.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-Under the &lt;strong&gt;Scaling condition&lt;/strong&gt;, click the &lt;em&gt;Add a scaling condition&lt;/em&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%2Frx5qv1gjyvg4sp3zpls0.png" 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%2Frx5qv1gjyvg4sp3zpls0.png" alt="Scaling settings" width="800" height="641"&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%2Fq67uo26xl596ybxp8l8a.png" 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%2Fq67uo26xl596ybxp8l8a.png" alt="Scaling condition" width="800" height="502"&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%2F0vqtmegmwt67d380049x.png" 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%2F0vqtmegmwt67d380049x.png" alt="Scaling configuration" width="800" height="741"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the parameters as indicated below.&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%2Fjixc79ix8jzpuk2xicl9.png" 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%2Fjixc79ix8jzpuk2xicl9.png" alt="Scaling options" width="697" height="789"&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%2Fbcakd37bvycuwgvslsk4.png" 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%2Fbcakd37bvycuwgvslsk4.png" alt="Scaling options" width="662" height="690"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Schedule&lt;/strong&gt; select &lt;em&gt;Specify start/end dates.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select your time zone in the &lt;strong&gt;Timezone&lt;/strong&gt; blade as well as the &lt;strong&gt;start date&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on the &lt;strong&gt;Save button&lt;/strong&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%2Fbz000ddxi8p0u0uz0fow.png" 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%2Fbz000ddxi8p0u0uz0fow.png" alt="Scaling options" width="620" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Under &lt;strong&gt;Instance details&lt;/strong&gt;, select a marketplace image for Image. Select any of the Supported Distros.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under the &lt;strong&gt;Size blade&lt;/strong&gt;, select Standard_D2sv3 - 2 vcpus, 8 Gib memory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under Administrator account configure the admin username and set up an associated password or SSH public key. (&lt;em&gt;In this demo, we will generate a new key pair.&lt;/em&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next, set your username,  and in the SSH public key source field, select &lt;em&gt;RSA SSH Format.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the &lt;strong&gt;Key pair name.&lt;/strong&gt; In this demo the key name is vmssKey&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%2F93vhkwqhilrrtrsacp56.png" 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%2F93vhkwqhilrrtrsacp56.png" alt="VMSS" width="800" height="608"&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%2Fb4xd82vy41fuh8r6osk8.png" 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%2Fb4xd82vy41fuh8r6osk8.png" alt="Account setting" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Next: Disks&lt;/strong&gt; to proceed to the Disk configuration options. For this quickstart, leave the default disk configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Next: Networking&lt;/strong&gt; to move to the networking configuration options.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the Networking page, under &lt;strong&gt;Load balancing&lt;/strong&gt;, select the &lt;em&gt;Use a load balancer&lt;/em&gt; radio button to put the scale set instances behind a load balancer.&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%2Flc6bggugpbs2okx4oyfe.png" 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%2Flc6bggugpbs2okx4oyfe.png" alt="Load balancer" width="800" height="699"&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%2Fzmfw4ptlo5xolpkx63un.png" 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%2Fzmfw4ptlo5xolpkx63un.png" alt="Load balancer" width="800" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Select load balancer&lt;/strong&gt; options, select &lt;em&gt;Create load balancer&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give the &lt;strong&gt;Load balancer&lt;/strong&gt; a name - &lt;em&gt;vmss-lb.&lt;/em&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%2Fkfkh1lka3ia1oauwwo4z.png" 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%2Fkfkh1lka3ia1oauwwo4z.png" alt="Load balancer" width="712" height="678"&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%2Fbmg23b6s3w2jvv33skv8.png" 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%2Fbmg23b6s3w2jvv33skv8.png" alt="Load balancer" width="693" height="743"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Next&lt;/strong&gt; to advance to the networking page and edit the network interface options as indicated below.&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%2Fuo77e9piiwcf5vsyjm4b.png" 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%2Fuo77e9piiwcf5vsyjm4b.png" alt="editing the network interface options" width="800" height="657"&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%2Fmb2haz95cgkk7nbz8s91.png" 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%2Fmb2haz95cgkk7nbz8s91.png" alt="editing the network interface options" width="800" height="730"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Review and create.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After it passes validation, select &lt;strong&gt;Create&lt;/strong&gt; to deploy the scale set.&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%2Fz7bo8yuivhv147xiwqqn.png" 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%2Fz7bo8yuivhv147xiwqqn.png" alt="Validation passed" width="800" height="887"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the &lt;strong&gt;Download private key and create resource&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%2Focw7sv44bz3tikuf0euz.png" 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%2Focw7sv44bz3tikuf0euz.png" alt="New key pair" width="469" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
After the deployment is completed, click on the &lt;strong&gt;Go to resource&lt;/strong&gt; button.&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%2F40jnesnedjmfry46p0y0.png" 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%2F40jnesnedjmfry46p0y0.png" alt="deployment completed" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Select &lt;strong&gt;Instances&lt;/strong&gt; to see the two default VMs created as indicated in our configuration.&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%2Ftf9kmnmv9ottslcwfy5b.png" 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%2Ftf9kmnmv9ottslcwfy5b.png" alt="Instances" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to the &lt;strong&gt;Load balancing&lt;/strong&gt; blade and select the &lt;em&gt;Frontend IP address.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next step is to open &lt;strong&gt;commamd prompt (cmd)&lt;/strong&gt; to connect via SSH to the VM.&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%2Frixo5djaabmlj07w5x6v.png" 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%2Frixo5djaabmlj07w5x6v.png" alt="Connecting to the VM" width="800" height="145"&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%2F7mdln3oeeq7ya5y9cr4y.png" 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%2F7mdln3oeeq7ya5y9cr4y.png" alt="Connection succeeded" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Update the VM and install the webserver using the linux commands.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get -y update&lt;br&gt;
sudo apt-get -y install nginx&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%2Fjd8ub9cfwg56kuhk1had.png" 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%2Fjd8ub9cfwg56kuhk1had.png" alt="webserver page" width="659" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up a stressor for the VMs to test the scale sets
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Adding a workload to the VMs&lt;/li&gt;
&lt;li&gt;Type the linux command
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install stress-ng
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
Linux Stress command
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;stress-ng --cpu 4 --tz -t 1024
&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%2Fpqb8ujy48zpth7meavw4.png" 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%2Fpqb8ujy48zpth7meavw4.png" alt="Image description" width="800" height="193"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Another instance of the VM has been created due to the increase in workload.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>azure</category>
    </item>
    <item>
      <title>How to create and connect to a Linux VM using a Public Key.</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Wed, 19 Jun 2024 21:52:58 +0000</pubDate>
      <link>https://dev.to/laoluafolami/how-to-create-and-connect-to-a-linux-vm-using-a-public-key-2jhb</link>
      <guid>https://dev.to/laoluafolami/how-to-create-and-connect-to-a-linux-vm-using-a-public-key-2jhb</guid>
      <description>&lt;p&gt;A Linux virtual machine (VM) can be created using the Azure portal. This guide will show you how to use the Azure portal to deploy a Linux virtual machine using Ubuntu Server 22.04 LTS as the operating system (OS) image. A connection will be established to the VM using Secure Shell (SSH) with a public key and the NGINX webserver will also be installed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sign in to the Azure portal&lt;/strong&gt;&lt;br&gt;
Sign in to the &lt;a href="(https://azure.microsoft.com/en-us/get-started/azure-portal)"&gt;Azure portal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a Virtual machine&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select "+ Create a resource" from the Azure homepage.&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%2F1mzn3j3b2ky5ngs5rpkf.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%2F1mzn3j3b2ky5ngs5rpkf.png" alt="Creating a resource"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the Virtual machine option&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%2Ftq9shxbpbtzybc05e4m0.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%2Ftq9shxbpbtzybc05e4m0.png" alt="Virtual Machine"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Basics&lt;/strong&gt; tab, under the &lt;strong&gt;Project details&lt;/strong&gt;, select your Azure subscription and create a &lt;strong&gt;Resource Group&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&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%2Fnxlojsqia1bnqt1lebt5.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%2Fnxlojsqia1bnqt1lebt5.png" alt="Creating a Virtual machine"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Under the &lt;strong&gt;Instance details&lt;/strong&gt;, enter the virtual machine name, the region and select the availability options and security type as well as the image (Ubuntu server 22.04 LTS- x64 Gen2).&lt;br&gt;
Next select the VM size to support the workload that you want run.&lt;br&gt;
Note that the size chosen then determines such factors as processing power, memory and storage capacity.&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%2Fufnke93pjjnkqz2xasxi.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%2Fufnke93pjjnkqz2xasxi.png" alt="Creating a Virtual machine"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Under the &lt;strong&gt;Administrator account&lt;/strong&gt;, select &lt;strong&gt;SSH public key&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter a &lt;strong&gt;username&lt;/strong&gt; in the &lt;em&gt;Username field.&lt;/em&gt; Leave the &lt;strong&gt;SSH public key source&lt;/strong&gt; to its default and enter a name for the &lt;strong&gt;Key pair name&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next are the &lt;strong&gt;Inbound port rules&lt;/strong&gt; Select &lt;strong&gt;Allow selected ports&lt;/strong&gt; and choose the &lt;strong&gt;selected inbound ports&lt;/strong&gt; which are &lt;strong&gt;HTTP (80) and SSH (22)&lt;/strong&gt; from the drop-down.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Leave the remaining default values and select &lt;strong&gt;Review + create botton&lt;/strong&gt; at the bottom of the page.&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%2Fpzo3v7f0y2yenwuzg3o1.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%2Fpzo3v7f0y2yenwuzg3o1.png" alt="Creating a VM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the &lt;strong&gt;Create a virtual machine&lt;/strong&gt; page, a summary of all the details of the VM to be created is displayed. Go ahead and click &lt;strong&gt;Create&lt;/strong&gt; when you are ready to provision the VM.&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%2Fz6zst3r97cw0czrs5ye2.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%2Fz6zst3r97cw0czrs5ye2.png" alt="Creating a VM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A &lt;strong&gt;Generate new key pair&lt;/strong&gt; window will open, select &lt;em&gt;Download private key and create resource _.&lt;br&gt;
A key will be downloaded as _(the name of the key with a .pem extension) .&lt;/em&gt; &lt;strong&gt;myKey.pem&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensure that you know where the key file is downloaded as you will need the path of the file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait for the deployment to complete then select &lt;strong&gt;Go to resource&lt;/strong&gt;.&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%2Fmny82z3x5q0hrtkua1kr.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%2Fmny82z3x5q0hrtkua1kr.png" alt="key pair"&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%2F92j2saaw1ci1v3nuk3ub.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%2F92j2saaw1ci1v3nuk3ub.png" alt="Deployment"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting to the Virtual Machine
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To create an SSH connection with the VM, from a Windows machine, open a PowerShell prompt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy the path to where you have the &lt;em&gt;.pem&lt;/em&gt; file downloaded and use the public IP address generated by the VM.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

ssh -i ~/Downloads/myKey.pem azureuser@52.233.89.56


&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%2Fl4xv349btovjj4y8to8g.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%2Fl4xv349btovjj4y8to8g.png" alt="Powershell"&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%2F2uhkm6lcblmhq0if4056.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%2F2uhkm6lcblmhq0if4056.png" alt="Powershell"&gt;&lt;/a&gt;&lt;/p&gt;


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

&lt;p&gt;Tip&lt;/p&gt;

&lt;p&gt;The SSH key you created can be used the next time you&lt;br&gt;
create a VM in Azure. Just select the Use a key &lt;br&gt;
stored in Azure for SSH public key source the next &lt;br&gt;
time you create a VM. You already have the private &lt;br&gt;
key on your computer, so you won't need to download &lt;br&gt;
anything.&lt;/p&gt;

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

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Installing a Web server&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;To see what the VM is doing, install the NGINX webserver from the SSH session and then update the package sources alongside the latest NGINX package.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the Linux commands below:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;sudo apt-get -y update&lt;br&gt;
sudo apt-get -y install nginx&lt;/code&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%2Fle0djsmhar73xejciniq.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%2Fle0djsmhar73xejciniq.png" alt="Linux command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To view the default NGINX welcome page, type the public address of the VM as the web address in a browser of your choice.&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%2Fpsk1anjkhdxti5hcdcsd.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%2Fpsk1anjkhdxti5hcdcsd.png" alt="NGINX"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleaning up resources
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Delete resources&lt;/strong&gt;&lt;br&gt;
When no longer needed, you can delete the resource group, virtual machine, and all related resources.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On the Overview page for the VM, select the Resource group link.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At the top of the page for the resource group, select Delete resource group.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A page will open warning you that you are about to delete resources. Type the name of the resource group and select Delete to finish deleting the resources and the resource group.&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%2Fhheum5kml55ukd3biazq.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%2Fhheum5kml55ukd3biazq.png" alt="Deleting resources"&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%2Fuyor981fvzhlv3r8fwk8.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%2Fuyor981fvzhlv3r8fwk8.png" alt="Deleting resources"&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%2Fjrglcs96ob0kdfywtyr2.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%2Fjrglcs96ob0kdfywtyr2.png" alt="Deleting resources"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>azure</category>
    </item>
    <item>
      <title>Creating a Windows 11 Virtual Machine in Azure. A Step-by-Step guide.</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Wed, 19 Jun 2024 07:58:39 +0000</pubDate>
      <link>https://dev.to/laoluafolami/creating-a-windows-11-virtual-machine-in-azure-a-step-by-step-guide-a48</link>
      <guid>https://dev.to/laoluafolami/creating-a-windows-11-virtual-machine-in-azure-a-step-by-step-guide-a48</guid>
      <description>&lt;h2&gt;
  
  
  Virtual Machine (VM).
&lt;/h2&gt;

&lt;p&gt;A virtual machine (VM) is an emulated or virtualized version of a physical computer that runs programmes and deploys apps using software rather than hardware.&lt;br&gt;
Businesses may operate numerous virtual machines with various operating systems on a single device by using the memory, CPU, network interface, and storage of a single physical computer.&lt;br&gt;
Assume you own a real computer, such as a desktop or laptop. Comparable to a computer within your computer is a virtual machine. It uses the hardware you already have and emulates a real computer with software. A virtual machine offers an environment that is totally separated and different from your actual computer. On a virtual machine, you may run many operating systems and programmes without compromising the functionality of your host computer. You may, for instance, build a virtual machine that runs Linux on a Windows PC and vice versa. They have a great deal of flexibility. On a single physical computer, you may build many virtual machines, each with its own operating system and set of apps. This enables you to have distinct settings for various tasks, such as experimenting with new software or applications, e.t.c.&lt;/p&gt;

&lt;p&gt;Services for cloud computing offer resources and infrastructure that are reachable and available online. Azure allows you to set up and maintain cloud-based virtual machines, so even when your local computer is powered down, your server will always be operational.&lt;/p&gt;

&lt;h2&gt;
  
  
  Azure Virtual Machines.
&lt;/h2&gt;

&lt;p&gt;Azure is an online portal that allows us to manage and access cloud services and various resources&lt;br&gt;
Azure Virtual Machines offers a range of networking capabilities and related services such as Azure Virtual Network, public and private IP addresses, network security groups, virtual private networks (VPN), and Azure ExpressRoute that enable connectivity and security and ensure high availability for your applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirements Before Creating an Azure Virtual Machine
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Create an Azure account&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The names of your resources&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The location where the resources are stored&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The size of the virtual machine&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The maximum number of virtual machines that can be created&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The operating system that the virtual machine runs(Linux/Windows)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The configuration of the virtual machine after it starts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The related resources that the virtual machine needs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The major components of an Azure virtual machine are:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Resource Group&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vm size&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Virtual Network&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Images [Ubuntu/Windows]&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Virtual Disk [ Storage ]&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%2Ftn710j58qbme31kib8ri.png" 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%2Ftn710j58qbme31kib8ri.png" alt="Azure VM Components" width="800" height="609"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Creating an Azure Virtual Machine
&lt;/h2&gt;

&lt;p&gt;There are four ways to create a VM (resource) on Azure.&lt;br&gt;
You can can employ any of the listed methods:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Azure Portal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Azure CLI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Azure PowerShell&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Azure ARM Templates&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are only looking at using the Azure portal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Provisioning a Windows 11 Virtual Machine in Microsoft Azure Portal - A Step-by-Step Guide.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;a href="https://azure.microsoft.com/en-us/get-started/azure-portal" rel="noopener noreferrer"&gt;Azure portal&lt;/a&gt; and click on "+ Create a resource"&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%2Fdfazes7cfv1faq1uz43s.png" 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%2Fdfazes7cfv1faq1uz43s.png" alt="Creating a resource in Azure" width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The popular Azure services page opens and you can select and create resources based on your project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select "Virtual machine" to create a VM&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%2Fz56h9c9ndr3qao6bz99x.png" 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%2Fz56h9c9ndr3qao6bz99x.png" alt="Azure services and market place" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From the "Basics" tab, select your subscription&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%2F3v4d3bffd6ho0mertekv.png" 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%2F3v4d3bffd6ho0mertekv.png" alt="Azure subscription" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a new Resource group by selecting "Create new" just below the subscription field, Give your Resource group a name and click on "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%2Fv2ukv6wzkzbtszgn6zju.png" 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%2Fv2ukv6wzkzbtszgn6zju.png" alt="Creating a Resource group" width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give your VM a name. When naming your VM note that Azure resource names cannot contain any special characters, whitespace, or begin with "_" or end with "." 
Select your region based on your target audience to reduce latency and to improve the end-user experience.
Select your "Availability Options" This is to build redundancy in your project - for this guide I will select "No infrastructure redundancy required". Choose your "Availability zone" and "Security type".
In the image field, select "Windows 11 Pro, version 22H2 -x64 Gen2" since we are creating a Windows 11 VM.&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%2Fijw9jupx7ynxsocaj3tf.png" 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%2Fijw9jupx7ynxsocaj3tf.png" alt="Creating a VM" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Choose your disk size based on your workload requirements from the drop down menu&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next give your Administrator account a username and password, then confirm the password. (Ensure you use a strong password for the security of your VM).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select your inbound port from the drop down menu. For this guide, I will select RDP (3389) which means Remote Deskstop Protocol which is on port 3389. This option will enable me to connect remotely to the VM.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check the "licensing" checkbox before proceeding. Azure offers both Azure-provided licenses and Bring Your Own License (BYOL) options, and staying updated on Microsoft's licensing terms is essential to ensure full compliance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next, click on "Next:Disk&amp;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%2Fvfh2m9xwb4y6l14ugyfn.png" 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%2Fvfh2m9xwb4y6l14ugyfn.png" alt="Creating a virtual machine" width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose your "OS disk size" based on your space requirements.
Next, select the "OS disk type". For better performance, you can select "Premium SSD". Leave other options as default then click on "Next: Networking&amp;gt;" to proceed.&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%2Fzvpz8cbp3pi1ahtsh3h7.png" 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%2Fzvpz8cbp3pi1ahtsh3h7.png" alt="Creating a VM" width="800" height="686"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the networking section, leave the set default parameters and select the "Next: Management&amp;gt;" button.&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%2Fz2skp7xvhayokjdsma3u.png" 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%2Fz2skp7xvhayokjdsma3u.png" alt="Creating and Azure VM" width="800" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leave all parameters on default on the management interface and select the "Next: monitoring" option at the bottom of the 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%2F7gdes1xy03klkhblfvfy.png" 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%2F7gdes1xy03klkhblfvfy.png" alt="Creating and Azure VM" width="800" height="747"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All parameters on the Monitoring page should be left as default. Then click on "Review + create&amp;gt;" to proceed.&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%2F3a2iz3btp2elx9n2r6ij.png" 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%2F3a2iz3btp2elx9n2r6ij.png" alt="Creating and Azure VM" width="739" height="892"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure will validate your VM configuration and provide the cost information of using the VM per hour and a summary of your VM configuration.
Next click on the "Create" option at the bottom of the 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%2Fg8ibn1v25ho2a1p7la9y.png" 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%2Fg8ibn1v25ho2a1p7la9y.png" alt="Validation page" width="800" height="650"&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%2Fw79xsv8ffexl7ofa83p7.png" 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%2Fw79xsv8ffexl7ofa83p7.png" alt="Summary of services page" width="800" height="766"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Windows 11 VM was successfully deployed.
Click on "Go to resource to view the newly created VM.&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%2F7yad45h79fk2b66xd7fg.png" 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%2F7yad45h79fk2b66xd7fg.png" alt="VM created successfully" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on "Connect" to establish a Remote Desktop connection (RDP).&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%2Fslglv8a9ngbfx9av29ga.png" 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%2Fslglv8a9ngbfx9av29ga.png" alt="VM details" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download the RDP file to connect to the VM using Remote Desktop Protocol (RDP).&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%2F3qsl5l6xlml8bk74uvhc.png" 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%2F3qsl5l6xlml8bk74uvhc.png" alt="RDP" width="800" height="632"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect to the VM using the username and password entered when setting up the VM.&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%2Fnprqa5bljtv7hqmqisxg.png" 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%2Fnprqa5bljtv7hqmqisxg.png" alt="Windows 11" width="800" height="464"&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%2F6a3fgbag6j5iaq5ds2jh.png" 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%2F6a3fgbag6j5iaq5ds2jh.png" alt="Windows 11" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Please comment below if this has been helpful.&lt;/em&gt;&lt;br&gt;
_&lt;/p&gt;

</description>
      <category>azure</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Core Architectural Components of Azure.</title>
      <dc:creator>Olaolu' Afolami</dc:creator>
      <pubDate>Thu, 06 Jun 2024 09:25:58 +0000</pubDate>
      <link>https://dev.to/laoluafolami/core-architectural-components-of-azure-734</link>
      <guid>https://dev.to/laoluafolami/core-architectural-components-of-azure-734</guid>
      <description>&lt;p&gt;Microsoft Azure relies on a few key architectural components to provide redundancy and high availability. The core Azure architectural components include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Azure regions, region pairs, and sovereign regions.&lt;/li&gt;
&lt;li&gt; Availability Zones.&lt;/li&gt;
&lt;li&gt; Azure Resources and Resource Groups.&lt;/li&gt;
&lt;li&gt; Subscriptions.&lt;/li&gt;
&lt;li&gt; Management groups.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Azure Regions
&lt;/h2&gt;

&lt;p&gt;A region is a geographical area on the planet that contains at least one, but potentially multiple data centers that are nearby and networked together with a low-latency network. Azure intelligently assigns and controls the resources within each region to ensure workloads are appropriately balanced.&lt;br&gt;
When you deploy a resource in Azure, you'll often need to choose the region where you want your resource deployed.&lt;/p&gt;

&lt;p&gt;The Azure region is a set of data centers that are deployed within a latency-defined perimeter, and connected via an underlying dedicated regional low-latency network. &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%2Fmuguxt5dee54a23p9n9r.png" 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%2Fmuguxt5dee54a23p9n9r.png" alt="Azure Regions" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With more than 60 Regions,  comprising 160+ data centres in 140 countries, Azure is one of the largest cloud platforms with more locations offered than any other providers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Region pairs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most Azure regions are paired with another region within the same geography (such as US, Europe, or Asia) at least 300 miles away. This approach allows for the replication of resources across a geography that helps reduce the likelihood of interruptions because of events such as natural disasters, civil unrest, power outages, or physical network outages that affect an entire region. For example, if a region in a pair was affected by a natural disaster, services would automatically fail over to the other region in its region pair.&lt;/p&gt;

&lt;p&gt;Examples of region pairs in Azure are West US paired with East US and South-East Asia paired with East Asia. Because the pair of regions are directly connected and far enough apart to be isolated from regional disasters, you can use them to provide reliable services and data redundancy.&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%2F21v6fhm58unilp7ersmk.png" 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%2F21v6fhm58unilp7ersmk.png" alt="Region pairs" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional advantages of region pairs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If an extensive Azure outage occurs, one region out of every pair is prioritized to make sure at least one is restored as quickly as possible for applications hosted in that region pair.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Planned Azure updates are rolled out to paired regions one region at a time to minimize downtime and risk of application outage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data continues to reside within the same geography as its pair (except for Brazil South) for tax- and law-enforcement jurisdiction purposes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sovereign Regions&lt;/strong&gt;&lt;br&gt;
In addition to regular regions, Azure also has sovereign regions. Sovereign regions are instances of Azure that are isolated from the main instance of Azure. You may need to use a sovereign region for compliance or legal purposes.&lt;/p&gt;

&lt;p&gt;Azure sovereign regions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;US DoD Central, US Gov Virginia, US Gov Iowa and more: These regions are physical and logical network-isolated instances of Azure for U.S. government agencies and partners. These datacenters are operated by screened U.S. personnel and include additional compliance certifications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;China East, China North, and more: These regions are available through a unique partnership between Microsoft and 21Vianet, whereby Microsoft doesn't directly maintain the datacenters.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Availability Zones.
&lt;/h2&gt;

&lt;p&gt;Availability zones are physically separate datacenters within an Azure region. Each availability zone is made up of one or more datacenters equipped with independent power, cooling, and networking. An availability zone is set up to be an isolation boundary. If one zone goes down, the other continues working. Availability zones are connected through high-speed, private fiber-optic networks.&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%2Fvwncbt80ypbwrw7smesl.png" 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%2Fvwncbt80ypbwrw7smesl.png" alt="Availability zones" width="410" height="413"&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%2Ftk3q652b7i7o85z9xgvt.png" 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%2Ftk3q652b7i7o85z9xgvt.png" alt="Image description" width="800" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use availability zones in your apps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You want to ensure your services and data are redundant so you can protect your information in case of failure. When you host your infrastructure, setting up your own redundancy requires that you create duplicate hardware environments. Azure can help make your app highly available through availability zones.&lt;/p&gt;

&lt;p&gt;You can use availability zones to run mission-critical applications and build high-availability into your application architecture by co-locating your compute, storage, networking, and data resources within an availability zone and replicating in other availability zones. Keep in mind that there could be a cost to duplicating your services and transferring data between availability zones.&lt;/p&gt;

&lt;p&gt;Availability zones are primarily for VMs, managed disks, load balancers, and SQL databases. Azure services that support availability zones fall into three categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Zonal services: You pin the resource to a specific zone (for example, VMs, managed disks, IP addresses).&lt;br&gt;
Zone-redundant services: The platform replicates automatically across zones (for example, zone-redundant storage, SQL Database).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Non-regional services: Services are always available from Azure geographies and are resilient to zone-wide outages as well as region-wide outages.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even with the additional resiliency that availability zones provide, it’s possible that an event could be so large that it impacts multiple availability zones in a single region. To provide even further resilience, Azure has Region Pairs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Azure resources and resource groups
&lt;/h2&gt;

&lt;p&gt;A resource is the basic building block of Azure. Anything you create, provision, deploy, etc. is a resource. Virtual Machines (VMs), virtual networks, databases, cognitive services, etc. are all considered resources within Azure.&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%2Fwmj9pp85w6x0clcj2nr7.png" 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%2Fwmj9pp85w6x0clcj2nr7.png" alt="Resource Groups." width="530" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resource groups are simply groupings of resources. When you create a resource, you’re required to place it into a resource group. While a resource group can contain many resources, a single resource can only be in one resource group at a time. Some resources may be moved between resource groups, but when you move a resource to a new group, it will no longer be associated with the former group. Additionally, resource groups can't be nested, meaning you can’t put resource group B inside of resource group A.&lt;/p&gt;

&lt;p&gt;Resource groups provide a convenient way to group resources together. When you apply an action to a resource group, that action will apply to all the resources within the resource group. If you delete a resource group, all the resources will be deleted. If you grant or deny access to a resource group, you’ve granted or denied access to all the resources within the resource group.&lt;/p&gt;

&lt;p&gt;When you’re provisioning resources, it’s good to think about the resource group structure that best suits your needs.&lt;/p&gt;

&lt;p&gt;For example, if you’re setting up a temporary dev environment, grouping all the resources together means you can deprovision all of the associated resources at once by deleting the resource group. If you’re provisioning compute resources that will need three different access schemas, it may be best to group resources based on the access schema, and then assign access at the resource group level.&lt;/p&gt;

&lt;p&gt;There aren’t hard rules about how you use resource groups, so consider how to set up your resource groups to maximize their usefulness for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Azure subscriptions
&lt;/h2&gt;

&lt;p&gt;In Azure, subscriptions are a unit of management, billing, and scale. Similar to how resource groups are a way to logically organize resources, subscriptions allow you to logically organize your resource groups and facilitate billing.&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%2Fikdxekm82xlk432ccc4u.png" 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%2Fikdxekm82xlk432ccc4u.png" alt="Image description" width="668" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using Azure requires an Azure subscription. A subscription provides you with authenticated and authorized access to Azure products and services. It also allows you to provision resources. An Azure subscription links to an Azure account, which is an identity in Microsoft Entra ID or in a directory that Microsoft Entra ID trusts.&lt;/p&gt;

&lt;p&gt;An account can have multiple subscriptions, but it’s only required to have one. In a multi-subscription account, you can use the subscriptions to configure different billing models and apply different access-management policies. You can use Azure subscriptions to define boundaries around Azure products, services, and resources. There are two types of subscription boundaries that you can use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Billing boundary: This subscription type determines how an Azure account is billed for using Azure. You can create multiple subscriptions for different types of billing requirements. Azure generates separate billing reports and invoices for each subscription so that you can organize and manage costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access control boundary: Azure applies access-management policies at the subscription level, and you can create separate subscriptions to reflect different organizational structures. An example is that within a business, you have different departments to which you apply distinct Azure subscription policies. This billing model allows you to manage and control access to the resources that users provision with specific subscriptions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Azure management groups.
&lt;/h2&gt;

&lt;p&gt;The final piece is the management group. Resources are gathered into resource groups, and resource groups are gathered into subscriptions. If you’re just starting in Azure that might seem like enough hierarchy to keep things organized. But imagine if you’re dealing with multiple applications, multiple development teams, in multiple geographies.&lt;/p&gt;

&lt;p&gt;If you have many subscriptions, you might need a way to efficiently manage access, policies, and compliance for those subscriptions. Azure management groups provide a level of scope above subscriptions. You organize subscriptions into containers called management groups and apply governance conditions to the management groups. All subscriptions within a management group automatically inherit the conditions applied to the management group, the same way that resource groups inherit settings from subscriptions and resources inherit from resource groups. Management groups give you enterprise-grade management at a large scale, no matter what type of subscriptions you might have. Management groups can be nested.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Management group, subscriptions, and resource group hierarchy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can build a flexible structure of management groups and subscriptions to organize your resources into a hierarchy for unified policy and access management. The following diagram shows an example of creating a hierarchy for governance by using management groups.&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%2Fsdktt8mn0qz97z3olecr.png" 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%2Fsdktt8mn0qz97z3olecr.png" alt="Management Group" width="622" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some examples of how you could use management groups might be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create a hierarchy that applies a policy. You could limit VM locations to the US West Region in a group called Production. This policy will inherit onto all the subscriptions that are descendants of that management group and will apply to all VMs under those subscriptions. This security policy can't be altered by the resource or subscription owner, which allows for improved governance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide user access to multiple subscriptions. By moving multiple subscriptions under a management group, you can create one Azure role-based access control (Azure RBAC) assignment on the management group. Assigning Azure RBAC at the management group level means that all sub-management groups, subscriptions, resource groups, and resources underneath that management group would also inherit those permissions. One assignment on the management group can enable users to have access to everything they need instead of scripting Azure RBAC over different subscriptions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Important facts about management groups:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;10,000 management groups can be supported in a single directory.&lt;br&gt;
A management group tree can support up to six levels of depth. This limit doesn't include the root level or the subscription level.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each management group and subscription can support only one parent.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
