<?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: emmilly immaculate</title>
    <description>The latest articles on DEV Community by emmilly immaculate (@maqamylee0).</description>
    <link>https://dev.to/maqamylee0</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%2F648648%2F54882bde-44d6-4261-a3db-5af51671d834.jpeg</url>
      <title>DEV Community: emmilly immaculate</title>
      <link>https://dev.to/maqamylee0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maqamylee0"/>
    <language>en</language>
    <item>
      <title>Deploying a fullstack app using terraform to provision ACR,AKS,and Azure SQL database.</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Sat, 20 May 2023 16:50:55 +0000</pubDate>
      <link>https://dev.to/maqamylee0/deploying-a-fullstack-app-using-terraform-to-provision-acraksand-ms-sql-database-2ao8</link>
      <guid>https://dev.to/maqamylee0/deploying-a-fullstack-app-using-terraform-to-provision-acraksand-ms-sql-database-2ao8</guid>
      <description>&lt;p&gt;This article shows a step by step of how i accomplished my  final project fro the She Code Africa Cloud School Program 2023.&lt;/p&gt;

&lt;p&gt;I managed to complete the project within a few days and with technologies such as Docker, Azure Container registry ,Azure kubernetes Service and Azure SQL Database.&lt;/p&gt;

&lt;p&gt;I decide to use terraform to provison the infrastructure which included :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure Container Registry&lt;/li&gt;
&lt;li&gt;Azure Kubernetes Service&lt;/li&gt;
&lt;li&gt;Azure SQL Database with sample database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PY5qzQEO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dbdq5ubwq2c7oqwsl4ik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PY5qzQEO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dbdq5ubwq2c7oqwsl4ik.png" alt="Image" width="800" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~&amp;gt; 2.65"
    }

    random = {
      source  = "hashicorp/random"
      version = "3.1.0"
    }
  }
}

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "emmilly-rg" {
  name     = "emmilly_mssql_acr_aks_rg"
  location = "South Africa North"
}

resource "azurerm_container_registry" "emmilly-acr" {
  name                = "emmillyacr"
  sku                 = "Premium"
  resource_group_name = azurerm_resource_group.emmilly-rg.name
  location            = azurerm_resource_group.emmilly-rg.location
}

resource "azurerm_kubernetes_cluster" "emmilly-k8s-cluster" {
  name                = "emmilly-aks"
  location            = azurerm_resource_group.emmilly-rg.location
  resource_group_name = azurerm_resource_group.emmilly-rg.name
  dns_prefix          = "emmilly-dns"
  public_network_access_enabled = true

  network_profile {
    network_plugin = "kubenet"
    load_balancer_sku = "standard"  
  }

  default_node_pool {
    name       = "default"
    node_count = 1
    vm_size    = "Standard_D2_v2"
  }

  identity {
    type = "SystemAssigned"
  }

  tags = {
    Environment = "Production"
  }
}
resource "azurerm_role_assignment" "enablePulling" {
  principal_id                     = azurerm_kubernetes_cluster.emmilly-k8s-cluster.kubelet_identity[0].object_id
  role_definition_name             = "AcrPull"
  scope                            = azurerm_container_registry.emmilly-acr.id
  skip_service_principal_aad_check = true
}



resource "azurerm_mssql_server" "test-server" {
  name                         = "sqltest-server-emmilly"
  resource_group_name          = azurerm_resource_group.emmilly-rg.name
  location                     = azurerm_resource_group.emmilly-rg.location
  version                      = "12.0"
  administrator_login          = "emmilly"
  administrator_login_password = "emily@256"
  minimum_tls_version          = "1.2"

}

resource "azurerm_mssql_database" "test-db" {
  name           = "sqltest"
  server_id      = azurerm_mssql_server.test-server.id
  collation      = "SQL_Latin1_General_CP1_CI_AS"
  license_type   = "LicenseIncluded"
  read_scale     = false
  sku_name       = "S0"
  zone_redundant = false
  sample_name    = "AdventureWorksLT"

  tags = {
    dev = "Production"
  }
}
output "client_certificate" {
  value = azurerm_kubernetes_cluster.emmilly-k8s-cluster.kube_config.0.client_certificate
}

output "kube_config" {
  value = azurerm_kubernetes_cluster.emmilly-k8s-cluster.kube_config_raw

  sensitive = true
}

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

&lt;/div&gt;



&lt;p&gt;So after i wrote the terraform file, i validated and applied the file using.&lt;/p&gt;

