<?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: Adesola Kehinde</title>
    <description>The latest articles on DEV Community by Adesola Kehinde (@adesola_kehinde).</description>
    <link>https://dev.to/adesola_kehinde</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%2F3076888%2Fb2709585-9f73-4ca9-b97d-d17ce412a88c.png</url>
      <title>DEV Community: Adesola Kehinde</title>
      <link>https://dev.to/adesola_kehinde</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adesola_kehinde"/>
    <language>en</language>
    <item>
      <title># 🧠💾 From Zero to Mounted: Attaching and Formatting a Data Disk on Azure (Like a Pro)</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Fri, 30 May 2025 17:35:26 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/-from-zero-to-mounted-attaching-and-formatting-a-data-disk-on-azure-like-a-pro-3i9h</link>
      <guid>https://dev.to/adesola_kehinde/-from-zero-to-mounted-attaching-and-formatting-a-data-disk-on-azure-like-a-pro-3i9h</guid>
      <description>&lt;p&gt;So, you've created an Azure Virtual Machine and it's running like a champ—but where do you put your extra files, logs, or cat memes? 🐱📁&lt;/p&gt;

&lt;p&gt;Let me take you through a simple, foolproof (and actually kinda fun) process to &lt;strong&gt;create, attach, and format a data disk&lt;/strong&gt; on your Azure VM.&lt;/p&gt;

&lt;p&gt;No cloud wizardry required—just your fingers, some clicks, and maybe a cup of tea ☕.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Step-by-Step: How I Attached and Formatted a Data Disk on My Azure VM
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🖥️ Step 1: Create a Virtual Machine
&lt;/h3&gt;

&lt;p&gt;First things first—if you haven’t created a VM, go ahead and do that in the Azure portal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Azure dashboard.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;"Create a resource" → "Virtual Machine"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose your image (e.g. Windows Server), size, region, etc.&lt;/li&gt;
&lt;li&gt;Deploy and &lt;strong&gt;wait for it to finish spinning up&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📍 Once your VM is ready, &lt;strong&gt;click “Go to resource.”&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  📀 Step 2: Add a New Disk
&lt;/h3&gt;

