<?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: BENEDICT OKAFOR</title>
    <description>The latest articles on DEV Community by BENEDICT OKAFOR (@benn1440).</description>
    <link>https://dev.to/benn1440</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%2F861435%2Fe218efa7-72d5-4869-a24c-10d365d014c3.jpeg</url>
      <title>DEV Community: BENEDICT OKAFOR</title>
      <link>https://dev.to/benn1440</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benn1440"/>
    <language>en</language>
    <item>
      <title>Multi-Environment GCP Web Application Infrastructure with Auto-Scaling</title>
      <dc:creator>BENEDICT OKAFOR</dc:creator>
      <pubDate>Wed, 27 Aug 2025 22:22:35 +0000</pubDate>
      <link>https://dev.to/benn1440/multi-environment-gcp-web-application-infrastructure-with-auto-scaling-2gf9</link>
      <guid>https://dev.to/benn1440/multi-environment-gcp-web-application-infrastructure-with-auto-scaling-2gf9</guid>
      <description>&lt;p&gt;This comprehensive guide outlines the implementation of a multi-environment web application infrastructure with Auto-Scaling on Google Cloud Platform (GCP).&lt;/p&gt;

&lt;h3&gt;
  
  
  GCP Services we would be provisioning
&lt;/h3&gt;

&lt;h5&gt;
  
  
  References to Google Docs &lt;a href="https://cloud.google.com/docs" rel="noopener noreferrer"&gt;https://cloud.google.com/docs&lt;/a&gt;
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;VPC - Google Cloud Virtual Private Cloud (VPC) provides networking functionality to Compute Engine virtual machine (VM) instances, Google Kubernetes Engine (GKE) containers, and serverless workloads. VPC provides networking for your cloud-based services that is global, scalable, and flexible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A Virtual Private Cloud (VPC) network is a virtual version of a physical network that is implemented inside of Google's production network. and its associated resources for networking, i.e., LoadBalancer, Internet gateway, security groups, firewalls, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Virtual machine instances: A Compute Engine virtual machine (VM) instance is a virtual machine that is hosted on Google's infrastructure. and its associated resources for computing, i.e., Managed instance Group, Launch Templates, Autoscaling Groups, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Database: Cloud SQL for MySQL is a fully-managed database service that helps you set up, maintain, manage, and administer your MySQL relational databases on Google Cloud Platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cloud Monitoring collects metrics, events, and metadata from Google Cloud, synthetic monitors, and application instrumentation. Cloud Monitoring ingests that data and generates insights with dashboards, charts, and alerts. [&lt;a href="https://cloud.google.com/stackdriver/docs" rel="noopener noreferrer"&gt;https://cloud.google.com/stackdriver/docs&lt;/a&gt;]&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Solution Architecture flow for the project
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;A[Internet] --&amp;gt; B(Google HTTP(S) Load Balancer (Global))&lt;br&gt;
B --&amp;gt; C(Backend Service (Managed Instance Group))&lt;br&gt;
C --&amp;gt; D(Managed Instance Group (MIG) [Auto-Scaling])&lt;br&gt;
D --&amp;gt; E(VMs in private subnets across zones)&lt;br&gt;
E --&amp;gt; F(Cloud SQL for MySQL (Private IP in the same VPC))&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Connect project to GCP
&lt;/h4&gt;

&lt;p&gt;With the Terraform Project setup now to connect your project with your Google Cloud, run &lt;code&gt;gcloud auth login&lt;/code&gt;. This should provide your project info then you can set your project with &lt;code&gt;gcloud config set project PROJECT_ID&lt;/code&gt;. Alternatively, you can authenticate with &lt;code&gt;gcloud auth application-default login&lt;/code&gt; or &lt;code&gt;gcloud auth application-default login  --no-browser&lt;/code&gt;&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Initialize Terraform for dev environment
&lt;/h4&gt;

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

&lt;h4&gt;
  
  
  Terraform plan
&lt;/h4&gt;

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

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

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

&lt;h4&gt;
  
  
  output Terraform plan in an output file
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;terraform plan -out=tfplan&lt;/code&gt; This saves the plan in a binary format, and can be directly used with &lt;code&gt;terraform apply&lt;/code&gt; to ensure the exact planned changes are applied&lt;/p&gt;

&lt;p&gt;To make the file human-readable, you can use &lt;code&gt;terraform show tfplan &amp;gt; tfplan.txt&lt;/code&gt;&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Initialize Terraform for the prod environment and Terraform plan in an output file
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;terraform plan -out=tfplan&lt;/code&gt; and &lt;code&gt;terraform plan -no-color &amp;gt; output.txt&lt;/code&gt;&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Create infrastructure
&lt;/h4&gt;

&lt;p&gt;Run &lt;code&gt;terraform apply&lt;/code&gt; You might encounter this error message. Follow the URL and enable API &amp;amp; Services for Service Networking API and Compute Engine API&lt;/p&gt;

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

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

&lt;h4&gt;
  
  
  Monitoring on instances
&lt;/h4&gt;

&lt;p&gt;Follow through the official Google Docs to create monitoring and alerting (&lt;a href="https://cloud.google.com/logging/docs/logs-based-metrics/charts-and-alerts#alert-on-lbm" rel="noopener noreferrer"&gt;https://cloud.google.com/logging/docs/logs-based-metrics/charts-and-alerts#alert-on-lbm&lt;/a&gt;)&lt;/p&gt;

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

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

&lt;h4&gt;
  
  
  create Logs Alert
&lt;/h4&gt;

&lt;p&gt;From Logs Explorer in the GCP console&lt;/p&gt;

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

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

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

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

&lt;h4&gt;
  
  
  Log-based metric alert
&lt;/h4&gt;

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

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

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

&lt;h4&gt;
  
  
  Created Database
&lt;/h4&gt;

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

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

&lt;h4&gt;
  
  
  Managed Instance Group
&lt;/h4&gt;

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

&lt;h4&gt;
  
  
  Load Balancing framework
&lt;/h4&gt;

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

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

&lt;h4&gt;
  
  
  Switching between instances using the load balancer IP
&lt;/h4&gt;

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

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

&lt;h4&gt;
  
  
  Terraform Destroy
&lt;/h4&gt;

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

&lt;p&gt;Have questions? Drop a comment below! 🚀&lt;/p&gt;

&lt;p&gt;Also, you could check out the HUG Ibadan Meetup group (&lt;a href="https://www.meetup.com/ibadan-hashicorp-user-group/" rel="noopener noreferrer"&gt;https://www.meetup.com/ibadan-hashicorp-user-group/&lt;/a&gt;) to stay updated on events.&lt;/p&gt;

&lt;p&gt;Terraform HashiCorp DevOps #InfrastructureAsCode CloudComputing&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>terraform</category>
    </item>
    <item>
      <title>Netlify Site + HCP Terraform Remote State</title>
      <dc:creator>BENEDICT OKAFOR</dc:creator>
      <pubDate>Mon, 18 Aug 2025 18:07:25 +0000</pubDate>
      <link>https://dev.to/benn1440/netlify-site-hcp-terraform-remote-state-19i0</link>
      <guid>https://dev.to/benn1440/netlify-site-hcp-terraform-remote-state-19i0</guid>
      <description>&lt;p&gt;Deploying infrastructure manually is time-consuming and error-prone. What if you could define your entire cloud setup as code and deploy it with a single command? That’s where Terraform comes in.&lt;/p&gt;

&lt;p&gt;In this blog post, I’ll walk you through my Terraform-Deploy project, which automates infrastructure provisioning using Terraform. Whether you're new to Infrastructure as Code (IaC) or looking to streamline your deployments, this guide will help you get started.&lt;/p&gt;

&lt;p&gt;Would be utilizing HCP Terraform (formerly Terraform Cloud) for secure, centralized state storage. This approach improves collaboration, security, and scalability for infrastructure deployments.&lt;/p&gt;

&lt;p&gt;To successfully see through this project, the following are key requirements.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terraform is installed on your local operating system&lt;/li&gt;
&lt;li&gt;A Netlify account: Sign up for a free account&lt;/li&gt;
&lt;li&gt;An HCP Terraform account: Sign up for a free account&lt;/li&gt;
&lt;li&gt;Terraform CLI: Install Terraform &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Without the right configuration, you would get an error.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Setup
&lt;/h2&gt;

&lt;h6&gt;
  
  
  Configure Netlify Credentials
&lt;/h6&gt;

&lt;p&gt;You need a Netlify Personal Access Token to allow Terraform to deploy to your account.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to your Netlify dashboard.&lt;/li&gt;
&lt;li&gt;Navigate to User Settings&amp;gt; Applications &amp;gt; Personal Access Tokens.&lt;/li&gt;
&lt;li&gt;Click New access token and give it a descriptive name.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Copy the generated token.&lt;/li&gt;
&lt;li&gt;On your HCP Terraform Account, create a project, then a Workspace&lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;ul&gt;
&lt;li&gt;You should get a custom provider resource block to add to your project.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Clone this repository&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set environment variables:&lt;br&gt;
&lt;code&gt;export NETLIFY_TOKEN="your_netlify_token"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On your project terminal, run &lt;code&gt;terraform login&lt;/code&gt;to authenticate HCP Cloud&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On your first login, you would be prompted to input your generated token&lt;/p&gt;

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

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

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

&lt;ul&gt;
&lt;li&gt;Initialize Terraform &lt;code&gt;terraform init&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Perform your changes on your project, run &lt;code&gt;terraform plan&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;N:B:&lt;/strong&gt; If you encounter any issues connecting, you can run the plan and apply by appending the token &lt;code&gt;terraform plan -var="NETLIFY_TOKEN=&amp;lt;your_token&amp;gt;"/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;-Output after a successful Terraform plan&lt;/p&gt;

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

&lt;p&gt;Run &lt;code&gt;terraform apply&lt;/code&gt; and a successful build on HCP&lt;/p&gt;

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

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

&lt;h2&gt;
  
  
  Deploy your application to Netlify
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;On Netlify profile &amp;gt;&amp;gt; Click add new project &amp;gt;&amp;gt; select a deployment method you prefer&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  Live App URL &amp;amp; app on Browser
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cosmic-moonbeam-87241b.netlify.app/" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;By using HCP Terraform for remote state, you eliminate the risks of local state management while gaining better collaboration and security. Whether you're a solo developer or part of a team, this approach ensures reliable, scalable infrastructure deployments.&lt;/p&gt;

&lt;p&gt;Have questions? Drop a comment below! 🚀&lt;/p&gt;

&lt;p&gt;Also, you could check out the HUG Ibadan Meetup group (&lt;a href="https://www.meetup.com/ibadan-hashicorp-user-group/" rel="noopener noreferrer"&gt;https://www.meetup.com/ibadan-hashicorp-user-group/&lt;/a&gt;) to stay updated on events.&lt;/p&gt;

&lt;h6&gt;
  
  
  Terraform HashiCorp DevOps #InfrastructureAsCode CloudComputing
&lt;/h6&gt;

</description>
      <category>terraform</category>
      <category>cloud</category>
      <category>sre</category>
    </item>
    <item>
      <title>Creating Data Store Resources in Azure</title>
      <dc:creator>BENEDICT OKAFOR</dc:creator>
      <pubDate>Mon, 18 Jul 2022 07:39:00 +0000</pubDate>
      <link>https://dev.to/benn1440/creating-data-store-resources-in-azure-5hd7</link>
      <guid>https://dev.to/benn1440/creating-data-store-resources-in-azure-5hd7</guid>
      <description>&lt;p&gt;As usual, to access Microsoft azure portal, browse to the URL (portal.azure.com), and then sign in with the account.&lt;/p&gt;

&lt;p&gt;According to the official &lt;a href="https://docs.microsoft.com/en-us/azure/cosmos-db/introduction"&gt;Microsoft documentation&lt;/a&gt; Azure Cosmos DB is a fully managed NoSQL database for modern app development, which supports fast, flexible development to achieve low latency and high availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We would be Creating an Azure Cosmos DB account resource.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the Azure portal, search for Azure Cosmos DB in the &lt;strong&gt;Search resources, services, and docs&lt;/strong&gt; text box then select Azure Cosmos DB.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tSqsvC6Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l2i050eu3cmbu76uba0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tSqsvC6Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l2i050eu3cmbu76uba0u.png" alt="Azure Create" width="880" height="358"&gt;&lt;/a&gt; &lt;em&gt;Fig 1.0&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;From the image above, label 1 or 2 can help us easily create our new resource.&lt;/p&gt;

&lt;p&gt;On the next screen are various APIs provided by Microsoft.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gMlXYuCU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f76mm5jkkb3zcfqivkwb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gMlXYuCU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f76mm5jkkb3zcfqivkwb.png" alt="Azure API" width="880" height="436"&gt;&lt;/a&gt; which meets various requirements that would be specific to the Microsoft Tenant.&lt;/p&gt;

&lt;p&gt;For this discuss, we would focus on the &lt;strong&gt;Core(SQL)&lt;/strong&gt;, and it is worthy to note that  The API selection cannot be changed after account creation, click on &lt;strong&gt;create&lt;/strong&gt; when you are sure that is what you want.&lt;/p&gt;

&lt;p&gt;Fill in necessary &lt;strong&gt;Resource Group and Account name ** for **capacity mode&lt;/strong&gt; we would be selecting &lt;strong&gt;Severless&lt;/strong&gt; this &lt;a href="https://docs.microsoft.com/en-us/azure/cosmos-db/throughput-serverless"&gt;documentation&lt;/a&gt; gives further clarification between provisioned Throughput and Severless.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YfUUHyqM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o54qdho0gggp57u4p929.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YfUUHyqM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o54qdho0gggp57u4p929.png" alt="Azure Serverless" width="880" height="411"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Severless&lt;/strong&gt; has an automated way to handle our app, and payment is &lt;strong&gt;Event driven;&lt;/strong&gt; meaning payment is only done when the code runs, which helps users or organization to save cost. &lt;/p&gt;

&lt;p&gt;In the ** Backup Policy*&lt;em&gt;, for the backup storage redundancy, we would be selecting **Geo-redundant backup storage&lt;/em&gt;*.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/en-us/azure/azure-sql/database/automated-backups-overview?view=azuresql&amp;amp;tabs=single-database"&gt;Geo-redundant backup storage&lt;/a&gt; helps to protect against outages impacting backup storage in the primary region and allows you to restore your server to a different region in the event of a disaster.&lt;/p&gt;

&lt;p&gt;Review other sections and options that meets your requirement then click on &lt;strong&gt;create.&lt;/strong&gt; deployment should be available to you.&lt;/p&gt;

&lt;p&gt;Azure portal allows us have access to work with various platforms as seen in the &lt;strong&gt;image label 1&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8dCt0fQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c57b2rdxl9t0uau5iykq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8dCt0fQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c57b2rdxl9t0uau5iykq.png" alt="Azure page" width="880" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can decide to create a container as seen in &lt;strong&gt;image label 2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://azure.microsoft.com/en-in/overview/what-is-a-container/#overview"&gt;Container&lt;/a&gt; bundles an application’s code together with the related configuration files and libraries and with the dependencies required for the app to run. This allows developers and IT pros to deploy applications seamlessly across environments.&lt;/p&gt;

&lt;p&gt;Remember there are a whole lot we could do on our resource to meet our specified configuration. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ufS8x02S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1zgkqtjimakg2zrrfdd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ufS8x02S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1zgkqtjimakg2zrrfdd.png" alt="Azure keys" width="262" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;in the &lt;strong&gt;settings ** section of our resource locate **keys&lt;/strong&gt; and save the URI, PRIMARY KEY, and PRIMARY CONNECTION STRING to your notepad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create an Azure Storage account resource&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Search for &lt;strong&gt;Storage accounts&lt;/strong&gt; on the Azure portal.&lt;/p&gt;

&lt;p&gt;Follow through default procedures on creating any resource, and select relevant options as to your requirements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_J6bEEky--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kwwhvhb1icpwkhjmx9b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_J6bEEky--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kwwhvhb1icpwkhjmx9b6.png" alt="Storage" width="880" height="403"&gt;&lt;/a&gt; A success message of deployment should be available.&lt;/p&gt;

&lt;p&gt;We just created an Azure resources that include an Azure Cosmos DB account and an Azure Storage account.&lt;/p&gt;

</description>
      <category>cloud</category>
    </item>
    <item>
      <title>Creating a Web App on Azure App Service.</title>
      <dc:creator>BENEDICT OKAFOR</dc:creator>
      <pubDate>Sun, 15 May 2022 13:50:31 +0000</pubDate>
      <link>https://dev.to/benn1440/creating-a-web-app-on-azure-app-service-2b0p</link>
      <guid>https://dev.to/benn1440/creating-a-web-app-on-azure-app-service-2b0p</guid>
      <description>&lt;p&gt;&lt;strong&gt;Microsoft Azure is an Infrastructure as a service (Iaas) and Platform as a service(Paas) of Microsoft.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This platform allows for cloud computing services, but what exactly is cloud computing? Cloud computing is the delivery of computing services over the internet, which enables faster innovation, flexible resources and Economies of scale.&lt;/p&gt;

&lt;p&gt;Microsoft provides cloud services to its users usually referred   to as its (Tenants) in three (3) ways.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Infrastructure as a Service (Iaas): This is fully managed by Microsoft, and it’s tenant can rent servers, virtual Machines, storage, network and even operating systems.&lt;/li&gt;
&lt;li&gt; Platform as a Service (Paas): Is an environment for building, testing and deploying software apps without focusing on managing underlying infrastructure.&lt;/li&gt;
&lt;li&gt; Software as a Service (Saas): Tenants connect to and use cloud based apps over the internet.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this simple work through we would be creating a Web App on the Microsoft Azure platform. The Azure platform has numerous features but first thing is to create a Microsoft account, once your account is available you would have to login into azure.&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d3nhe9Et--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywvryin0fruybomu3qe2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d3nhe9Et--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywvryin0fruybomu3qe2.png" alt="Azure portal" width="245" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; For full access to the platform a premium account is required, but Microsoft offers a free account so new users can have access to the platform.&lt;/p&gt;

&lt;p&gt;Once access is granted, you should see something similar to &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---y9TZ3AF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i6x58ma1anr6ap8jzb3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---y9TZ3AF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i6x58ma1anr6ap8jzb3k.png" alt="Azure Home page" width="880" height="451"&gt;&lt;/a&gt; the recent resources can be ignored, these are resources I have created before now, and over time yours would display whatsoever resource you create.&lt;/p&gt;

&lt;p&gt;Next step is to select the &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UQKJBm_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1bc7tf00bmvrnmmleuw2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UQKJBm_G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1bc7tf00bmvrnmmleuw2.png" alt="Create Resource page" width="180" height="133"&gt;&lt;/a&gt; do not forget we want to create a web app utilizing  Azure app service.&lt;/p&gt;

&lt;p&gt;It is worthy to note that Azure App Service is an HTTP-based service for hosting web apps, REST APIs, and mobile backends, and this helps us run and scale our apps without having to bother about cloud or Operating system infrastructure.&lt;/p&gt;

&lt;p&gt;You should see some resources that you can work with on the azure platform but for our case, we would navigate to &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y_cxu9Se--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7e35nr2dh3phsz4utp5j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y_cxu9Se--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7e35nr2dh3phsz4utp5j.png" alt="create app" width="473" height="79"&gt;&lt;/a&gt; and then click on &lt;strong&gt;create&lt;/strong&gt;, which would take us to &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xA_GoMAt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ybhz8ufc2xuswnz9afgi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xA_GoMAt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ybhz8ufc2xuswnz9afgi.png" alt="Create Web App" width="252" height="73"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A page displayed should be seen &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ox96BK3j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fadf2y39r7yxfxdpxia1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ox96BK3j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fadf2y39r7yxfxdpxia1.png" alt="Azure app page" width="880" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;subscription section&lt;/strong&gt; of the form could be the access from your organization or just like in my case a free Azure pass.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Resource Group&lt;/strong&gt; of the page might sound awkward to you, but a resource group is a container that manages and arranges resources in a single unit. Your resources could be storage, Virtual machines, networks, etc. that you are purchasing from Microsoft.&lt;/p&gt;

&lt;p&gt;Now select a &lt;strong&gt;unique name&lt;/strong&gt; for your Resource Group  &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;instance Details&lt;/strong&gt; should also contain peculiar details related to specifications on the resource you want to have. &lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;SKU and size&lt;/strong&gt; of any resource you would be getting is dependent on pricing; Microsoft makes this easy to determine because different price options are available which is equivalent to the selected resource.&lt;/p&gt;

&lt;p&gt;You can now click on &lt;strong&gt;Review + Create&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Hold whilst Microsoft review your selections, and a page like this should be available.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8VVsT_Cy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yhkx5rrcasxjmwrbmydn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8VVsT_Cy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yhkx5rrcasxjmwrbmydn.png" alt="deployment" width="880" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our web app has been successfully deployed and ready for use, you can click on &lt;strong&gt;Go to Resource.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Just at the left hand of the portal &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fF7ggvj1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s8vzr25raq2aic5a8g0q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fF7ggvj1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s8vzr25raq2aic5a8g0q.png" alt="Azure sidebar" width="207" height="492"&gt;&lt;/a&gt; are different actions we could carry out to upscale, and manage our web app to meet organization specified requirement and use.&lt;/p&gt;

&lt;p&gt;An amazing feature of using Microsoft Azure is that it gives us a Real-time breakdown, the performance and security of our app. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KYcvcybp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eiaiq41y9q6my0e81627.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KYcvcybp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eiaiq41y9q6my0e81627.png" alt="App insight" width="880" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;App performance is a crucial part of business as any negligence can result in loss of customers, money to the organization, and cost in avoidable situations.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Diagnose and solve problems&lt;/strong&gt; on the Azure platform provides you with the health of your resource and also provides solutions to be taken at every point in time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KMMoyqTT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3f4g4dz3ao2rjn0ehge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KMMoyqTT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3f4g4dz3ao2rjn0ehge.png" alt="App Health" width="880" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope this gives you a clear understanding of the Azure App Service.&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>azure</category>
      <category>microservices</category>
    </item>
  </channel>
</rss>