&lt;p&gt;Initialise terraform in the terminal.&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NSZmPRct--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zc7cft5g9owg9wk8avib.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NSZmPRct--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zc7cft5g9owg9wk8avib.png" alt="rinit" width="800" height="379"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0BCmSJjA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7kukkg4ydvv5vtu5u8qt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0BCmSJjA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7kukkg4ydvv5vtu5u8qt.png" alt="terraform" width="800" height="128"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;terraform apply -auto-approve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FeE-V-vM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7vqy1bqwt8c8x6fn6dtr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FeE-V-vM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7vqy1bqwt8c8x6fn6dtr.png" alt="apply" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After provisioning the resources, i could see them on my portal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CsMdbAIa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sztd1m2634wtmrnkvq3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CsMdbAIa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sztd1m2634wtmrnkvq3e.png" alt="provisioned" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next i added a docker file to my node js application and built an image from it and tag it&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker build . -t shecloud
&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;docker tag shecloud &amp;lt;loginservername/shecloud&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I_BpwPW9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5v8mte0ynkiu5k3d4rv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I_BpwPW9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o5v8mte0ynkiu5k3d4rv.png" alt="build" width="800" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check built images with&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OoRZrA1t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wzl3p2g2qs8q6pbj907.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OoRZrA1t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wzl3p2g2qs8q6pbj907.png" alt="Images" width="800" height="79"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we had to log into the regisrty using docker&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker login &amp;lt;login server name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To see your server username an password, enable the button.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LfoMDNQb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2enaqy83s84h8rml0i8m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LfoMDNQb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2enaqy83s84h8rml0i8m.png" alt="I" width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ln5Tkpw6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/79xk7tbn2oukwfpky0l9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ln5Tkpw6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/79xk7tbn2oukwfpky0l9.png" alt="login" width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--knptpvfW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5nsirzoaftok38rrx8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--knptpvfW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5nsirzoaftok38rrx8n.png" alt="login2" width="800" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To see your registry loginserver&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l7A_HBxt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8xn6cpnk5uc2njgcdfz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l7A_HBxt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8xn6cpnk5uc2njgcdfz.png" alt="reg" width="800" height="267"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker push shecloud &amp;lt;loginservername&amp;gt;/shecloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--05nRTw21--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4oh2eizdzb01g4rz3nho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--05nRTw21--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4oh2eizdzb01g4rz3nho.png" alt="push" width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After pushing, we should be able to see out image under repositories in the Azure Container registry.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DwBKxo93--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mk5w6dkgci1twl0u2vna.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DwBKxo93--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mk5w6dkgci1twl0u2vna.png" alt="registry" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next login to be able to deploy to kubernetes.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az account set --subscription xxxxxx-xxxx-xxxx-xxxxxx
&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;az aks get-credentials --resource-group &amp;lt;resource group nae&amp;gt; --name &amp;lt;aks name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OL8UhsqB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2y0ul9bda8z5wq29pyul.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OL8UhsqB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2y0ul9bda8z5wq29pyul.png" alt="credential" width="800" height="110"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get nodes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---k8ZKhjR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7f7qgzkr8jfagnob9fg2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---k8ZKhjR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7f7qgzkr8jfagnob9fg2.png" alt="nodes" width="800" height="57"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next i deployed using this yaml file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-shecloud
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-shecloud
  template:
    metadata:
      labels:
        app: azure-shecloud
    spec:
      nodeSelector:
        "kubernetes.io/os": linux
      containers:
      - name: azure-shecloud
        image: emmillyacr.azurecr.io/shecloud:latest
        env:
        - name: ALLOW_EMPTY_PASSWORD
          value: "yes"
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 3000
          name: azure-shecloud
---
apiVersion: v1
kind: Service
metadata:
  name: azure-shecloud
spec:
  type: LoadBalancer  
  ports:
  - port: 3000
  selector:
    app: azure-shecloud
---


&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; kubectl apply -f node_sql.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I1w7LkFR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0aq19kckrojsbq56zwsp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I1w7LkFR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0aq19kckrojsbq56zwsp.png" alt="yaml file" width="800" height="60"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Net to see the external ip Of the app we use&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get svc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xSUp_jzI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j3rnbv3jlbxcl8l7il4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xSUp_jzI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j3rnbv3jlbxcl8l7il4m.png" alt="service" width="800" height="84"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we move to the portal to the database server network allow ips access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4GqELEBP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ddgaca6gxhxz3a3pput.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4GqELEBP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ddgaca6gxhxz3a3pput.png" alt="ips" width="800" height="347"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;NB&lt;/strong&gt;: be sure to tick the box allowing services access server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vm50VhoK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cgl8vozh7ndt58ye9gl3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vm50VhoK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cgl8vozh7ndt58ye9gl3.png" alt="tick" width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click save to save the changes .&lt;/p&gt;

&lt;p&gt;When we check the External ip 20.87.94.72:3000&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Syf5K4nV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eb1d8xlpnpvymuybrf2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Syf5K4nV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eb1d8xlpnpvymuybrf2y.png" alt="webapp" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>azure</category>
      <category>node</category>
    </item>
    <item>
      <title>Creating a kubernetes cluster and deploying nodejs + mssql container from ACR.</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Thu, 18 May 2023 16:46:39 +0000</pubDate>
      <link>https://dev.to/maqamylee0/deploying-a-kubernetes-cluster-and-deploying-nodejs-mssql-container-from-acr-2cmd</link>
      <guid>https://dev.to/maqamylee0/deploying-a-kubernetes-cluster-and-deploying-nodejs-mssql-container-from-acr-2cmd</guid>
      <description>&lt;p&gt;So i have been told that kubernetes is called K8s(kaites).&lt;/p&gt;

&lt;p&gt;That it saves developers and operators a great deal of time and effort, and lets them focus on building features for their applications, instead of figuring out and implementing ways to keep their applications running well, at scale.&lt;/p&gt;

&lt;p&gt;So i decided to explore it today in azure.At this point a have a full stack node and mssql app in my container registry in azure.&lt;/p&gt;

&lt;p&gt;I went ahead and created a K8s cluster on azure.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3Q_A73E6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e2m4waer65bol9x1yatd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3Q_A73E6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e2m4waer65bol9x1yatd.png" alt="tree" width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oipt7RKi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2qzap4xv51exl11l2vaj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oipt7RKi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2qzap4xv51exl11l2vaj.png" alt="k8s" width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kBYZeWX5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kohnmbo930fel512aebk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kBYZeWX5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kohnmbo930fel512aebk.png" alt="create" width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e7QCrP8T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/00h8azd6sj0rdoh3u4jn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e7QCrP8T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/00h8azd6sj0rdoh3u4jn.png" alt="create" width="800" height="456"&gt;&lt;/a&gt;&lt;br&gt;
Using powershell,i set the credentials and subscription.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az account set --subscription xxx-xxxxx-xxxx-xxx--xxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download cluster credentials.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;az aks get-credentials --resource-group sqltest --name aksname
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kvV3PFbV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ievmheefd4ywsxd19kl5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kvV3PFbV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ievmheefd4ywsxd19kl5.png" alt="Ijdjdk" width="800" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To see the nodes available&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ESewVkpK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4opkv0j8jb33vnb0ooui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ESewVkpK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4opkv0j8jb33vnb0ooui.png" alt="jjdkdkd" width="800" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next is to create a yaml file for the k8s deployment.&lt;br&gt;
Using vim editor, i create a node_mssql.yaml file&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y6Bwfwz4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ly85vcxniwky4x1hpiy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y6Bwfwz4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ly85vcxniwky4x1hpiy8.png" alt="yml file" width="800" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;yaml file&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TlTOlk5D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wtitcrlec478yf0tall.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TlTOlk5D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wtitcrlec478yf0tall.png" alt="file" width="800" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now create deployment&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f nameofyamlfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ym0vON42--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x1zolgkz95i37rgpif4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ym0vON42--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x1zolgkz95i37rgpif4m.png" alt="file" width="800" height="146"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then paste the externalIP into the browser and the port exposed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://20.87.92.55:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7TfqIHvV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asqouhzsbgeiqivhpwoz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7TfqIHvV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asqouhzsbgeiqivhpwoz.png" alt="kub" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I cant believe i just did that!!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>azure</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Pushing my fullstack app image to Azure Container Registry and Deploying using Container Instance and AppService.</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Thu, 18 May 2023 09:49:33 +0000</pubDate>
      <link>https://dev.to/maqamylee0/pushing-my-image-to-azure-container-registry-jj0</link>
      <guid>https://dev.to/maqamylee0/pushing-my-image-to-azure-container-registry-jj0</guid>
      <description>&lt;p&gt;I have learnt alot, really.Recently,my cloud mentor said developers usually push and pull their images to a centralised repository.&lt;/p&gt;