&lt;p&gt;Now for the exciting part—let’s give your VM some extra storage space.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your VM’s left-hand menu, scroll to &lt;strong&gt;“Settings” → “Disks.”&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;“+ Create and attach a new disk.”&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fse676cbp97q4imkbopkv.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%2Fse676cbp97q4imkbopkv.png" alt="Image description" width="354" height="294"&gt;&lt;/a&gt;&lt;br&gt;
Here’s how I filled in the fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Disk name&lt;/strong&gt;: &lt;code&gt;Data disk&lt;/code&gt; (keep it simple!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage type&lt;/strong&gt;: Premium SSD 💎 (because I like speed)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Size&lt;/strong&gt;: 11 GB — not too much, not too little, just right.&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%2Ff5cr5lc9bt1s808dstln.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%2Ff5cr5lc9bt1s808dstln.png" alt="Image description" width="800" height="235"&gt;&lt;/a&gt;&lt;br&gt;
💾 Hit &lt;strong&gt;Save&lt;/strong&gt; and return to the VM overview page.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔌 Step 3: Connect to Your VM
&lt;/h3&gt;

&lt;p&gt;Let’s hop into the VM to bring the new disk to life.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;"Connect"&lt;/strong&gt; at the top.
&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%2Fnpee427wq205pqqa531i.png" alt="Image description" width="388" height="194"&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;"RDP (Remote Desktop Protocol)"&lt;/strong&gt; → &lt;strong&gt;"Download RDP file."&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Make sure you have the &lt;strong&gt;Windows Remote Desktop app&lt;/strong&gt; installed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Double-click the &lt;code&gt;.rdp&lt;/code&gt; file to launch the connection. When prompted:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8w3oehwkya5p2iii7ccc.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%2F8w3oehwkya5p2iii7ccc.png" alt="Image description" width="572" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter your &lt;strong&gt;VM credentials&lt;/strong&gt; (username + password).&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%2F169j040h9di3yehetc9u.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%2F169j040h9di3yehetc9u.png" alt="Image description" width="516" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔐 Boom—you’re inside your VM now.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧱 Step 4: Initialize and Format the New Disk
&lt;/h3&gt;

&lt;p&gt;Now we’re going to tame that unformatted space and turn it into a usable drive.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hit the &lt;strong&gt;Start menu&lt;/strong&gt;, type &lt;code&gt;Disk Management&lt;/code&gt;, and open it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fimmr8ztlgdp911md5ke6.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%2Fimmr8ztlgdp911md5ke6.png" alt="Image description" width="736" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You’ll see a pop-up asking to &lt;strong&gt;initialize a disk&lt;/strong&gt;. Say yes!&lt;/li&gt;
&lt;li&gt;Scroll down to find your &lt;strong&gt;unallocated disk&lt;/strong&gt; (should be around 11GB).&lt;/li&gt;
&lt;li&gt;Right-click on it and select &lt;strong&gt;“New Simple Volume.”&lt;/strong&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%2Fngh98q3q15jnz7ev2gm1.png" alt="Image description" width="800" height="136"&gt;
&lt;/li&gt;
&lt;li&gt;Stick with the &lt;strong&gt;default settings&lt;/strong&gt;—they’re smart enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Format the volume&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;File system&lt;/strong&gt;: NTFS
🧠 &lt;em&gt;What’s NTFS?&lt;/em&gt; It stands for &lt;strong&gt;New Technology File System&lt;/strong&gt;—the default file system for Windows. It’s like a smart librarian for your files: it knows who can read what, keeps things secure, supports big files, and ensures your data doesn’t go poof if your VM sneezes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volume label&lt;/strong&gt;: &lt;code&gt;Data disk&lt;/code&gt; (you can get creative here)
&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%2Fibqeo8ygbjhgzzf3m0wi.png" alt="Image description" width="608" height="468"&gt;
Click &lt;strong&gt;Finish&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🎉 Congratulations! Your data disk should now show a &lt;strong&gt;“Healthy”&lt;/strong&gt; status and be fully available in &lt;strong&gt;File Explorer&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&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%2F8ymc97pjjy819e9lx0uc.png" alt="Image description" width="792" height="130"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🤓 What I Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Azure makes disk attachment pretty seamless.&lt;/li&gt;
&lt;li&gt;Initializing and formatting disks inside the VM is &lt;strong&gt;super important&lt;/strong&gt;—don’t skip it or you'll be scratching your head wondering where your disk is.&lt;/li&gt;
&lt;li&gt;Using Premium SSD gives you that "next-gen" performance feel. 😎&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚡ TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add extra storage by going to your VM → Disks → Add new disk.&lt;/li&gt;
&lt;li&gt;Connect via RDP to initialize and format it using Disk Management.&lt;/li&gt;
&lt;li&gt;Give your disk a label and finish setup—it should now be healthy and visible!&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔚 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Attaching a disk in Azure isn’t rocket science—but it &lt;em&gt;is&lt;/em&gt; one of those core cloud tasks that every aspiring DevOps engineer should master.&lt;/p&gt;

&lt;p&gt;So go ahead—try it out, name your disk something epic (e.g., &lt;code&gt;Dragons_Lair&lt;/code&gt; 🐉), and feel the power of clean, scalable cloud infrastructure.&lt;/p&gt;

&lt;p&gt;Want more hands-on guides like this? Drop a 🧠 in the comments or connect with me at &lt;a href="https://dev.to/adesola_kehinde"&gt;@adesola_kehinde&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Until then: format safely, automate wisely, and hydrate constantly. 💧💻&lt;/p&gt;

</description>
      <category>devops</category>
      <category>datadisk</category>
      <category>beginners</category>
      <category>cloud</category>
    </item>
    <item>
      <title># 🧙‍♂️ How I Secured My DevOps Pipeline with AWS CodeArtifact (and Beat a Pesky IAM Goblin)</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Fri, 30 May 2025 17:08:23 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/-how-i-secured-my-devops-pipeline-with-aws-codeartifact-and-beat-a-pesky-iam-goblin-3c3o</link>
      <guid>https://dev.to/adesola_kehinde/-how-i-secured-my-devops-pipeline-with-aws-codeartifact-and-beat-a-pesky-iam-goblin-3c3o</guid>
      <description>&lt;h2&gt;
  
  
  🧭 Introduction
&lt;/h2&gt;

&lt;p&gt;Let’s be real: managing software dependencies manually in a CI/CD pipeline is like trying to herd cats... during a thunderstorm... in traffic. That’s why AWS CodeArtifact exists.&lt;/p&gt;

&lt;p&gt;In this blog, I’ll walk you through how I set up CodeArtifact as the artifact repository for my DevOps CI/CD pipeline. It’s part of a larger series I’m working on to automate builds, deployments, and all that good stuff—think of this as Level 3 of my DevOps questline.&lt;/p&gt;

&lt;p&gt;If you're new to DevOps or AWS, don’t worry—I’m not here to confuse you with cloud jargon. Let’s decode this together, one secure token at a time.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Tools and Services I Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS EC2&lt;/strong&gt; – for compute power&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS CodeArtifact&lt;/strong&gt; – our main character: a managed artifact repo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IAM (Identity and Access Management)&lt;/strong&gt; – for managing who gets to do what&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maven&lt;/strong&gt; – for building and managing Java project dependencies&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧱 What Is CodeArtifact and Why Should You Care?
&lt;/h2&gt;

&lt;p&gt;CodeArtifact is basically your project’s package pantry. Instead of hunting dependencies all over the internet every time you build your app, CodeArtifact lets you keep everything in a neat, secure, version-controlled repository.&lt;/p&gt;

&lt;p&gt;Think of it like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Without CodeArtifact: Your builds go out like door-to-door salesmen asking for dependencies.&lt;/p&gt;

&lt;p&gt;With CodeArtifact: Your builds walk into a well-stocked internal warehouse and grab what they need.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Cool, right?&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Setting Up the Repository
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🧭 Step 1: Create a Domain and Repository
&lt;/h3&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%2Fcjdfncgq8570aqlbe69o.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%2Fcjdfncgq8570aqlbe69o.png" alt="Image description" width="800" height="101"&gt;&lt;/a&gt;&lt;br&gt;
In CodeArtifact, a &lt;strong&gt;domain&lt;/strong&gt; is like a shared space for multiple repositories. I created one to keep all my DevOps artifacts organized.&lt;/p&gt;

&lt;p&gt;Then, I set my &lt;strong&gt;repository&lt;/strong&gt; to use Maven Central as its &lt;em&gt;upstream source&lt;/em&gt;—this means if CodeArtifact doesn’t have a package locally, it fetches it from Maven Central automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔐 Step 2: Handle Security Like a Pro
&lt;/h3&gt;

&lt;p&gt;You need a token to interact with CodeArtifact. But here’s the catch—my EC2 instance had zero permissions. Nada.&lt;/p&gt;

&lt;p&gt;So I created an &lt;strong&gt;IAM policy&lt;/strong&gt; that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allows fetching an auth token&lt;/li&gt;
&lt;li&gt;Lets Maven read packages&lt;/li&gt;
&lt;li&gt;Talks to AWS STS (Security Token Service)&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%2F838v2o3nmmrib2d4jhdu.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%2F838v2o3nmmrib2d4jhdu.png" alt="Image description" width="800" height="382"&gt;&lt;/a&gt;&lt;br&gt;
I then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Created a new IAM &lt;strong&gt;role&lt;/strong&gt; with this policy&lt;/li&gt;
&lt;li&gt;Assigned that role to my EC2 instance&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpyx9snbr6dm3awam6ez.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%2Fkpyx9snbr6dm3awam6ez.png" alt="Image description" width="800" height="437"&gt;&lt;/a&gt;&lt;br&gt;
Result? Instant access. 💥&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security tip:&lt;/strong&gt; Always use IAM roles instead of hardcoded credentials. It’s safer, more scalable, and makes your future self thank you.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Maven Setup – Enter &lt;code&gt;settings.xml&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;I edited my Maven &lt;code&gt;settings.xml&lt;/code&gt; to include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CodeArtifact repository URL&lt;/li&gt;
&lt;li&gt;An auth token from the role on my EC2&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%2Fkikj7v93pwm9zk6xwycf.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%2Fkikj7v93pwm9zk6xwycf.png" alt="Image description" width="800" height="482"&gt;&lt;/a&gt;&lt;br&gt;
Then I ran &lt;code&gt;mvn compile&lt;/code&gt; and held my breath…&lt;/p&gt;

&lt;p&gt;Boom. It worked.&lt;/p&gt;

&lt;p&gt;Maven pulled down all dependencies from CodeArtifact (or upstream), stored them locally, and built my web app. No warnings, no errors. Just clean, smooth dependency flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔍 Post-Build: The Magic Moment
&lt;/h2&gt;

&lt;p&gt;After compiling, I checked the CodeArtifact repo—and there they were: all the dependencies cached and stored like treasures in a vault.&lt;/p&gt;

&lt;p&gt;At that moment, I realized: my CI/CD workflow just got &lt;strong&gt;way smarter&lt;/strong&gt;. My builds will now be faster, safer, and far less brittle.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What I Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to properly set up AWS CodeArtifact with Maven&lt;/li&gt;
&lt;li&gt;Why IAM roles &amp;gt; access keys (ALWAYS)&lt;/li&gt;
&lt;li&gt;How to troubleshoot token errors like a DevOps detective&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And most importantly: how a good artifact repository is &lt;em&gt;the quiet MVP&lt;/em&gt; of every CI/CD pipeline.&lt;/p&gt;




&lt;h2&gt;
  
  
  🗺️ What’s Next?
&lt;/h2&gt;

&lt;p&gt;This was Part 3 in my DevOps journey. Up next: automating build + deploy stages, integrating testing, and maybe even sprinkling some Lambda magic in there.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;CodeArtifact = internal package repo = fewer build headaches&lt;/li&gt;
&lt;li&gt;Use IAM roles for security—no hardcoded tokens&lt;/li&gt;
&lt;li&gt;Maven + &lt;code&gt;settings.xml&lt;/code&gt; = happy builds&lt;/li&gt;
&lt;li&gt;Debugging permission issues is part of the journey&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay curious. Automate responsibly. Deploy often. 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Creating a Virtual Machine Scale Set (VMSS) from Your Captured Image</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Thu, 22 May 2025 17:19:23 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/creating-a-virtual-machine-scale-set-vmss-from-your-captured-image-fcn</link>
      <guid>https://dev.to/adesola_kehinde/creating-a-virtual-machine-scale-set-vmss-from-your-captured-image-fcn</guid>
      <description>&lt;p&gt;In the last blog, we captured a custom Windows VM image using Azure Compute Gallery. Now, we're going to use that image to create a &lt;strong&gt;Virtual Machine Scale Set (VMSS)&lt;/strong&gt;. This allows you to automatically scale up or down based on demand. Let's dive in.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧭 Step 1: Go to Azure Compute Gallery
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;From the Azure Portal home, search for &lt;strong&gt;"Azure Compute Gallery"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Open the gallery you created earlier.
&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%2F3e0y4cj8elyx5pftv10w.png" alt="Image description" width="800" height="202"&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%2F3mr9c7nde9c33xknbc0b.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%2F3mr9c7nde9c33xknbc0b.png" alt="Image description" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📸 Step 2: Select Your Image
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Click on the image you previously captured.&lt;/li&gt;
&lt;li&gt;It should have the type marked as &lt;strong&gt;Specialized&lt;/strong&gt; (remember, we chose specialized because we didn't generalize our VM).&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%2Foa7cy8z75pzczgzg49ci.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%2Foa7cy8z75pzczgzg49ci.png" alt="Image description" width="800" height="43"&gt;&lt;/a&gt;&lt;br&gt;
💡 &lt;strong&gt;Why specialized?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A specialized image retains all the settings and configurations exactly as they were on your VM. This is useful for cloned environments or when you're not using Sysprep.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🛠️ Step 3: Create a VMSS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;In the image's overview page, click &lt;strong&gt;"Create VMSS"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Scale Set Name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose your &lt;strong&gt;Region&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Orchestration Mode&lt;/strong&gt;, select &lt;strong&gt;Flexible&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;strong&gt;Why Flexible Orchestration Mode?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Flexible mode gives you more control over scaling and VM instances. It's ideal for mixed workloads or when VM identity and persistence matter.&lt;/p&gt;
&lt;/blockquote&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%2Fvmwvncm0rifjs3itxrax.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%2Fvmwvncm0rifjs3itxrax.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ Step 4: Configure Scaling Options
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Under the &lt;strong&gt;Scaling&lt;/strong&gt; tab, enable &lt;strong&gt;automatic scaling&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Add a new &lt;strong&gt;scaling condition&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Condition Name&lt;/strong&gt;: e.g., &lt;code&gt;scale-on-demand&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instance Count&lt;/strong&gt;: e.g., &lt;code&gt;2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimum&lt;/strong&gt;: &lt;code&gt;1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum&lt;/strong&gt;: &lt;code&gt;5&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale Out&lt;/strong&gt;: Increase count by &lt;code&gt;1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale In&lt;/strong&gt;: Decrease count by &lt;code&gt;1&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&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%2F53bp5v0oq4all6affecr.png" alt="Image description" width="800" height="316"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🔐 Step 5: Admin Credentials (Blurred Out?)
&lt;/h2&gt;

&lt;p&gt;You may notice the &lt;strong&gt;admin username, password, and confirm password&lt;/strong&gt; fields appear blurred or disabled.&lt;/p&gt;

&lt;p&gt;🧠 &lt;strong&gt;Why is that?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Because you're using a specialized image — the credentials are already baked into the image. Azure doesn't require you to reset or re-enter them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&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%2F0nz6068du55tjicj4oz2.png" alt="Image description" width="800" height="160"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  ✅ Step 6: Review and Create
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Review your configuration.&lt;/li&gt;
&lt;li&gt;Make sure tags, VM size, network, and scaling settings are correct.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt; to deploy the VMSS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⏳ After a few minutes, your scale set will be up and running!&lt;/p&gt;

&lt;h2&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%2F8lh36u048onnv6bxtg6u.png" alt="Image description" width="744" height="102"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🎯 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;You’ve now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reused a custom VM image&lt;/li&gt;
&lt;li&gt;Created a scale set&lt;/li&gt;
&lt;li&gt;Configured scaling policies&lt;/li&gt;
&lt;li&gt;Understood why certain options (like specialized images and flexible orchestration) matter&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>From Scratch to Snapshot: Creating and Capturing Your First Windows VM on Azure"</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Thu, 22 May 2025 17:10:17 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/from-scratch-to-snapshot-creating-and-capturing-your-first-windows-vm-on-azure-5aeb</link>
      <guid>https://dev.to/adesola_kehinde/from-scratch-to-snapshot-creating-and-capturing-your-first-windows-vm-on-azure-5aeb</guid>
      <description>&lt;p&gt;Ever wanted to launch your own virtual machine (VM) in the cloud and save it as a reusable image? In this blog, I’ll walk you through the beginner-friendly steps I took to create a Windows VM on Azure and capture it into an image using Azure Compute Gallery.&lt;/p&gt;

&lt;p&gt;You don’t need any coding. All you need is curiosity and a browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  ☁️ Step 1: Deploy a Simple Windows VM (Using a Quickstart Template)
&lt;/h2&gt;

&lt;p&gt;Let’s kick things off &lt;em&gt;the smart way&lt;/em&gt; — by using an &lt;strong&gt;Azure Quickstart Template&lt;/strong&gt; to launch a Windows Virtual Machine in just a few clicks.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;em&gt;Quickstart templates are like ready-made blueprints. You don’t have to write code or manually configure a dozen options — just fill in a few details and hit “Deploy.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here’s how I did it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Head over to the &lt;a href="https://azure.microsoft.com/en-us/resources/templates/" rel="noopener noreferrer"&gt;Azure Quickstart Templates Gallery&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;"Simple Windows VM"&lt;/strong&gt; and click the template.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;“Deploy to Azure”&lt;/strong&gt; button — this sends you straight to the Azure Portal with the template pre-loaded.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuecwtdfzsgj9tqm51g9h.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%2Fuecwtdfzsgj9tqm51g9h.png" alt="Image description" width="800" height="580"&gt;&lt;/a&gt;&lt;br&gt;
Now the real magic happens! In the Azure Portal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resource Group&lt;/strong&gt;: I created a new one with a memorable name to keep things tidy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Virtual Machine Name&lt;/strong&gt;: I went with &lt;code&gt;MyWindowsVM&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region&lt;/strong&gt;: Chose the closest region to me for better latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admin Username &amp;amp; Password&lt;/strong&gt;: Pick something secure — you’ll need these to log in later.&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%2Fz4v813ppnrcpeug5l5ci.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%2Fz4v813ppnrcpeug5l5ci.png" alt="Image description" width="800" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 &lt;strong&gt;Why start with a Windows VM?&lt;/strong&gt; I’m comfortable with the Windows interface and wanted to explore GUI-based server setups before diving into Linux-based configurations.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Pro Tip&lt;/strong&gt;: Using the Quickstart template not only saved time, but also ensured I was deploying my VM using Microsoft’s best practices. It’s perfect for beginners &lt;em&gt;and&lt;/em&gt; pros who don’t want to reinvent the wheel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  ⚙️ Step 2: Review and Create
&lt;/h2&gt;

&lt;p&gt;After configuring size, disk, and network settings (defaults are fine for now), hit &lt;strong&gt;Review + Create&lt;/strong&gt; and then &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcm2qzaspdgm32r5uwwca.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%2Fcm2qzaspdgm32r5uwwca.png" alt="Image description" width="800" height="634"&gt;&lt;/a&gt;&lt;br&gt;
✅ You’ve now got a running Windows VM on Azure!&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 Step 3: Capture the VM
&lt;/h2&gt;

&lt;p&gt;Once the VM was running, I wanted to reuse its configuration later. So I &lt;strong&gt;captured an image&lt;/strong&gt; of it. But there’s a catch:&lt;/p&gt;

&lt;h3&gt;
  
  
  ❓ Generalized vs Specialized Image
&lt;/h3&gt;

&lt;p&gt;Azure asked: “Do you want a &lt;strong&gt;generalized&lt;/strong&gt; or &lt;strong&gt;specialized&lt;/strong&gt; image?”&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 &lt;strong&gt;Why I chose Specialized:&lt;/strong&gt; A specialized image includes everything — user settings, installed software, etc. Perfect for personal or test environments.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🧩 Steps to Capture:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Stop the VM&lt;/strong&gt; (Azure won’t let you capture a running one).&lt;/li&gt;
&lt;li&gt;Click on your VM → &lt;strong&gt;Capture&lt;/strong&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%2Fxq45jahcq0sf2tv9f4tc.png" alt="Image description" width="800" height="172"&gt;
&lt;/li&gt;
&lt;li&gt;Choose:

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Image Name&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create a new Compute Gallery&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choose specialized&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;version number&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;(Optional) Add &lt;strong&gt;tags&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ok072a9mds2m5lzkia8.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%2F0ok072a9mds2m5lzkia8.png" alt="Image description" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hit &lt;strong&gt;Review + Create&lt;/strong&gt;, then &lt;strong&gt;Create&lt;/strong&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%2Fbugx9lyj6pxej7r6ezur.png" alt="Image description" width="800" height="624"&gt;
✅ Boom! You’ve now saved your VM as a reusable image in Azure Compute Gallery.
&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%2Fjm30t5wj26hoapm7qrlz.png" alt="Image description" width="800" height="394"&gt;
---&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  📁 Step 4: Validate and Organize
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Azure will validate your capture and notify you once the image is available in your compute gallery. I recommend tagging your images to stay organized, especially if you plan to build scale sets later.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  👀 Reflections
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 This process was smoother than I expected. Choosing between generalized and specialized images is an important architectural decision depending on your use case. Since I didn’t need a clean template, specialized was just right.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧠 What You Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to deploy a Windows VM using Azure Portal&lt;/li&gt;
&lt;li&gt;When to choose specialized vs generalized VM images&lt;/li&gt;
&lt;li&gt;How to stop, capture, and store a VM image in Azure Compute Gallery&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;In the next post, I’ll show how I used this captured image to create a &lt;strong&gt;Virtual Machine Scale Set (VMSS)&lt;/strong&gt; with autoscaling!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Stay tuned, and let me know in the comments if this helped or confused you — I’m learning too. 🤝&lt;/em&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>From EC2 to GitHub: Connecting Your Cloud Code Like a Pro</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Tue, 20 May 2025 22:48:38 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/from-ec2-to-github-connecting-your-cloud-code-like-a-pro-54e7</link>
      <guid>https://dev.to/adesola_kehinde/from-ec2-to-github-connecting-your-cloud-code-like-a-pro-54e7</guid>
      <description>&lt;p&gt;Hey DevOps explorer! 👋 Today we're diving into &lt;strong&gt;Project 2 of my 7-Day DevOps Challenge&lt;/strong&gt;, where I connect my Java web app hosted on AWS EC2 to GitHub using Git. By the end of this post, you’ll understand how to:&lt;/p&gt;

&lt;p&gt;✅ Install Git on your EC2 instance&lt;br&gt;&lt;br&gt;
✅ Set up a GitHub repo&lt;br&gt;&lt;br&gt;
✅ Track and commit code&lt;br&gt;&lt;br&gt;
✅ Push code from EC2 to GitHub using a personal access token  &lt;/p&gt;


&lt;h2&gt;
  
  
  🛠 Why This Matters
&lt;/h2&gt;

&lt;p&gt;Version control is a must-have skill for any developer. Whether you're flying solo or collaborating on a team, Git and GitHub help you keep your code safe, traceable, and easy to manage.&lt;/p&gt;


&lt;h2&gt;
  
  
  ☁️ Step 1: Install Git on EC2
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf update &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install &lt;/span&gt;git &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52e9mmu4rxkpisdzhqtw.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%2F52e9mmu4rxkpisdzhqtw.png" alt="Image description" width="800" height="61"&gt;&lt;/a&gt;&lt;br&gt;
Git is a version control tool that tracks your code changes. Installing it lets you start managing your code history on the server itself.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔐 Step 2: Set Up GitHub &amp;amp; Create a Repo
&lt;/h2&gt;

&lt;p&gt;Head to &lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, create a free account (if you haven’t), and start a new repository — this is where your code will live in the cloud.&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%2F6dwl0binnk5sy2dxfu2w.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%2F6dwl0binnk5sy2dxfu2w.png" alt="Image description" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 A GitHub repository is like a magic folder that tracks every change in your project.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  🌱 Step 3: Initialize Local Git Repo
&lt;/h2&gt;


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

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgu176j9yn0e19dx6rfjv.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%2Fgu176j9yn0e19dx6rfjv.png" alt="Image description" width="800" height="243"&gt;&lt;/a&gt;&lt;br&gt;
This sets up Git inside your project folder on EC2, creating a &lt;code&gt;master&lt;/code&gt; branch.&lt;/p&gt;


&lt;h2&gt;
  
  
  ✍️ Step 4: Track and Commit Code
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;git add .&lt;/code&gt; stages your files, and &lt;code&gt;git commit&lt;/code&gt; saves the snapshot. Think of it as telling Git, “Hey, these are the changes I care about.”&lt;/p&gt;


&lt;h2&gt;
  
  
  🔗 Step 5: Link to GitHub and Push
&lt;/h2&gt;

&lt;p&gt;First, copy the HTTPS URL from your GitHub repo. Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add origin https://github.com/your-username/your-repo-name.git
git branch &lt;span class="nt"&gt;-M&lt;/span&gt; master
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Oops! Git might ask for your &lt;strong&gt;username and password&lt;/strong&gt;, but GitHub no longer accepts passwords.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔑 Step 6: Use a GitHub Token Instead
&lt;/h2&gt;

&lt;p&gt;Go to GitHub → Settings → Developer Settings → Personal Access Tokens.&lt;br&gt;&lt;br&gt;
Generate a token with &lt;code&gt;repo&lt;/code&gt; access and copy it. Use it when Git asks for a password.&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%2Fnde2zo3h9bbybi41ienq.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%2Fnde2zo3h9bbybi41ienq.png" alt="Image description" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🔐 A GitHub token is a secure key that acts like a password for Git operations.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  💡 Bonus: Editing &amp;amp; Pushing Again
&lt;/h2&gt;

&lt;p&gt;I updated &lt;code&gt;index.jsp&lt;/code&gt;, then ran:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Updated homepage"&lt;/span&gt;
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And just like that—my changes appeared live in the GitHub repo. Magic!&lt;/p&gt;




&lt;h2&gt;
  
  
  🔁 What I Learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Services used:&lt;/strong&gt; EC2, Git, GitHub, VS Code&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Concepts learned:&lt;/strong&gt; version control, repo setup, staging/commits, GitHub tokens&lt;/p&gt;




&lt;h2&gt;
  
  
  ⏱ Project Reflection
&lt;/h2&gt;

&lt;p&gt;This project took me around 2 hours. The trickiest part? Setting up GitHub authentication.&lt;br&gt;&lt;br&gt;
The best part? Watching my code go live in my repo with one command.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;This is just the beginning. Stay tuned for Project 3 tomorrow—CI/CD, here we come! 💥&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>git</category>
      <category>github</category>
      <category>beginners</category>
    </item>
    <item>
      <title>From Zero to Cloud: Building Your First Java Web App on AWS with VS Code</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Tue, 20 May 2025 04:07:52 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/from-zero-to-cloud-building-your-first-java-web-app-on-aws-with-vs-code-1j3m</link>
      <guid>https://dev.to/adesola_kehinde/from-zero-to-cloud-building-your-first-java-web-app-on-aws-with-vs-code-1j3m</guid>
      <description>&lt;p&gt;This project is part one of a series of DevOps projects where I'm building a CI/CD pipeline! I'll be working on the next project in a few days to expand what I've learnt.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Why I Did This Project
&lt;/h2&gt;

&lt;p&gt;I wanted to learn how to set up the foundation of a CI/CD pipeline. This project walked me through the process of launching an EC2 instance and using it to build and edit a web app — completely in the cloud.&lt;/p&gt;




&lt;h2&gt;
  
  
  🟢 Step 1: Launch EC2 Instance
&lt;/h2&gt;

&lt;p&gt;We started this project by launching an EC2 instance because EC2 instances are like virtual computers that live in the cloud. We want our web app to live entirely in the cloud, so we are launching an EC2 instance to even develop our web app's code.&lt;/p&gt;

&lt;h2&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%2Ft5riw2mbo8u8ll0hxkn6.png" alt="Image description" width="800" height="404"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🔑 Step 2: Key Pair
&lt;/h2&gt;

&lt;p&gt;A key pair is a mechanism for us to access EC2 instances. I created a key pair that AWS stores the public part of, and I downloaded the private key. AWS will authenticate this private key when I connect later.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Once I set up my key pair, AWS automatically downloaded&lt;/strong&gt; a &lt;code&gt;.pem&lt;/code&gt; file to my computer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&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%2Fn567cnbpp2kh950vwzqw.png" alt="Image description" width="800" height="778"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🧠 Step 3: Understanding SSH
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;SSH is&lt;/strong&gt; a secure way to remotely access another computer. &lt;strong&gt;I enabled SSH so that&lt;/strong&gt; I could access my EC2 instance safely from my local computer.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🛠️ Step 4: Install VS Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VS Code is&lt;/strong&gt; a lightweight and powerful source code editor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I installed VS Code to&lt;/strong&gt; easily navigate and edit code inside my EC2 instance.&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%2Fwc3pfanebmk75fv0y0wl.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%2Fwc3pfanebmk75fv0y0wl.png" alt="Image description" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 Step 5: Terminal Setup + Key Permissions
&lt;/h2&gt;

&lt;p&gt;I used the terminal to interact with my EC2 instance.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A terminal is&lt;/strong&gt; a tool to run shell commands. &lt;strong&gt;The first command I ran for this project is&lt;/strong&gt; &lt;code&gt;cd ~/Desktop/Devops-keys&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;I also updated my private key's permissions by&lt;/strong&gt; running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;400 network-keypair.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgl6wzvo88mtqul6rj6l.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%2Fcgl6wzvo88mtqul6rj6l.png" alt="Image description" width="800" height="252"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌐 Step 6: Connect to EC2
&lt;/h2&gt;

&lt;p&gt;We're connecting to our EC2 instance so we can run code and install tools directly in the cloud.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;To connect to my EC2 instance, I ran the command:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"network-keypair.pem"&lt;/span&gt; ec2-user@&amp;lt;my-ec2-ipv4-dns&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogpttmjzwpue4jzw2jtu.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%2Fogpttmjzwpue4jzw2jtu.png" alt="Image description" width="800" height="167"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;A server's IPv4 DNS is&lt;/strong&gt; the address I used to connect to the EC2 instance from my local machine.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔧 Step 7: Install Java + Maven
&lt;/h2&gt;

&lt;p&gt;We're installing tools to help us build and run Java-based web apps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Apache Maven is&lt;/strong&gt; a build automation tool used to manage Java projects. &lt;strong&gt;Maven is required in this project because&lt;/strong&gt; it simplifies building and managing our Java web app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Java is&lt;/strong&gt; a programming language. &lt;strong&gt;Java is required in this project because&lt;/strong&gt; our web app is written in Java.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  🏗️ Step 8: Generate the App
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;In this step,&lt;/strong&gt; I’m running a Maven command that generates the structure of a new Java web app — like creating the skeleton of the website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I generated a Java web app using the command:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn archetype:generate ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fipei7vi115701v1ydaix.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%2Fipei7vi115701v1ydaix.png" alt="Image description" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  👁️ Step 9: View and Edit in VS Code
&lt;/h2&gt;

&lt;p&gt;Even though I’m connected with SSH in the terminal, I want all of VS Code’s IDE features, so I installed Remote - SSH.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I installed Remote - SSH, which is&lt;/strong&gt; a VS Code extension that lets me edit remote files. &lt;strong&gt;I installed it to&lt;/strong&gt; open and manage my EC2 files like they’re local.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configuration details required to set up a remote connection include&lt;/strong&gt; the name of my EC2, its IP, and the private key path — so that VS Code can connect securely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using VS Code’s file explorer, I could see&lt;/strong&gt; all the folders and files of the Java project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two of the project folders created by Maven are src and webapp, which&lt;/strong&gt; contain the source code and web assets of the Java web app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;index.jsp is&lt;/strong&gt; the home page of the web app. &lt;strong&gt;I edited index.jsp by&lt;/strong&gt; adding my name to personalize the page.&lt;/p&gt;
&lt;/blockquote&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%2Fd90fdf3yle9gaavktbmk.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%2Fd90fdf3yle9gaavktbmk.png" alt="Image description" width="502" height="464"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Final Thoughts
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Services I used were&lt;/strong&gt; EC2, SSH, VS Code, Maven, Java.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Key concepts I learnt include&lt;/strong&gt; SSH, cloud-based development, Maven builds, and managing keys.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ❗ One Thing I Didn’t Expect
&lt;/h2&gt;

&lt;p&gt;I didn’t expect to learn so much about SSH and permissions! It was a fun challenge.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This project took me approximately&lt;/strong&gt; 2 hours. &lt;strong&gt;The most challenging part was&lt;/strong&gt; connecting and verifying the keys. &lt;strong&gt;It was most rewarding to&lt;/strong&gt; see my web app running in the cloud!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🎯 Did It Meet My Goals?
&lt;/h2&gt;

&lt;p&gt;Yes — I wanted to deploy code entirely from the cloud, and this project got me there.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Thanks for reading! 🚀 Stay tuned for the next DevOps adventure.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>java</category>
      <category>vscode</category>
      <category>devops</category>
    </item>
    <item>
      <title>"How I Stopped Burning Money in the Cloud: A Dev’s Guide to FinOps (Without the Finance Headache)"</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Mon, 19 May 2025 18:07:54 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/how-i-stopped-burning-money-in-the-cloud-a-devs-guide-to-finops-without-the-finance-headache-1140</link>
      <guid>https://dev.to/adesola_kehinde/how-i-stopped-burning-money-in-the-cloud-a-devs-guide-to-finops-without-the-finance-headache-1140</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Cloud cost breakdowns don’t have to break you. Here’s a beginner-friendly dev's guide to FinOps—fun, practical, and a little too real.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;You know that feeling when your cloud bill hits and you stare at it like it’s written in Elvish?&lt;br&gt;&lt;br&gt;
Yeah, me too.&lt;/p&gt;

&lt;p&gt;I used to think cloud billing was just an annoying backend detail.&lt;br&gt;&lt;br&gt;
&lt;em&gt;"It scales, right? That’s the dream!"&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Until I realized we weren’t scaling—we were leaking money like a perforated S3 bucket.&lt;/p&gt;

&lt;p&gt;That’s when I met &lt;strong&gt;FinOps&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Not a tool. Not a vendor. A &lt;em&gt;mindset&lt;/em&gt;. A practice. A way to finally make sense of cloud costs without becoming a full-time accountant.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is FinOps?
&lt;/h2&gt;

&lt;p&gt;Think &lt;strong&gt;DevOps&lt;/strong&gt;, but for &lt;strong&gt;money&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;FinOps (short for &lt;em&gt;Cloud Financial Operations&lt;/em&gt;) is how teams—especially devs, finance, and product folks—collaborate to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Understand&lt;/strong&gt; where cloud money is going,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimize&lt;/strong&gt; usage and rates,&lt;/li&gt;
&lt;li&gt;And &lt;strong&gt;Operate&lt;/strong&gt; in a way that makes cloud spending a &lt;strong&gt;strategic advantage&lt;/strong&gt;, not just a painful invoice.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Problems FinOps Solves (That You’ve Probably Felt)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Problem 1: Cloud Spend Is a Black Box
&lt;/h3&gt;

&lt;p&gt;You deployed something two weeks ago. Now the cost has tripled.&lt;br&gt;&lt;br&gt;
Who did it? Why? No idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FinOps Fix:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
FinOps brings &lt;strong&gt;visibility&lt;/strong&gt;—with tagging, dashboards, and daily reporting so teams can trace spend back to services, teams, or even individual features.&lt;/p&gt;




&lt;h3&gt;
  
  
  Problem 2: Engineers Ship, Finance Panics
&lt;/h3&gt;

&lt;p&gt;You push to prod, finance sees a spike, and now you’re on a Zoom call explaining Kubernetes to someone with a &lt;strong&gt;CPA&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;(CPA = Certified Public Accountant. They audit money, not your YAML files.)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;FinOps Fix:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
It creates a &lt;strong&gt;shared language&lt;/strong&gt; between teams.&lt;br&gt;&lt;br&gt;
You don’t need to become a financial analyst, but you'll understand cost implications of technical choices (and finance won’t file a ticket asking what "&lt;strong&gt;EBS&lt;/strong&gt;" means).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;(EBS = Elastic Block Store, a type of persistent storage volume in AWS. Translation: it costs money even when you’re not looking.)&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Problem 3: Optimization Is Everyone’s Job (But No One Owns It)
&lt;/h3&gt;

&lt;p&gt;No one gets rewarded for turning off idle instances. So no one does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FinOps Fix:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
With FinOps, &lt;strong&gt;optimization is incentivized&lt;/strong&gt;. Engineers get visibility and ownership. Some orgs even gamify savings.&lt;br&gt;&lt;br&gt;
It’s like being paid in karma &lt;em&gt;and&lt;/em&gt; cost savings.&lt;/p&gt;




&lt;h3&gt;
  
  
  Problem 4: Commitments Feel Like Handcuffs
&lt;/h3&gt;

&lt;p&gt;Reserved Instances? Savings Plans?&lt;br&gt;&lt;br&gt;
What if we change our infra later?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FinOps Fix:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
FinOps doesn’t jump into commitments blind—it uses data to &lt;strong&gt;forecast usage&lt;/strong&gt;, then builds confidence in long-term discounts.&lt;br&gt;&lt;br&gt;
It’s about balance, not blind bets.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Should You Care (Even If You’re “Just a Developer”)?
&lt;/h2&gt;

&lt;p&gt;Because cloud cost is a &lt;strong&gt;technical problem&lt;/strong&gt; hiding in a financial wrapper. It affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your architecture decisions,&lt;/li&gt;
&lt;li&gt;Your team’s ability to ship fast,&lt;/li&gt;
&lt;li&gt;Even product pricing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;FinOps gives you &lt;strong&gt;control without guilt&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
You can ship fast &lt;em&gt;and&lt;/em&gt; spend smart. No more guessing. No more end-of-month panic.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;FinOps isn’t about becoming a spreadsheet wizard.&lt;br&gt;&lt;br&gt;
It’s about &lt;strong&gt;making cloud costs visible, actionable, and shared&lt;/strong&gt;—so we can all stop burning money and start building smarter.&lt;/p&gt;




&lt;h2&gt;
  
  
  If You Liked This...
&lt;/h2&gt;

&lt;p&gt;Follow me here on &lt;a href="https://dev.to/adesola_kehinde"&gt;Dev.io&lt;/a&gt; for more honest, dev-first takes on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FinOps&lt;/li&gt;
&lt;li&gt;Cloud strategy&lt;/li&gt;
&lt;li&gt;Cost-saving without compromising velocity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Got questions about implementing FinOps in your team? Drop a comment. Let’s talk shop.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>devops</category>
      <category>finops</category>
      <category>costoptimization</category>
    </item>
    <item>
      <title>A quick and beginner-friendly guide to deploying any HTML page to Azure App Service using only the CLI</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Mon, 19 May 2025 04:04:04 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/a-quick-and-beginner-friendly-guide-to-deploying-any-html-page-to-azure-app-service-using-only-the-d5m</link>
      <guid>https://dev.to/adesola_kehinde/a-quick-and-beginner-friendly-guide-to-deploying-any-html-page-to-azure-app-service-using-only-the-d5m</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Complete Beginner's Guide to Kubernetes and Cloud Native Architecture&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 How I Deployed My First HTML File on Azure (in Minutes!)
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Want to see your resume or project live on the internet? This tutorial is for you!&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Let’s deploy an HTML file to Azure App Service — no prior cloud experience needed. It’s fun, fast, and free.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  ✅ Step 1: Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before we dive in, make sure you have the following:&lt;/p&gt;

&lt;p&gt;✅ Azure CLI installed 👉 &lt;a href="https://learn.microsoft.com/en-us/cli/azure/install-azure-cli" rel="noopener noreferrer"&gt;Install Azure CLI&lt;/a&gt;&lt;br&gt;&lt;br&gt;
✅ An active Azure Subscription 👉 &lt;a href="https://azure.microsoft.com/en-us/free/" rel="noopener noreferrer"&gt;Get free credits here&lt;/a&gt;&lt;br&gt;&lt;br&gt;
✅ Your HTML file (with any supporting assets)&lt;/p&gt;


&lt;h2&gt;
  
  
  🔐 Step 2: Login to Azure
&lt;/h2&gt;

&lt;p&gt;Open your terminal (PowerShell, CMD, or Bash) and log in to Azure:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;If you have multiple subscriptions, set the one you want to use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az account &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;--subscription&lt;/span&gt; &lt;span class="s2"&gt;"Your-Subscription-Name"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps avoid confusion if you’re managing more than one Azure account.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 Step 3: Create a Resource Group
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;resource group&lt;/strong&gt; helps organize your Azure resources like a folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az group create &lt;span class="nt"&gt;--name&lt;/span&gt; myResourceGroup &lt;span class="nt"&gt;--location&lt;/span&gt; southafricanorth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡 &lt;em&gt;You can change &lt;code&gt;myResourceGroup&lt;/code&gt; to any name you prefer.&lt;/em&gt; For example, if you’re working on a portfolio site, something like &lt;code&gt;portfolioResources&lt;/code&gt; works well.&lt;br&gt;&lt;br&gt;
💡 &lt;em&gt;The location &lt;code&gt;southafricanorth&lt;/code&gt; can be changed to any supported Azure region closer to your audience, like &lt;code&gt;eastus&lt;/code&gt; or &lt;code&gt;westeurope&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Use this command to list available regions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az account list-locations &lt;span class="nt"&gt;-o&lt;/span&gt; table
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🌐 Step 4: Create an App Service Plan
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;App Service Plan&lt;/strong&gt; defines what kind of infrastructure (CPU, memory, etc.) your app will run on. For this project, we’ll use the free tier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az appservice plan create   &lt;span class="nt"&gt;--name&lt;/span&gt; myAppServicePlan   &lt;span class="nt"&gt;--resource-group&lt;/span&gt; myResourceGroup   &lt;span class="nt"&gt;--sku&lt;/span&gt; FREE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;💡 &lt;em&gt;You can name your App Service Plan whatever you want — for instance, &lt;code&gt;htmlAppPlan&lt;/code&gt;.&lt;/em&gt;&lt;br&gt;&lt;br&gt;
💡 &lt;em&gt;&lt;code&gt;--sku FREE&lt;/code&gt; gives you enough compute power to host a basic HTML site — ideal for personal portfolios or testing.&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Step 5: Create the Web App
&lt;/h2&gt;

&lt;p&gt;Now, create the actual &lt;strong&gt;Web App&lt;/strong&gt; that Azure will host:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;az webapp create   &lt;span class="nt"&gt;--name&lt;/span&gt; kubernetesNotes   &lt;span class="nt"&gt;--resource-group&lt;/span&gt; myResourceGroup   &lt;span class="nt"&gt;--plan&lt;/span&gt; myAppServicePlan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📌 &lt;em&gt;Your app name (&lt;code&gt;kubernetesNotes&lt;/code&gt;) must be **globally unique&lt;/em&gt;* — Azure will use it to generate a public URL like:*&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;💡 &lt;em&gt;If you get a naming error, try something more specific, such as &lt;code&gt;myUniqueResumeApp2025&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can replace &lt;code&gt;kubernetesNotes&lt;/code&gt; with your own project name.&lt;/p&gt;




&lt;h2&gt;
  
  
  📂 Step 6: Upload and Host Your HTML File
&lt;/h2&gt;

&lt;p&gt;Here’s how to replace the default hosting page with your own HTML:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Option: Use Azure’s Advanced Tools (Kudu)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;Azure Portal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to: &lt;strong&gt;App Services → your app name&lt;/strong&gt; (e.g., &lt;code&gt;kubernetesNotes&lt;/code&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%2F8q01n9aq6482ht3uqavz.png" alt="Image description" width="522" height="249"&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;left-hand menu&lt;/strong&gt;, scroll to &lt;strong&gt;Advanced Tools&lt;/strong&gt; and click &lt;strong&gt;"Go &amp;gt;"&lt;/strong&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%2Fxcrway8k7lbtpfduat1h.png" alt="Image description" width="800" height="377"&gt;
&lt;/li&gt;
&lt;li&gt;This opens the &lt;strong&gt;Kudu console&lt;/strong&gt; in a new tab&lt;/li&gt;
&lt;li&gt;Click the top menu: &lt;strong&gt;Debug Console → CMD&lt;/strong&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%2Fdluxzq6pgsywk73ouas2.png" alt="Image description" width="800" height="158"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the file explorer, navigate to:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;site &amp;gt; wwwroot
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edit the file &lt;code&gt;hostingstart.html&lt;/code&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%2Fwbro8y7zm8dgy6z7ct5b.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%2Fwbro8y7zm8dgy6z7ct5b.png" alt="Image description" width="800" height="201"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Drag and drop your own HTML file (e.g., &lt;code&gt;index.html&lt;/code&gt;) into the folder&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open a new browser tab and go to:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;p&gt;🎉 &lt;em&gt;Your website is now LIVE!&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 Bonus: Want to Deploy via ZIP File Instead?
&lt;/h2&gt;

&lt;p&gt;If you’re comfortable using the CLI, you can zip your HTML files and deploy them in one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;zip &lt;span class="nt"&gt;-r&lt;/span&gt; resume.zip index.html assets/

az webapp deployment &lt;span class="nb"&gt;source &lt;/span&gt;config-zip   &lt;span class="nt"&gt;--resource-group&lt;/span&gt; myResourceGroup   &lt;span class="nt"&gt;--name&lt;/span&gt; kubernetesNotes   &lt;span class="nt"&gt;--src&lt;/span&gt; resume.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📦 &lt;em&gt;This is useful when you’re deploying multiple files or updating them frequently.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Again, feel free to replace &lt;code&gt;resume.zip&lt;/code&gt; and &lt;code&gt;kubernetesNotes&lt;/code&gt; with your own zip file name and app name.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Wrapping Up
&lt;/h2&gt;

&lt;p&gt;You just:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Logged into Azure&lt;/li&gt;
&lt;li&gt;✅ Created a resource group and hosting plan&lt;/li&gt;
&lt;li&gt;✅ Deployed a web app&lt;/li&gt;
&lt;li&gt;✅ Uploaded your own HTML and went live on the internet!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All using &lt;strong&gt;just the CLI&lt;/strong&gt; and Azure’s built-in tools — no servers, no frameworks, no stress. 👏&lt;/p&gt;

&lt;p&gt;Now your resume, landing page, or mini project has a permanent home!&lt;/p&gt;

</description>
      <category>azure</category>
      <category>cli</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Secure and High-Availability Corporate Storage with Azure: Blobs, File Shares and Snapshots</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Tue, 06 May 2025 02:33:21 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/secure-and-high-availability-corporate-storage-with-azure-blobs-file-shares-and-snapshots-39h5</link>
      <guid>https://dev.to/adesola_kehinde/secure-and-high-availability-corporate-storage-with-azure-blobs-file-shares-and-snapshots-39h5</guid>
      <description>&lt;p&gt;There’s something comforting about knowing your company’s documents are safe, backed up, and only accessible to the right people. In this post, we’ll walk through setting up Azure storage for your internal files—complete with geo‑redundancy, private containers, easy partner sharing, automated cost‑savings, file shares with snapshots, and even locking it all down to your corporate network. Grab a coffee, fire up the Azure portal, and let’s make your files bulletproof!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Build Your Private Document Stronghold
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What we’re doing:&lt;/strong&gt; Creating a storage account that survives whole‑region outages by replicating data to another region.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the Azure portal, click &lt;strong&gt;Storage accounts&lt;/strong&gt; → &lt;strong&gt;+ Create&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;resource group&lt;/strong&gt; you used before.
&lt;/li&gt;
&lt;li&gt;Give your account a unique name like &lt;code&gt;secureclient&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Redundancy&lt;/strong&gt;, pick &lt;strong&gt;Geo‑redundant storage (GRS)&lt;/strong&gt;—that’s your insurance policy.
&lt;/li&gt;
&lt;li&gt;Hit &lt;strong&gt;Review + create&lt;/strong&gt;, then &lt;strong&gt;Create&lt;/strong&gt;, and when it’s ready, click &lt;strong&gt;Go to resource&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3rovhsawikdvb77fd3z.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%2Fu3rovhsawikdvb77fd3z.png" alt="Image description" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Lock Down Your “Private” Container
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Keep prying eyes out while you store sensitive documents.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inside your new account, go to &lt;strong&gt;Containers&lt;/strong&gt; → &lt;strong&gt;+ Container&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Name it &lt;strong&gt;private&lt;/strong&gt;, and choose &lt;strong&gt;Private (no anonymous access)&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt;, then upload a small test file.
&lt;/li&gt;
&lt;li&gt;Copy its URL into a browser, if you see “Access denied,” you nailed it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  3. Give Partners Just‑Enough Access with SAS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why SAS?&lt;/strong&gt; You need to let an outside consultant view (or update) a single file for a day—without handing over your master keys.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select your blob, click &lt;strong&gt;Generate SAS&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Grant only &lt;strong&gt;Read&lt;/strong&gt; permission, set start to now and expiry to 24 hrs from now.
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate&lt;/strong&gt;, copy the SAS URL, and paste it in your browser. Voilà—secure, time‑limited access.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2lzzzq3c1qkw3k6e9j1.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%2Ff2lzzzq3c1qkw3k6e9j1.png" alt="Image description" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Automate Cost‑Saving with Lifecycle Rules
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Think of it like your digital housecleaning:&lt;/strong&gt; move files you haven’t touched in 30 days from Hot to Cool storage automatically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;strong&gt;Lifecycle management&lt;/strong&gt; under &lt;strong&gt;Data management&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add rule&lt;/strong&gt;, name it &lt;strong&gt;MoveToCool&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Scope: &lt;strong&gt;All blobs&lt;/strong&gt;; Condition: &lt;strong&gt;Last modified &amp;gt; 30 days&lt;/strong&gt;; Action: &lt;strong&gt;Move to cool storage&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Save the rule and cross that off your to‑do list.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltjwgo64gf21y08cutiv.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%2Fltjwgo64gf21y08cutiv.png" alt="Image description" width="800" height="745"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Mirror Public Assets into Your Private “Backup” Container
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Double up the safety net&lt;/strong&gt; by replicating your public website’s images and docs into a private backup.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your private account, create a &lt;code&gt;backup&lt;/code&gt; container.
&lt;/li&gt;
&lt;li&gt;Switch to your &lt;code&gt;publicwebsite&lt;/code&gt; account and open &lt;strong&gt;Object replication&lt;/strong&gt; → &lt;strong&gt;Create replication rule&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Source: &lt;code&gt;public&lt;/code&gt; container. Destination: your private &lt;code&gt;backup&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt; and watch the magic happen when you upload new files.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vpc5mqkfcyltm692rq8.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%2F5vpc5mqkfcyltm692rq8.png" alt="Image description" width="800" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Share Files the Old‑School Way with Azure File Shares
&lt;/h2&gt;

&lt;p&gt;Sometimes you need familiar drive‑letter file shares for finance, HR, or other teams.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the private account, go to &lt;strong&gt;File shares&lt;/strong&gt; → &lt;strong&gt;+ File share&lt;/strong&gt;. Name it &lt;strong&gt;corporatefiles&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Click into that share, &lt;strong&gt;+ Add directory&lt;/strong&gt;, call it &lt;strong&gt;finance&lt;/strong&gt;, then upload a sample file there.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrjoblaira3cel3es4b0.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%2Fvrjoblaira3cel3es4b0.png" alt="Image description" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Protect &amp;amp; Recover with Snapshots
&lt;/h2&gt;

&lt;p&gt;Snapshots are your undo button for accidental deletions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Within your file share, select &lt;strong&gt;Snapshots&lt;/strong&gt; → &lt;strong&gt;+ Add snapshot&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Confirm your &lt;code&gt;/finance&lt;/code&gt; folder and file appear.
&lt;/li&gt;
&lt;li&gt;Delete the file from &lt;code&gt;/finance&lt;/code&gt;, then open &lt;strong&gt;Snapshots&lt;/strong&gt;, find your snapshot, select the file, and click &lt;strong&gt;Restore&lt;/strong&gt;—and just like that, it’s back.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj85j0c1nk66u25yazky.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%2Foj85j0c1nk66u25yazky.png" alt="Image description" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Gate Access to Your Corporate Network Only
&lt;/h2&gt;

&lt;p&gt;The last piece of the puzzle: lock the storage account so only your office network can reach it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Under &lt;strong&gt;Virtual networks&lt;/strong&gt;, click &lt;strong&gt;+ Create&lt;/strong&gt; and spin up a simple VNet with one subnet (defaults are fine).
&lt;/li&gt;
&lt;li&gt;In that subnet’s settings, add a &lt;strong&gt;Service endpoint&lt;/strong&gt; for &lt;strong&gt;Microsoft.Storage&lt;/strong&gt; → &lt;strong&gt;Save&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Back in your storage account’s &lt;strong&gt;Networking&lt;/strong&gt; tab, set &lt;strong&gt;Public network access&lt;/strong&gt; to &lt;strong&gt;Selected networks&lt;/strong&gt; only, then add your VNet/subnet → &lt;strong&gt;Save&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Try browsing your file share from home—you’ll see “Not authorized,” because only your office network is allowed.
t]*
&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%2F4rq4ew8m3if8tn9c88ah.png" alt="Image description" width="800" height="429"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fim4w3ji5f2y6i976nwtg.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%2Fim4w3ji5f2y6i976nwtg.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;And there you have it—a comprehensive, yet down‑to‑earth guide to building a secure, high‑availability storage solution in Azure. You’ve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Created a geo‑redundant “private” account
&lt;/li&gt;
&lt;li&gt;Locked down your containers and granted temporary partner access
&lt;/li&gt;
&lt;li&gt;Automated cost‑saving lifecycle rules
&lt;/li&gt;
&lt;li&gt;Replicated public assets to private backup
&lt;/li&gt;
&lt;li&gt;Set up classic file shares with snapshots
&lt;/li&gt;
&lt;li&gt;Locked everything to your corporate network
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>How to create Azure Blob Storage Account: A beginner's step by step guide</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Wed, 30 Apr 2025 00:03:04 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/how-to-create-azure-blob-storage-account-a-beginners-step-by-step-guide-ed7</link>
      <guid>https://dev.to/adesola_kehinde/how-to-create-azure-blob-storage-account-a-beginners-step-by-step-guide-ed7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Azure Blob Storage is a highly scalable and cost-effective cloud storage solution for storing large amounts of unstructured data. Whether you’re storing text, images, or videos, Azure Blob Storage is designed to handle massive data sets with ease. In this guide, we’ll walk you through the step-by-step process of creating an Azure Blob Storage account and configuring it for secure and efficient use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-Step Process:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Step 1: Log in to the Azure Portal&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Azure portal.&lt;/li&gt;
&lt;li&gt;Log in with your Azure credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 2: Search for Blob Storage&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, use the search bar at the top to search for Storage accounts.&lt;/li&gt;
&lt;li&gt;Select Storage accounts from the results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Step 3: Create a New Storage Account&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the + Create button to start the creation process.&lt;/li&gt;
&lt;li&gt;Select the Subscription and Resource Group (you can use an existing one or create a new one).&lt;/li&gt;
&lt;li&gt;Provide a unique name for your Storage account (it must be globally unique).&lt;/li&gt;
&lt;li&gt;Select a Region where your storage account will reside.&lt;/li&gt;
&lt;li&gt;Choose the Performance tier (Standard is usually sufficient for most cases).&lt;/li&gt;
&lt;li&gt;Under the Redundancy tab, choose Locally-Redundant Storage (LRS) for cost-effective storage.&lt;/li&gt;
&lt;li&gt;Review the configuration and click Create.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 4: Configure Storage Account Settings&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once the storage account is created, navigate to Data management and select Redundancy.&lt;/li&gt;
&lt;li&gt;Choose Locally-redundant storage (LRS) in the Redundancy dropdown.&lt;/li&gt;
&lt;li&gt;Click Save to apply your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 5: Enabling Secure Transfer and TLS&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Settings section, select the Configuration blade.&lt;/li&gt;
&lt;li&gt;Ensure Secure transfer required is Enabled to ensure only secure connections.&lt;/li&gt;
&lt;li&gt;Set the Minimal TLS version to 1.2 for stronger security.&lt;/li&gt;
&lt;li&gt;Click Save to apply these settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 6: Disable Shared Key Access&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Under Settings, go to the Configuration blade.&lt;/li&gt;
&lt;li&gt;Disable Allow storage account key access to improve security.&lt;/li&gt;
&lt;li&gt;Click Save.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 7: Allow Public Network Access&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Security + Networking section, select the Networking blade.&lt;/li&gt;
&lt;li&gt;Ensure Public network access is set to Enabled from all networks.&lt;/li&gt;
&lt;li&gt;Click Save to finalize the settings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
By following these simple steps, you’ve successfully created an Azure Blob Storage account. This storage solution is ideal for handling large datasets and can be configured with secure access to ensure your data is protected.&lt;/p&gt;

&lt;p&gt;Stay tuned for more in-depth coverage on Azure Blob Storage’s features, redundancy options, and best practices for managing your data.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Exploring Azure Blob Storage: Features, Redundancy, and Best Practices</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Tue, 29 Apr 2025 22:58:39 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/exploring-azure-blob-storage-features-redundancy-and-best-practices-5g8f</link>
      <guid>https://dev.to/adesola_kehinde/exploring-azure-blob-storage-features-redundancy-and-best-practices-5g8f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ever wondered where all that "stuff" on the internet lives? A lot of it, especially things like documents, images, and videos, ends up in places like Azure Blob Storage. Think of it as a giant, super-organized digital warehouse in the cloud. Azure Blob Storage is Microsoft's service that lets you store tons of this unstructured data. It's designed to grow as much as you need, keep your data safe, and not cost you a fortune. In this blog post, we'll break down Azure Blob Storage, its features, how it keeps your data safe (redundancy), and how to use it like a pro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;What is Azure Blob Storage?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine you have a massive amount of stuff to store—way more than your computer could handle. Azure Blob Storage is like a limitless storage space in Microsoft's cloud where you can keep all that data. It's really good at handling all sorts of data, from text and pictures to videos and audio files. It's built to handle huge amounts of data, so you don't have to worry about running out of space. Plus, it's designed to be super reliable and fast. You can get to your data from anywhere with an internet connection using standard web addresses (HTTP or HTTPS).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Azure Blobs&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffpqyhfpah517smmbpdox.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%2Ffpqyhfpah517smmbpdox.png" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, so Azure Blob Storage is the big warehouse. Now, let's talk about how things are organized inside. There are three main ways to store your data, and they're called "blobs":&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Block Blobs:&lt;/strong&gt; These are your workhorse blobs. They're the best choice for storing most common file types, like documents, images, and videos. Think of them as being made up of smaller "blocks" that can be managed individually, which makes them really efficient for uploading and downloading large files. If you're streaming a video or backing up your data, you'll likely be using block blobs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Append Blobs:&lt;/strong&gt; Imagine you're adding entries to a log file. You just keep adding to the end, right? That's what append blobs are for. They're optimized for adding data to the end of a blob, which makes them perfect for things like logging data from applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Page Blobs:&lt;/strong&gt; These are a bit more specialized. Think of them like the virtual hard drives for computers in the cloud. They're designed for storing files that need to be accessed randomly and frequently, and they can get pretty big (up to 8TB!). Azure Virtual Machines use page blobs to store their operating system disks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keeping Your Data Safe: Redundancy Options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0wug8mgksx8t0qrzbbgm.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%2F0wug8mgksx8t0qrzbbgm.png" alt="Image description" width="800" height="1200"&gt;&lt;/a&gt;&lt;br&gt;
Now, the really important stuff: how does Azure Blob Storage make sure your data doesn't disappear? That's where "redundancy" comes in. It's all about making extra copies of your data so that if something goes wrong, you don't lose anything. Azure gives you several ways to do this, and each one offers a different level of protection and cost:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Locally Redundant Storage (LRS):&lt;/strong&gt; This is the simplest option. It makes three copies of your data, but all within the same building (data center). It's the cheapest way to go, but it only protects you from problems within that single data center (like a hard drive failing).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zone-Redundant Storage (ZRS):&lt;/strong&gt; This is a step up in protection. It also makes three copies of your data, but it spreads those copies across three different buildings (availability zones) within the same geographic region. These buildings are independent, so if one loses power, your data is still safe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geo-Redundant Storage (GRS):&lt;/strong&gt; Now we're talking serious protection. GRS copies your data to a data center hundreds of miles away in a completely different region. This protects you from major disasters like a hurricane or an earthquake that could take out an entire region.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read-Access Geo-Redundant Storage (RA-GRS):&lt;/strong&gt; This is like GRS, but with a bonus. Not only does it copy your data to that far-away data center, but it also lets you read that data from the remote location, even if everything is working fine in your primary location. This can be useful for certain situations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geo-zone-redundant storage (GZRS):&lt;/strong&gt; This option combines the best of both worlds. It spreads your data across multiple availability zones in the primary region and replicates it to a secondary region. This gives you excellent protection against both local and regional problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read-access geo-zone-redundant storage (RA-GZRS):&lt;/strong&gt; This is the ultimate in protection. It's like GZRS, but it also lets you read your data from the secondary region. It's the most resilient option Azure Blob Storage offers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Using Azure Blob Storage Like a Pro: Best Practices&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxppdlxxzbbu4pgqm3ryd.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%2Fxppdlxxzbbu4pgqm3ryd.png" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, so you know what it is and how it keeps your data safe. Here's how to use it the right way:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep it Secure:&lt;/strong&gt; Always use the most secure way to transfer your data (HTTPS), and make sure you're using the latest security standards (TLS 1.2 or later). Also, only give people the minimum access they need to your data. Don't give everyone the keys to the whole warehouse!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean Up Automatically:&lt;/strong&gt; Azure has a cool feature called "lifecycle management." You can set up rules that automatically move your data to cheaper storage as it gets older (if you're not accessing it as often) or delete it altogether when you don't need it anymore. This can save you a lot of money!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose the Right Redundancy:&lt;/strong&gt; Don't just pick the most expensive option by default. Think about how important your data is. If it's super critical (like customer data for a major application), use RA-GRS or RA-GZRS. If it's less important (like temporary files), LRS might be fine. For most applications, ZRS or GZRS are great choices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Control Who Can Get In:&lt;/strong&gt; Use Azure's built-in security tools (Azure Active Directory) to manage who can access your data. You can also use special "keys" (Shared Access Signatures, or SAS) to give someone limited access to specific data for a specific amount of time. It's like giving someone a temporary key to one specific room in the warehouse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use the Right Tools for the Job:&lt;/strong&gt; If you're moving a lot of data, especially big files, use a tool called AzCopy. It's designed to be super-fast and efficient for transferring data to and from Azure Blob Storage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep Things Organized:&lt;/strong&gt; Just like you organize files into folders on your computer, organize your blobs into "containers" in Azure Blob Storage. This helps you keep things tidy and makes it easier to manage security settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep an Eye on Things:&lt;/strong&gt; Azure gives you tools to monitor how much storage you're using and how well it's performing. Use these tools to make sure everything is running smoothly and to keep your costs under control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pick the Right Storage Tier:&lt;/strong&gt; Azure Blob Storage has different "tiers" with different prices and performance. "Hot" is for data you access frequently (like active project files), "Cool" is for data you access less often (like backups), and "Archive" is for data you almost never access (like old records). Choosing the right tier can save you a lot of money.&lt;/p&gt;

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

&lt;p&gt;Azure Blob Storage is a really powerful and flexible way to store all sorts of data in the cloud. Whether you're storing website content, backing up your data, or building a data-intensive application, Azure Blob Storage can handle it. By understanding how it works, how to keep your data safe, and how to use it efficiently, you can take full advantage of what it has to offer. It's like having a giant, secure, and well-organized warehouse for all your digital stuff!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>"How to Create a Resource Group in Azure: A Step-by-Step Guide"</title>
      <dc:creator>Adesola Kehinde</dc:creator>
      <pubDate>Fri, 25 Apr 2025 22:15:09 +0000</pubDate>
      <link>https://dev.to/adesola_kehinde/how-to-create-a-resource-group-in-azure-a-step-by-step-guide-4i3</link>
      <guid>https://dev.to/adesola_kehinde/how-to-create-a-resource-group-in-azure-a-step-by-step-guide-4i3</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;In this blog, we’ll walk you through the process of creating a Resource Group in Azure, an essential part of managing and organizing your resources in the cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1:
&lt;/h2&gt;

&lt;p&gt;Log in to the Azure Portal&lt;br&gt;
Begin by navigating to the Azure Portal and logging in with your credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2:
&lt;/h2&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%2Fbmx1t50bprwlqok2kvah.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%2Fbmx1t50bprwlqok2kvah.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
 Searching for Resource Groups&lt;br&gt;
Once logged in, use the search bar to find "Resource Groups".&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3:
&lt;/h2&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%2F4jj8hhllxjy4mwrbl4be.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%2F4jj8hhllxjy4mwrbl4be.png" alt="Image description" width="800" height="478"&gt;&lt;/a&gt;&lt;br&gt;
 Creating a New Resource Group&lt;br&gt;
Click the “+ Create” button and enter your desired Resource Group name and region. After reviewing the settings, click “Create”.&lt;/p&gt;

&lt;p&gt;Creating a Resource Group in Azure is the first step in effectively managing your cloud resources. It allows you to organize and control various Azure services, ensuring they are easily accessible and manageable as you scale your cloud infrastructure. By following the simple steps outlined in this guide, you’re now ready to start leveraging Azure’s powerful tools for your projects.&lt;/p&gt;

&lt;p&gt;Whether you’re just starting with Azure or looking to refine your cloud management skills, the process of creating and managing resource groups is foundational to maintaining an efficient and cost-effective cloud environment.&lt;/p&gt;

&lt;p&gt;Happy cloud computing!&lt;/p&gt;

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