&lt;p&gt;So i thought of pushing my generated image to an azure repository and try deploying my app from there.&lt;/p&gt;

&lt;p&gt;First ofcos i had to set up an azure registry to hold my repository that holds the image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ai8tDAdr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ypcjoujfl0j33hxl6cyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ai8tDAdr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ypcjoujfl0j33hxl6cyf.png" alt="azurereg" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, i left everything as default and created the registry.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6VsKkDQS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f7cic8ygfhlav3ofezvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6VsKkDQS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f7cic8ygfhlav3ofezvo.png" alt="reg" width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So creating the registry,under access keys&lt;br&gt;
we should be able to see the registry name, loginserver name and be sure to &lt;strong&gt;enable&lt;/strong&gt; the admin user to passwords.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xk0GgLwg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2asgz5ithjb38irebuw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xk0GgLwg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2asgz5ithjb38irebuw.png" alt="keys" width="800" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now back to our app,i then tag my image&lt;br&gt;
&lt;code&gt;docker tag nameofimage loginserver/nameofimage&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; docker tag node_mssql emmilyreg256.azurecr.io/node_mssql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VnlUs9-s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6o4u1o63f71nvfw5sf06.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VnlUs9-s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6o4u1o63f71nvfw5sf06.png" alt="docker" width="800" height="102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before we login, we have to login using the admin details in the access keys in the registry.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker login {loginserver}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then enter the username and password&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y6UxKkHJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zv9jde1duuu66vyvg42p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y6UxKkHJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zv9jde1duuu66vyvg42p.png" alt="docker" width="800" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next its time to push the image to the registry&lt;br&gt;
&lt;code&gt;docker push loginservername/nameofimage&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker push emmilyreg256.azurecr.io/node_mssql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_BhmD37r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hggyk0m5xod1pbt4iiyv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_BhmD37r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hggyk0m5xod1pbt4iiyv.png" alt="after" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So after pushing , we can see our image in the docker registry in the portal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QZBHW5ib--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uhs6cl2cm5c851r7dzzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QZBHW5ib--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uhs6cl2cm5c851r7dzzw.png" alt="portal" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IGuIfhCh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dljo0pia4f3wlzny6z10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IGuIfhCh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dljo0pia4f3wlzny6z10.png" alt="image" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now what do to with this image. Leme check the slides and do something cool next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YfA3J8Gx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scj8e0dp3rbxjqklgbq2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YfA3J8Gx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scj8e0dp3rbxjqklgbq2.png" alt="im" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Turns out i can either run the instance or create a web app.&lt;br&gt;
First i tried creating a web app.&lt;br&gt;
So clicking create webapp leads me to where i can fill details of the web app&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KPM6W52I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9rvgo78utbcq48y0gd0w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KPM6W52I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9rvgo78utbcq48y0gd0w.png" alt="webapp" width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we add the database connection string, be sure to include your password in the string.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a5cx688V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysfzdlyimrbrgpa1ny57.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a5cx688V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysfzdlyimrbrgpa1ny57.png" alt="I" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After saving, then check the domain link for the web app.&lt;br&gt;
It should be up and running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T85ehDGH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gunqph2upal8oohxxpp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T85ehDGH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gunqph2upal8oohxxpp0.png" alt="web app" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now if i try creating the instance,&lt;br&gt;
i click on &lt;strong&gt;run instance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0kHrszGy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6grvevs3xtxgf3jzigcf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0kHrszGy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6grvevs3xtxgf3jzigcf.png" alt="run" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember to use the port number that you exposed when building the docker files your tcp.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uJDtO80f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pgwydgugugtejn7minh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uJDtO80f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pgwydgugugtejn7minh.png" alt="repo" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After deploying,pick the public ip address an add your port to see the website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eFYZtEtG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ltmkgi67kdur5f1oskm1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eFYZtEtG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ltmkgi67kdur5f1oskm1.png" alt="public" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So now i can create images, push them to registry and deploy them using container instances.&lt;/p&gt;

&lt;p&gt;Wow i can't believe this.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>docker</category>
      <category>devops</category>
    </item>
    <item>
      <title>Containerising a fullstack Nodejs + mssql app and running it locally.</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Thu, 18 May 2023 08:20:30 +0000</pubDate>
      <link>https://dev.to/maqamylee0/containerising-a-fullstack-nodejs-mssql-app-and-running-it-locally-565d</link>
      <guid>https://dev.to/maqamylee0/containerising-a-fullstack-nodejs-mssql-app-and-running-it-locally-565d</guid>
      <description>&lt;p&gt;In the she code Africa Cloud School program,&lt;br&gt;
We recently learnt about Containerisation and how important it is in the software development lifecycle, especially in regards to environment related errors such as various versions of runtimes installed on machines.&lt;/p&gt;

&lt;p&gt;So i decided why not make an image out of my full stack web application and push the image to the registry then later deploy the app.&lt;/p&gt;

&lt;p&gt;For starters i know that i have to define a Dockerfile that defines the environment my app should run in.&lt;/p&gt;

&lt;p&gt;Inside the docker file, we add &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the runtime which will be nodejs 16 though we can use a lightweight image which is lts-alpine.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM node:lts-alpine

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

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;then create a working directory to store our app in the image.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WORKDIR /usr/src/app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;next we copy our package.json file into that working directory
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;COPY package*.json ./
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;then we install the dependencies using the RUN command
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;RUN npm install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;we can now copy the application code into the directory
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;COPY . .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Then we can now expose the port on our container that will allow us to connect to the web app.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EXPOSE 3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Then to build the application
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx tsc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Finally, we set the command to run the application.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CMD [ "node", "start" ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qSoI1LbS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1aaweh1zlr11ogcq8dlx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qSoI1LbS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1aaweh1zlr11ogcq8dlx.png" alt="dockerising" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we create a dockerignore file to prevent copying some resources into our application such as node_modules.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--liX61UGQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b947twm1ccktzetr0wsq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--liX61UGQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b947twm1ccktzetr0wsq.png" alt="docker ignore" width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now its time to build our image usign docker build with an image name as mssql_nodejs_app&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Building....&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LLRzB3Al--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dka6q1pt96q314b55ye7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LLRzB3Al--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dka6q1pt96q314b55ye7.png" alt="build" width="800" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the build finishes, to see our image we use&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lJYktuGK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/okdr5ot079kk49ddmlql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lJYktuGK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/okdr5ot079kk49ddmlql.png" alt="docker" width="800" height="75"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To run the application locally,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d -p 3000:3000 node_mssql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the -d represents running it in background and prints container id&lt;br&gt;
the -p represents the port number the container exposes to localhost in this case port 3000 (the second)on container is bound to port 3000(the first) on local host.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EWhfY5Ka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gqi8ejdr0svwoxmj9jsi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EWhfY5Ka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gqi8ejdr0svwoxmj9jsi.png" alt="binding" width="800" height="45"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After this our app should be visible on localhost 3000&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Hflh7US--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5pkktycd1zz1zq8l4gt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Hflh7US--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5pkktycd1zz1zq8l4gt4.png" alt="run" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So after building this container image, i am now thinking of pushing it to the container registry in azure and create an app service with it.&lt;/p&gt;

&lt;p&gt;Super excited!!!!!!!!!!!!!!!!!&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>containers</category>
      <category>azure</category>
    </item>
    <item>
      <title>Deploying an MSSQL + Node Js Application to Azure App Service.</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Wed, 17 May 2023 10:14:42 +0000</pubDate>
      <link>https://dev.to/maqamylee0/deploying-an-mssql-node-js-application-to-azure-app-service-1j33</link>
      <guid>https://dev.to/maqamylee0/deploying-an-mssql-node-js-application-to-azure-app-service-1j33</guid>
      <description>&lt;p&gt;After this part, i felt like I deserve this shirt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dy5vugr8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2y5u0q6ex4g64exkuae.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dy5vugr8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2y5u0q6ex4g64exkuae.jpeg" alt="devops" width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now i am really curious about this part, ofcourse i know how to deploy an appservice.&lt;/p&gt;

&lt;p&gt;But this is not just a simple app with only frontend, so i  am wondering how the database connection will be made if it is deployed through the app service.&lt;/p&gt;

&lt;p&gt;Question is if i deploy the app currently using github, will the data show?&lt;br&gt;
so lets try to deploy the app using app service.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First i pushed my code to github.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.Create app service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cEnEMMjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uka582h54o8ymafr0n91.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cEnEMMjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uka582h54o8ymafr0n91.png" alt="create app" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next is  choosing a resource group and giving it a name then choosing the option to use in this case code.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--65VbcUN4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u9khzuok2hrj00h8y4yz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--65VbcUN4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u9khzuok2hrj00h8y4yz.png" alt="choose" width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we need to choose the runtime stack which in our case is nodejs, the pricing plan and region.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MccOf2X3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1dez68sewcz56qyxmyvk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MccOf2X3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1dez68sewcz56qyxmyvk.png" alt="choose" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we choose github actions,and click the &lt;strong&gt;authorise&lt;/strong&gt; &lt;strong&gt;button&lt;/strong&gt;  to authorise azure to access your github account.&lt;br&gt;
Then select the repository, branch and organisation.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zSUWOujj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bwp0qbxgz42622j2t7sf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zSUWOujj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bwp0qbxgz42622j2t7sf.png" alt="github" width="800" height="661"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;leave the network as default,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CrDl0Vbw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x6ib115x97cs91hzrcs2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CrDl0Vbw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x6ib115x97cs91hzrcs2.png" alt="network" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Skip and leave the rest as default and click create.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pKs0cS0A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z5n6jke8amu3mwnnpg0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pKs0cS0A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z5n6jke8amu3mwnnpg0a.png" alt="create" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We then wait a few(lots)  minutes for it to deploy and check our app link.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i7zmKqpe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/usvjzktnw08qsdqz7tke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i7zmKqpe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/usvjzktnw08qsdqz7tke.png" alt="deply" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;okay seriously that took alot of time. I slept on it.&lt;br&gt;
Turns out we have to set a connection string and app variables.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ftugfhvn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cues8kpw6iypa357llop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ftugfhvn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cues8kpw6iypa357llop.png" alt="non" width="800" height="301"&gt;&lt;/a&gt;&lt;br&gt;
Adding connection strings to the app service.&lt;/p&gt;

&lt;p&gt;Go to your sql database under the &lt;strong&gt;connection string&lt;/strong&gt; tab and look for the one that suits your app environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ewczWiyR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ylcmuh3yn9pxtlufozq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ewczWiyR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ylcmuh3yn9pxtlufozq7.png" alt="string" width="800" height="248"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next i went to the app service under the configuration tab  and added my connection string as well as my environment variables.&lt;br&gt;
Add the connection string.Be sure to replace your &lt;strong&gt;password&lt;/strong&gt; within the string.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HRqF5kgT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0zm6x6nppfu6y0cfyy6p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HRqF5kgT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0zm6x6nppfu6y0cfyy6p.png" alt="connection string" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally it should look like this.The environmental variables should match those used in your app.&lt;br&gt;
e.g &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pLk0cQ9A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u89blsqqvyugxkncp1k2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pLk0cQ9A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u89blsqqvyugxkncp1k2.png" alt="env" width="239" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iEE8fK73--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/py20qreavbki48y8j26f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iEE8fK73--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/py20qreavbki48y8j26f.png" alt="vars" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After all this struggle, ladies and gettlemen, i managed to deploy rightly.And the app was app and running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wZW6164O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/flfs8q02ee1w5qdp4nl6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wZW6164O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/flfs8q02ee1w5qdp4nl6.png" alt="final" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>devops</category>
    </item>
    <item>
      <title>Connecting Node Js App to Azure MSSQL database. Part 3</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Tue, 16 May 2023 17:47:07 +0000</pubDate>
      <link>https://dev.to/maqamylee0/connecting-node-js-app-to-azure-mssql-database-part-3-1n5e</link>
      <guid>https://dev.to/maqamylee0/connecting-node-js-app-to-azure-mssql-database-part-3-1n5e</guid>
      <description>&lt;p&gt;Now its time to do the most exciting parts,connect our nodejs app to our database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kM4hSEZW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rijpf6b5c3df3cr39cxz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kM4hSEZW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rijpf6b5c3df3cr39cxz.png" alt="connect" width="318" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First, i set up a basic node js + express app then added typescript.&lt;/p&gt;

&lt;p&gt;1.Make a project directory&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;2.Move into that directory&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;3.Create package.json file&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;4.Use an express generator for the general app structure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g express-generator-typescript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5.Next we need to get our connection credentials and connect to the database and make a query.&lt;br&gt;
Here we have our config object which we shall use in our route file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gwSzKIGS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/meggjbg700fregd9ueao.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gwSzKIGS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/meggjbg700fregd9ueao.png" alt="credentials" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iYZqjk0_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ivbv25wkydj0imxd29ca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iYZqjk0_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ivbv25wkydj0imxd29ca.png" alt="route file" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here,i placed my credentials within an env file for security purposes.All needed credentials are &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;username&lt;/li&gt;
&lt;li&gt;password&lt;/li&gt;
&lt;li&gt;server name&lt;/li&gt;
&lt;li&gt;database name&lt;/li&gt;
&lt;li&gt;a port number&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6.Next, in the routes i set up a query that is returned on loading the home page.And pass the data to the index.ejs page.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b71eFu4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3afk7glrcptabg1at8av.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b71eFu4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3afk7glrcptabg1at8av.png" alt="on" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The index.ejs file then gets the data and populates the page.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rP0BB2d---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jj1r76y0oxj9j52u233.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rP0BB2d---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jj1r76y0oxj9j52u233.png" alt="html" width="800" height="575"&gt;&lt;/a&gt;&lt;br&gt;
For simplicity,the app.ts file has the basic running server and the db connection is basically done in the routes file.&lt;/p&gt;

&lt;p&gt;So i did not make much use of the controllers to save time.&lt;br&gt;
With this, we can now start our app with npm start.And voila the app data is seen.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--US-Lf-sC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zmw6t3jt8zf6j97jqwuk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--US-Lf-sC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zmw6t3jt8zf6j97jqwuk.png" alt="data" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, i am thinking of deploying this as an app service.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>mssql</category>
    </item>
    <item>
      <title>Connecting a Node Js app to Azure MSSQL database. Part 2</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Tue, 16 May 2023 17:08:06 +0000</pubDate>
      <link>https://dev.to/maqamylee0/connecting-a-node-js-app-to-azure-mssql-database-part-2-2ieb</link>
      <guid>https://dev.to/maqamylee0/connecting-a-node-js-app-to-azure-mssql-database-part-2-2ieb</guid>
      <description>&lt;p&gt;In this part, i will walk through how to &lt;strong&gt;connect&lt;/strong&gt; a microsoft Azure Data Studio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To download Azure Data Studio&lt;/strong&gt;,click &lt;a href="https://learn.microsoft.com/en-us/sql/azure-data-studio/download-azure-data-studio"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open Microsoft &lt;strong&gt;Azure Data Studio&lt;/strong&gt; on your computer, Click connect and fill the neccessary fields.&lt;/p&gt;

&lt;p&gt;We need to fill 3 fields,&lt;br&gt;
1.Server's name which can be found on the azure portal&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--auP3a5yr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ej14jvwxl3ktid1t9q9g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--auP3a5yr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ej14jvwxl3ktid1t9q9g.png" alt="server" width="714" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Username which is the login username we set for the server.&lt;br&gt;
3.Password which is the password we set up for the server.&lt;/p&gt;

&lt;p&gt;Once we click the connect button,assuming all the details are correct, then we should be able to see the various tables inside the database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bymop9Oe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8llyqxnd04p2msef7xkp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bymop9Oe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8llyqxnd04p2msef7xkp.png" alt="tables" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can create a new sql file using Ctrl + N.&lt;br&gt;
So i am going to make a query that i wish to display as well at the end after connecting the database to the application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c5aO1BNd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvjqe7pv28wpydhurdri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c5aO1BNd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvjqe7pv28wpydhurdri.png" alt="select" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we shall connect our node js app to our database in part 3&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>azure</category>
      <category>microsoftazurestudio</category>
    </item>
    <item>
      <title>Connecting a Node Js app to Azure MS-SQL server. Part 1</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Tue, 16 May 2023 15:50:23 +0000</pubDate>
      <link>https://dev.to/maqamylee0/connecting-a-node-js-app-to-azure-ms-sql-server-part-1-3g5p</link>
      <guid>https://dev.to/maqamylee0/connecting-a-node-js-app-to-azure-ms-sql-server-part-1-3g5p</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MDwA2l4V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p7rdtkvkkbsnscynqq5g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MDwA2l4V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p7rdtkvkkbsnscynqq5g.jpg" alt="Azure" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So after learning alot about the azure databases options in my cloud school,i wanted to create something cool with them.&lt;/p&gt;

&lt;p&gt;Being a developer, i decided to try connecting a nodejs application to a MSSQL database.&lt;/p&gt;

&lt;p&gt;So my goal was to see data from my on website.Preferably in a table like this.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UcmNrD-O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kc7lct9yeyov48my6wcx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UcmNrD-O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kc7lct9yeyov48my6wcx.png" alt="table data" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt; i had to set up an &lt;strong&gt;SQL Database&lt;/strong&gt; in Azure which i will focus on in this part.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt; i had to create a &lt;strong&gt;nodejs&lt;/strong&gt; &lt;strong&gt;application&lt;/strong&gt;.I decided to use express.js, typescript and ejs.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JyOZ2ro5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ecb11fmn8q0xw1shn1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JyOZ2ro5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ecb11fmn8q0xw1shn1x.png" alt="Project Structure" width="312" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So to get started setting up an SQL database,&lt;br&gt;
Step 1: Search for SQL Database&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kNpbdbsx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9y59gh0dlw7fe273i8a6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kNpbdbsx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9y59gh0dlw7fe273i8a6.png" alt="Search" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Tap the create button at the far left.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hNOYc5s_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o325pg6wmatdnk40lx5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hNOYc5s_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o325pg6wmatdnk40lx5i.png" alt="Tap create" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Next select a resource group to manages all your resources for the service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qYPJfWWv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/psr0wty1cessym1g30ya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qYPJfWWv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/psr0wty1cessym1g30ya.png" alt="Resource group" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 4: Now it is time to add a database name and create or choose an SQL server to run the database on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N10qpy_V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqmwdc5jdvnr0xpbpfxs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N10qpy_V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqmwdc5jdvnr0xpbpfxs.png" alt="Choose server" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 5: Creating a server involves giving a name and choosing the authentication option to log into it.&lt;br&gt;
Make sure to keep the credentials for later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--80UZIYLh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ljrbrtz6qx8c96cp2iyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--80UZIYLh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ljrbrtz6qx8c96cp2iyi.png" alt="Server" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 6: Next select the backup option&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DrzLv1r8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hycy4gu6tuvvjbdydl3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DrzLv1r8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hycy4gu6tuvvjbdydl3u.png" alt="Choose server" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 7: Next we are choosing the network options as below to allow us to connect to the server.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tz5cL4oJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k7yxf9ol3o97ktbxcukn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tz5cL4oJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k7yxf9ol3o97ktbxcukn.png" alt="network" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 8: Next we can leave these as defaults and move to security&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--04Xp0w4F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c40pezn2pmw1mq4kdvzm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--04Xp0w4F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c40pezn2pmw1mq4kdvzm.png" alt="defaults" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 9: Next we shall choose to use a sample database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--16Kz15aB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/za319ynubm6whu7gkpvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--16Kz15aB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/za319ynubm6whu7gkpvo.png" alt="Choose sample" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 10: Click the create button&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jtEShDT8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ckohh6po76suvyxth3s8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jtEShDT8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ckohh6po76suvyxth3s8.png" alt="Create" width="629" height="721"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we shall open microsoft Azure Studio and connect to to the created Database in Part2.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Creating an Azure App Service Using Azure CLI</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Mon, 15 May 2023 17:56:13 +0000</pubDate>
      <link>https://dev.to/maqamylee0/creating-an-azure-app-service-using-azure-cli-40ic</link>
      <guid>https://dev.to/maqamylee0/creating-an-azure-app-service-using-azure-cli-40ic</guid>
      <description>&lt;p&gt;1.Log into your azure cli using&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;2.Next we shall create an azure resource group for our web app resources.&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%2Fzhfefw2ki7cyg2pftepu.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%2Fzhfefw2ki7cyg2pftepu.png" alt="resource group"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Now to create an app service use&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz1gj2ckq1dd0xvrma5ap.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%2Fz1gj2ckq1dd0xvrma5ap.png" alt="create app service"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;--plan - to specify the azure web app plan name&lt;/li&gt;
&lt;li&gt;--to specify the resource group&lt;/li&gt;
&lt;li&gt;--is-linux - to specify os to run web app service on&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.To publish code first, we need to create a deployment user.&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%2Fjgz65rrr5dp36sxp77gd.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%2Fjgz65rrr5dp36sxp77gd.png" alt="create user"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user-name - username&lt;/li&gt;
&lt;li&gt;password - the password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5.Then we have to check the available runtimes depending on the language of the web app.&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%2Fmpy3p9qiimhb9zh7w4su.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%2Fmpy3p9qiimhb9zh7w4su.png" alt="run times list"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.Now, lets try to ceate the web app using &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%2Folpyrhna0nry0o4osvt5.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%2Folpyrhna0nry0o4osvt5.png" alt="create web app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;--plan - specify the name of app service plan &lt;/li&gt;
&lt;li&gt;--name - to specify the name of web app&lt;/li&gt;
&lt;li&gt;--resource-group - the resource group&lt;/li&gt;
&lt;li&gt;--deployment-container-image-name - to specify web server to run web app on.&lt;/li&gt;
&lt;li&gt;--deployment-local-git -enable use of git repository&lt;/li&gt;
&lt;li&gt;--runtime - to specify the runtime for the web app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;this should return a url &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%2F2t1hpnh0wpb8r409kir5.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%2F2t1hpnh0wpb8r409kir5.png" alt="url"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Curently the web app url shows the default nginx because we have deployed the code yet.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fok6k19wtgc2iyc49z56b.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%2Fok6k19wtgc2iyc49z56b.png" alt="nginx default page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.We are now going to add this url as a remote to our github project.&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%2F7ql92qt7xvq6mnrdhq69.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%2F7ql92qt7xvq6mnrdhq69.png" alt="add remote"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.Next we are going to push the code to the azure repository.&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%2Flhg5tcn3efznxdhrfb06.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%2Flhg5tcn3efznxdhrfb06.png" alt="push"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;.Add the deployment user password.&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%2Fe6o506nqdr21ohx5sr6f.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%2Fe6o506nqdr21ohx5sr6f.png" alt="password"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>azure</category>
      <category>cli</category>
    </item>
    <item>
      <title>Provisioning an Azure VM using AZURE CLI</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Sat, 06 May 2023 22:01:32 +0000</pubDate>
      <link>https://dev.to/maqamylee0/provisioning-an-azure-vm-using-azure-cli-3d07</link>
      <guid>https://dev.to/maqamylee0/provisioning-an-azure-vm-using-azure-cli-3d07</guid>
      <description>&lt;p&gt;NB. Cover picture credit to Varonis&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mSuO2ZdI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q4jq6hvid3q98kd71rex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mSuO2ZdI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q4jq6hvid3q98kd71rex.png" alt="definition" width="800" height="394"&gt;&lt;/a&gt;&lt;br&gt;
Alright, so being a software developer, i definately prefer cli to clicking through various interfaces.&lt;br&gt;
So this is how i have decided to navigate through the Azure Portal.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First we shall download Azure cli on ubuntu using&lt;br&gt;
&lt;code&gt;curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next we shall log into azure using &lt;br&gt;
&lt;code&gt;az login&lt;/code&gt; .&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To verify that we have logged we shall type &lt;br&gt;
&lt;code&gt;az account show&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;First we shall create a resource group by specifying the name and location of the resource group using &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KObVB7YH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dt92mejxefh4bddn4cdq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KObVB7YH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dt92mejxefh4bddn4cdq.png" alt="create resource group" width="800" height="60"&gt;&lt;/a&gt;&lt;br&gt;
This should show&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---C0c9nSe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vuv52nymj20g8bir4qv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---C0c9nSe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vuv52nymj20g8bir4qv.png" alt="result of resource group creation" width="800" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Next, we shall create a VM using&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nc94WOnE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b1mjt5dti8vkoolqg7kl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nc94WOnE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b1mjt5dti8vkoolqg7kl.png" alt="create vm" width="800" height="66"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;--name - specify the name of the vm&lt;/li&gt;
&lt;li&gt;--resource-group - to specify the name of the resource group&lt;/li&gt;
&lt;li&gt;-- image - to specify the operating system to install on the vm&lt;/li&gt;
&lt;li&gt;--admin-username - to specify the username to use to log into the the vm&lt;/li&gt;
&lt;li&gt;--generate-ssh-keys - to genrate ssh keys
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ip5rIM4Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zv8nd2i8crqwlih3o31k.png" alt="create vm result" width="800" height="148"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;6.To log into the vm, we shall use ssh, our ip address and the admin username.&lt;br&gt;
ie ssh testadmin@public_ip_address_of_vm&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fSp9mqW8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0r3w6ilkjgsah4n4kdsm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fSp9mqW8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0r3w6ilkjgsah4n4kdsm.png" alt="loginto vm" width="800" height="373"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;7.Lastly to delete the resources, we shall delete the resource group we have created.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First use Ctrl + D to jump out of the ubuntu vm.&lt;/li&gt;
&lt;li&gt;Then use 
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nOvJpEtx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w2jeor1o5ffyv35c386c.png" alt="delete resource group" width="800" height="69"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;voila.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cli</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Hosting a static web app on Azure.</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Fri, 14 Apr 2023 12:42:26 +0000</pubDate>
      <link>https://dev.to/maqamylee0/hosting-a-static-web-app-on-azure-3af6</link>
      <guid>https://dev.to/maqamylee0/hosting-a-static-web-app-on-azure-3af6</guid>
      <description>&lt;p&gt;We shall go over how to host a custom web app on azure platform.&lt;/p&gt;

&lt;p&gt;We assume that we have our code is on github.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVcvEHHr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xw27t80mjotx58t8uqb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZVcvEHHr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xw27t80mjotx58t8uqb.png" alt="Github code" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we head over to the Azure platform login in and search for the Static Web App service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bXR3V02P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rjlvfzn2b2vngdecphnm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bXR3V02P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rjlvfzn2b2vngdecphnm.png" alt="Search static web app" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the service is loaded, click create.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fm8jEU9z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ynpzmsgm00dq4zb0vs8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fm8jEU9z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ynpzmsgm00dq4zb0vs8j.png" alt="create app" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then start filling in neccessary information about your app such as resource group it belongs to.Here we shall create one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q_8VLpRr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7r4pcherpts7iicdb3fx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q_8VLpRr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7r4pcherpts7iicdb3fx.png" alt="Resource group" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we shall name our app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OFqIeExQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sk9beqknu8rj7i9ig933.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OFqIeExQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sk9beqknu8rj7i9ig933.png" alt="Name" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next we shall choose free hosting, and github as our deployment source.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E7RtRGgo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8hyngjlf41ezo4mn5gwv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E7RtRGgo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8hyngjlf41ezo4mn5gwv.png" alt="Options" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we shall grant access to github by clicking sign into github.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HC7mDPx5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vak5mu5ky16lho4owln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HC7mDPx5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vak5mu5ky16lho4owln.png" alt="Github sign in" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once github has access it will look like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PLkoO0gJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wff5bujq0ri8s1blll0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PLkoO0gJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wff5bujq0ri8s1blll0.png" alt="Access to github" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now its time to indicate where our index.html file is located.In my case the root folder so i will use a slash.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BwS7yXnc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkv57sn0plckycavtgnz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BwS7yXnc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gkv57sn0plckycavtgnz.png" alt="Locate index.html" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally lets preview our app settings by clicking preview and finally click create. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Lngxr-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pw04ar0yr09hc3f7vwhx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Lngxr-6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pw04ar0yr09hc3f7vwhx.png" alt="Preview" width="800" height="754"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give it some 3 minutes and we shall have our page ready to view.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RlNxRmSg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u2647ya6vgaatmlai5pn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RlNxRmSg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u2647ya6vgaatmlai5pn.png" alt="Resource" width="800" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next click on the go to resource and you can see the URL link to the web app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rMJXWUub--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hluac8h8glv4rveazhp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rMJXWUub--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hluac8h8glv4rveazhp8.png" alt="Resource" width="800" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then you will see the hosted web application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K-cMfXQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b9w1ovr3nc75yfitouig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K-cMfXQj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b9w1ovr3nc75yfitouig.png" alt="Web app" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>staticwebapps</category>
      <category>cloud</category>
      <category>devops</category>
    </item>
    <item>
      <title>Create a Windows Instance using AWS EC2.</title>
      <dc:creator>emmilly immaculate</dc:creator>
      <pubDate>Fri, 07 Apr 2023 10:44:14 +0000</pubDate>
      <link>https://dev.to/maqamylee0/create-a-windows-instance-using-aws-ec2-2e09</link>
      <guid>https://dev.to/maqamylee0/create-a-windows-instance-using-aws-ec2-2e09</guid>
      <description>&lt;p&gt;So if you ever want to have a windows computer in the cloud.How would you set it up.&lt;/p&gt;

&lt;p&gt;We shall use Remote Desktop Client to log into our instance in this article.&lt;/p&gt;

&lt;p&gt;Step 1: Log into your AWS Account and search for EC2 service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XPJpswJe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/shmypm1gexwaqq6blemg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XPJpswJe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/shmypm1gexwaqq6blemg.png" alt="Search ec2" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Click the orange "launch instance" button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9hEgecdu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jl2h27sqlbvp6iveljf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9hEgecdu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jl2h27sqlbvp6iveljf0.png" alt="click launch instance" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 3: Fill in the name of your instance, say "testInstance".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9ISRj8Ox--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vmgxrea8jsx4gloyvmgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9ISRj8Ox--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vmgxrea8jsx4gloyvmgg.png" alt="click create key pair" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a key pair and download it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NPFcEYDk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fdel39igdj6uf0um5uqq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NPFcEYDk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fdel39igdj6uf0um5uqq.png" alt="create key pair" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add name of key pair and click "Create key pair".This will download the key pair file to your computer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zS6qMvQA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/agqe3325101cgpzzo0jo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zS6qMvQA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/agqe3325101cgpzzo0jo.png" alt="add nae of key pair and click create" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 4: Now head over to the bottom and click "Launch Instance"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ht_T_yaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nu5mjzelb8haxa53jqbo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ht_T_yaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nu5mjzelb8haxa53jqbo.png" alt="click launch instance" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Success message for launch instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a1lSITQ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3cg28197ircf5k417o12.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a1lSITQ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3cg28197ircf5k417o12.png" alt="success launch" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 5: Click on the instance link and it should lead you to the Instance page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GtgGF-Ij--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0xt2h9gkh3gckemnbdb6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GtgGF-Ij--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0xt2h9gkh3gckemnbdb6.png" alt="Click instance link provided" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 6: Click the "connect" button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HQv4Y1AX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ckxhymm2neoat6epesm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HQv4Y1AX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ckxhymm2neoat6epesm.png" alt="connect button " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 7: Choose Connect with "RDP Client" and download the remote desktop file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--blNLO81a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3n8v5bg2w4842jwxxexy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--blNLO81a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3n8v5bg2w4842jwxxexy.png" alt="Choose RDP client" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 8: Double click the downloaded rdp file to launch your local RDP Client in my case Remmina on ubuntu. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy and paste the public DNS into the input and Click Enter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dtPRTAnS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pzowxna389fv55diovfx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dtPRTAnS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pzowxna389fv55diovfx.png" alt="copy public DNS" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click Yes to Accept certificate.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QLCWX4eH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ntb0fe7bbt9yycln0s6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QLCWX4eH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ntb0fe7bbt9yycln0s6.png" alt="Yes to accept certificate" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Next, we need to enter the fields for username and password.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S228yOx3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/480os6t4int4j9xp37u7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S228yOx3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/480os6t4int4j9xp37u7.png" alt="rdp fields to fill" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go back to AWS console and copy the username provided usually "Administrator" then click the get password button.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hty9GCQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gpbp6obzr47s6sootixd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hty9GCQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gpbp6obzr47s6sootixd.png" alt="copy username and get password" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload your key pair that was downloaded to your pc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A4IOvvMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x7f28qacftak5anbgpou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A4IOvvMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x7f28qacftak5anbgpou.png" alt="upload key pair" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose key pair.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YTKyHrLA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bpbszj1ygjtpokwjn1hn.png" alt="choose key pair" width="800" height="355"&gt;
&lt;/li&gt;
&lt;li&gt;Click decrypt key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BMtfw84A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ch0e0vr5qn9njkji0p8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BMtfw84A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ch0e0vr5qn9njkji0p8.png" alt="decrypt lkey pair" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 9: Copy the password into the RDP client.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9gxG-o_U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6xzwk3sal6kx8mkn36m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9gxG-o_U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6xzwk3sal6kx8mkn36m.png" alt="copy password into rdp" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4zC1TZZd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fuw9e0zv6o5ddgtx5u61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4zC1TZZd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fuw9e0zv6o5ddgtx5u61.png" alt="copy password" width="800" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 10: Click "ok" or "Connect" depending on your client.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2PlAj26q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5vh808chsx0z2629vt6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2PlAj26q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5vh808chsx0z2629vt6a.png" alt="Click ok" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voila! We have set up a Windows Instance and logged into it.&lt;/p&gt;

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