<?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: Ifeoma Usonwa Nwafor</title>
    <description>The latest articles on DEV Community by Ifeoma Usonwa Nwafor (@ifeoma_nwafor).</description>
    <link>https://dev.to/ifeoma_nwafor</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3265042%2F8f12f648-032f-4612-a5c6-9a4696afe0a2.jpg</url>
      <title>DEV Community: Ifeoma Usonwa Nwafor</title>
      <link>https://dev.to/ifeoma_nwafor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ifeoma_nwafor"/>
    <language>en</language>
    <item>
      <title>Introduction to SQL: A Beginner's Guide to Creating, Reading, Updating, and Deleting Data</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Tue, 03 Nov 2026 08:40:43 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/introduction-to-sql-a-beginners-guide-to-creating-reading-updating-and-deleting-data-1pmh</link>
      <guid>https://dev.to/ifeoma_nwafor/introduction-to-sql-a-beginners-guide-to-creating-reading-updating-and-deleting-data-1pmh</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Have you ever wondered how applications store user information, how banks manage customer records, or how online stores keep track of products, prices, and orders?&lt;/p&gt;

&lt;p&gt;Behind many of these systems is a database, and one of the most widely used languages for working with relational databases is &lt;strong&gt;SQL (Structured Query Language)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I recently completed a short course on Introduction to SQL, where I learned fundamental SQL queries for creating tables, retrieving information, inserting records, modifying existing data, deleting records, and applying constraints.&lt;/p&gt;

&lt;p&gt;As part of my learning journey in technology, I want to share these fundamentals in a simple, practical way for anyone taking their first steps into databases, data analysis, software development, or cloud computing.&lt;/p&gt;

&lt;p&gt;Let's get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What is SQL?
&lt;/h2&gt;

&lt;p&gt;SQL stands for &lt;strong&gt;Structured Query Language&lt;/strong&gt;. It is a language used to communicate with relational database management systems (RDBMS) such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MySQL&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Microsoft SQL Server&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Oracle Database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SQL allows us to create database structures, store information, retrieve records, update data, and manage how information is organized.&lt;/p&gt;

&lt;p&gt;For example, imagine a school database containing students' names, ages, and identification numbers. Instead of keeping this information in separate documents, we can organize it in a database table and use SQL to manage it efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Why is SQL useful?
&lt;/h2&gt;

&lt;p&gt;SQL is an important skill across several areas of technology and business.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data analysis:&lt;/strong&gt; Analysts use SQL to retrieve, filter, and organize data to discover trends and generate reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software development:&lt;/strong&gt; Developers use SQL to store and retrieve application data, such as customer accounts, orders, and transactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud computing:&lt;/strong&gt; Cloud engineers work with managed database services such as Azure SQL Database, Amazon RDS, and Google Cloud SQL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business operations:&lt;/strong&gt; Organizations use databases to manage employees, inventory, customer records, and financial information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data management:&lt;/strong&gt; SQL makes it possible to maintain structured information, enforce data rules, and modify records without manually editing every entry.&lt;/p&gt;

&lt;p&gt;Learning SQL provides a foundation for understanding how modern applications and data-driven systems work.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Understanding database tables
&lt;/h2&gt;

&lt;p&gt;A relational database organizes data into tables. A table contains &lt;strong&gt;columns&lt;/strong&gt; and &lt;strong&gt;rows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, a table called &lt;code&gt;students&lt;/code&gt; could contain the following information:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Ada&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Chidi&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Amaka&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id&lt;/code&gt;, &lt;code&gt;name&lt;/code&gt;, and &lt;code&gt;age&lt;/code&gt; are columns.&lt;/li&gt;
&lt;li&gt;Each student's information represents a row.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;INTEGER&lt;/code&gt; is a data type used for whole numbers.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;TEXT&lt;/code&gt; is a data type used for text values.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let's explore the SQL commands used to create and manage a table like this.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Creating a table with CREATE TABLE
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;CREATE TABLE&lt;/code&gt; statement creates a new table in a database.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's break it down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;CREATE TABLE&lt;/code&gt; tells the database to create a new table.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;students&lt;/code&gt; is the table name.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;id INTEGER&lt;/code&gt; creates a column for whole numbers.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;name TEXT&lt;/code&gt; creates a column for text.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;age INTEGER&lt;/code&gt; creates a column for whole numbers.&lt;/li&gt;
&lt;li&gt;The parentheses contain the column definitions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The semicolon (&lt;code&gt;;&lt;/code&gt;) marks the end of the SQL statement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this useful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before storing information, we need a structure that defines how the data will be organized. Creating a table establishes that structure.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Retrieving data with SELECT
&lt;/h2&gt;

&lt;p&gt;Once information has been stored in a table, we can retrieve it using &lt;code&gt;SELECT&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;To display all columns and rows from the students table, we write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The asterisk (&lt;code&gt;*&lt;/code&gt;) means all columns.&lt;/p&gt;

&lt;p&gt;If we only want students' names, we can specify the column:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To retrieve both names and ages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also filter results using &lt;code&gt;WHERE&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This returns only records where the student's age is 22.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this useful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;SELECT&lt;/code&gt; statement is essential when searching databases for specific information. For example, a business could retrieve customer details, find products, or generate reports from stored records.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Adding records with INSERT INTO
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;INSERT INTO&lt;/code&gt; statement adds new records to a table.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Ada'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;INSERT INTO students&lt;/code&gt; identifies the table.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;(id, name, age)&lt;/code&gt; specifies the columns receiving data.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;VALUES&lt;/code&gt; provides the information to insert.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;'Ada'&lt;/code&gt; is enclosed in single quotes because it is text.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We can add another student:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Chidi'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each statement inserts one new record.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this useful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Applications use insert operations whenever new information needs to be saved, such as registering a user, recording an order, or adding a new employee.&lt;/p&gt;

&lt;p&gt;Note: These examples assume the table is empty. If an existing record already uses the same ID, the insert may fail when a uniqueness constraint is enforced.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Modifying a table with ALTER TABLE and ADD COLUMN
&lt;/h2&gt;

&lt;p&gt;Sometimes, our database needs additional information that was not included when the table was first created.&lt;/p&gt;

&lt;p&gt;For example, we may decide to store students' email addresses.&lt;/p&gt;

&lt;p&gt;We can add a new column using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;ADD&lt;/span&gt; &lt;span class="k"&gt;COLUMN&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's understand the statement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ALTER TABLE&lt;/code&gt; modifies an existing table's structure.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;students&lt;/code&gt; identifies the table.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ADD COLUMN&lt;/code&gt; adds a new column.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;email TEXT&lt;/code&gt; defines the new column and its data type.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Existing records will generally have &lt;code&gt;NULL&lt;/code&gt; in the new column until a value is provided, depending on the database and column definition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this useful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Database requirements change as applications grow. &lt;code&gt;ALTER TABLE&lt;/code&gt; allows us to extend a table's structure without recreating the entire table.&lt;/p&gt;

&lt;p&gt;The exact syntax and supported alterations can vary between database systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Updating existing records with UPDATE, SET, and WHERE
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;UPDATE&lt;/code&gt; statement changes data already stored in a table.&lt;/p&gt;

&lt;p&gt;Suppose Ada's age changes from 22 to 23. We can update her record with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's break it down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;UPDATE students&lt;/code&gt; identifies the table to modify.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SET age = 23&lt;/code&gt; assigns a new value to the age column.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WHERE id = 1&lt;/code&gt; identifies the record to update.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;WHERE&lt;/code&gt; clause is particularly important because it helps target the correct record.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if we leave out WHERE?&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This statement can update the age of every row in the table.&lt;/p&gt;

&lt;p&gt;Always check your conditions before running an update, especially in a production database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this useful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Businesses frequently update customer information, employee details, product prices, and order statuses. The &lt;code&gt;UPDATE&lt;/code&gt; statement makes these changes possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Deleting records with DELETE FROM
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;DELETE FROM&lt;/code&gt; statement removes records from a table.&lt;/p&gt;

&lt;p&gt;For example, to delete the student whose ID is 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DELETE&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, &lt;code&gt;DELETE FROM students&lt;/code&gt; identifies the table, while &lt;code&gt;WHERE id = 2&lt;/code&gt; identifies the record to remove.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Omitting the &lt;code&gt;WHERE&lt;/code&gt; clause can delete every row in the table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;DELETE&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This removes all records but ordinarily leaves the table itself in place.&lt;/p&gt;

&lt;p&gt;To remove the table structure entirely, a different command, &lt;code&gt;DROP TABLE&lt;/code&gt;, is used.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is this useful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Deleting data helps maintain accurate records, remove obsolete information, and support data-retention policies. In real applications, deletion should be handled carefully because it may be difficult to recover deleted records without backups or transaction support.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Understanding SQL constraints
&lt;/h2&gt;

&lt;p&gt;Constraints are rules applied to table columns to help maintain accurate and reliable data.&lt;/p&gt;

&lt;p&gt;Without constraints, a database might allow missing names, duplicate identifiers, or values that do not meet the requirements of the application.&lt;/p&gt;

&lt;p&gt;Here are some common SQL constraints.&lt;/p&gt;

&lt;h3&gt;
  
  
  PRIMARY KEY
&lt;/h3&gt;

&lt;p&gt;A primary key uniquely identifies each record in a table.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each student must have a unique ID. A primary key cannot contain duplicate values or &lt;code&gt;NULL&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  NOT NULL
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;NOT NULL&lt;/code&gt; constraint prevents a column from accepting &lt;code&gt;NULL&lt;/code&gt; values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This requires every inserted student record to include a non-&lt;code&gt;NULL&lt;/code&gt; name.&lt;/p&gt;

&lt;h3&gt;
  
  
  UNIQUE
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;UNIQUE&lt;/code&gt; constraint prevents duplicate values in a column or combination of columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;UNIQUE&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps prevent multiple records from sharing the same non-&lt;code&gt;NULL&lt;/code&gt; email address. How &lt;code&gt;NULL&lt;/code&gt; values are handled by unique constraints can vary by database system.&lt;/p&gt;

&lt;h3&gt;
  
  
  CHECK
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;CHECK&lt;/code&gt; constraint enforces a condition on the data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;CHECK&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This prevents the database from accepting a negative age when the constraint is enforced.&lt;/p&gt;

&lt;h3&gt;
  
  
  DEFAULT
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;DEFAULT&lt;/code&gt; constraint supplies a value when an insert does not specify one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;DEFAULT&lt;/span&gt; &lt;span class="s1"&gt;'active'&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a record is inserted without specifying &lt;code&gt;status&lt;/code&gt;, the database uses &lt;code&gt;'active'&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why are constraints useful?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Constraints help enforce data integrity at the database level. They reduce the risk of invalid or inconsistent records and support more reliable applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Putting the commands together
&lt;/h2&gt;

&lt;p&gt;Let's combine what we have learned into a simple workflow.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- 1. Create the table&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;CHECK&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;-- 2. Insert a record&lt;/span&gt;
&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Ada'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;-- 3. Retrieve all records&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;-- 4. Update a record&lt;/span&gt;
&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;-- 5. Retrieve a specific record&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;-- 6. Delete a record&lt;/span&gt;
&lt;span class="k"&gt;DELETE&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example demonstrates a basic database lifecycle: creating a table, inserting information, reading it, updating it, and deleting it.&lt;/p&gt;

&lt;p&gt;The comments beginning with &lt;code&gt;--&lt;/code&gt; are explanatory notes and are not executed as SQL statements.&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Best practices when learning SQL
&lt;/h2&gt;

&lt;p&gt;As you continue practising SQL, keep these principles in mind:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Use meaningful names.&lt;/strong&gt; Choose clear table and column names that describe the data they contain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understand your data types.&lt;/strong&gt; Select appropriate types for numbers, text, dates, and other values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use constraints.&lt;/strong&gt; Define rules that prevent invalid or duplicate data where appropriate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be careful with UPDATE and DELETE.&lt;/strong&gt; Verify your &lt;code&gt;WHERE&lt;/code&gt; conditions before executing changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practise with sample data.&lt;/strong&gt; Experiment in a local database before working with important information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn transactions and backups.&lt;/strong&gt; These concepts help protect data when changes go wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep learning.&lt;/strong&gt; Explore filtering, sorting, aggregate functions, joins, indexes, and database security as your confidence grows.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Learning SQL has introduced me to an important part of how information is stored, organized, and managed in modern technology.&lt;/p&gt;

&lt;p&gt;Understanding commands such as &lt;code&gt;CREATE TABLE&lt;/code&gt;, &lt;code&gt;SELECT&lt;/code&gt;, &lt;code&gt;INSERT INTO&lt;/code&gt;, &lt;code&gt;ALTER TABLE&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt;, and &lt;code&gt;DELETE FROM&lt;/code&gt; provides a practical foundation for working with relational databases. Learning constraints also shows why data quality and integrity matter.&lt;/p&gt;

&lt;p&gt;For anyone interested in data analysis, software development, cloud computing, or DevOps, SQL is a valuable skill to develop. Databases are a fundamental part of many applications, and knowing how to interact with them helps us better understand the systems we build and support.&lt;/p&gt;

&lt;p&gt;This is another step in my journey of learning, practising, and sharing knowledge as I grow in technology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My next step:&lt;/strong&gt; Continue practising SQL and explore more advanced concepts, including filtering with &lt;code&gt;ORDER BY&lt;/code&gt;, summarizing data with aggregate functions, and combining tables using &lt;code&gt;JOIN&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you are also learning SQL, I would love to hear from you in the comments:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which SQL command did you find easiest to understand, and which one took you the longest to learn?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's keep learning and growing together!&lt;/p&gt;

&lt;p&gt;#SoftwareDevelopment #LearningInPublic&lt;/p&gt;

</description>
      <category>sql</category>
      <category>cloudcomputing</category>
      <category>database</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Learn how to create, configure, and connect to your first Linux virtual machine in Microsoft Azure through a practical, step-by-step tutorial.</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Wed, 28 Oct 2026 08:01:04 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/learn-how-to-create-configure-and-connect-to-your-first-linux-virtual-machine-in-microsoft-azure-4j4j</link>
      <guid>https://dev.to/ifeoma_nwafor/learn-how-to-create-configure-and-connect-to-your-first-linux-virtual-machine-in-microsoft-azure-4j4j</guid>
      <description>&lt;p&gt;Linux virtual machines play an important role in cloud computing. They provide flexible, scalable, and cost-effective environments for running web applications, databases, APIs, development environments, and other business-critical workloads.&lt;/p&gt;

&lt;p&gt;Understanding how to create and configure a Linux virtual machine is a valuable foundational skill. It provides practical experience with cloud infrastructure, operating system administration, networking, security, and remote server access. These skills also form the foundation for more advanced practices such as infrastructure automation, containerization, continuous integration and continuous delivery (CI/CD), and cloud infrastructure management.&lt;/p&gt;

&lt;h3&gt;
  
  
  What You Need Before You Start
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An Azure account&lt;/li&gt;
&lt;li&gt;A terminal (PowerShell for Windows, or the built-in Terminal for macOS/Linux)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;br&gt;
-Open your Azure account ,locate the search terminal and type &lt;strong&gt;virtual machine&lt;/strong&gt;&lt;br&gt;
-click on &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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ekbswlwmulccoefj9k2.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ekbswlwmulccoefj9k2.png" alt=" " width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a resource group(choose a name for the new vm)&lt;/li&gt;
&lt;li&gt;Select the region you want to operate from.&lt;/li&gt;
&lt;li&gt;Select an &lt;strong&gt;Image&lt;/strong&gt; and &lt;strong&gt;size&lt;/strong&gt;.
At the Admin Account section&lt;/li&gt;
&lt;li&gt;select password, create a new one.&lt;/li&gt;
&lt;li&gt;select inbound ports as &lt;strong&gt;HTTPS (80) and SSH (22)&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fukucnlu0zlh1b5ge6zhl.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fukucnlu0zlh1b5ge6zhl.png" alt=" " width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

&lt;p&gt;-Go to monitoring broad and disable it, this is done to keep your work private. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click on &lt;strong&gt;review and create&lt;/strong&gt;. &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;click on &lt;strong&gt;Go to resource&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuhet50a87pc4ja44z3as.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuhet50a87pc4ja44z3as.png" alt=" " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the Native SSH page click on VM access (check access)- this allows you certify your IP address is up and running, make sure to copy the IP address and keep aside.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F58uzy2t2xy0rfevgnl26.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F58uzy2t2xy0rfevgnl26.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 3&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the powershell program - paste the SSH command (IP address)&lt;/li&gt;
&lt;li&gt;Respond &lt;strong&gt;yes&lt;/strong&gt; to the pop up question .&lt;/li&gt;
&lt;li&gt;Fill the password you created while setting up your VM(virtual machine)&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5tnw41qbfifut57wetah.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5tnw41qbfifut57wetah.png" alt=" " width="736" height="738"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;To update the VM type &lt;strong&gt;sudo apt update&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;To have admin rights type &lt;strong&gt;sudo su&lt;/strong&gt;, then &lt;strong&gt;apt install nginx&lt;/strong&gt; to install the program, then type &lt;strong&gt;yes&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcsuwxxmsji0u0ytsjl8f.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcsuwxxmsji0u0ytsjl8f.png" alt=" " width="800" height="682"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have successfully created a virtual machine on linux.&lt;/p&gt;

&lt;p&gt;Whether you are a company looking to deploy reliable services or a beginner working toward a career in cloud engineering, learning to create a Linux virtual machine in Microsoft Azure is an important step toward understanding how modern cloud infrastructure works.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>linux</category>
      <category>beginners</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Overcoming the 'Git Scares': A Friendly Beginner's Guide to Open Source. Part 1</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Wed, 09 Sep 2026 17:47:29 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/overcoming-the-git-scares-a-friendly-beginners-guide-to-open-source-pt-1-adding-yourself-to-1fm3</link>
      <guid>https://dev.to/ifeoma_nwafor/overcoming-the-git-scares-a-friendly-beginners-guide-to-open-source-pt-1-adding-yourself-to-1fm3</guid>
      <description>&lt;p&gt;Entering open source can feel daunting. The sheer fear of running the wrong command in your terminal, breaking a codebase, or looking inexperienced stops many capable developers from making their very first contribution. This is the "Git Scares"—and every engineer has felt it.&lt;/p&gt;

&lt;p&gt;This guide eliminates that barrier. Instead of throwing you into complex codebases and messy bug fixes, Part 1 walks you through the cleanest, zero-risk way to submit your first Pull Request: adding your name to CONTRIBUTORS.md in an active community repository (PinpointPro).&lt;/p&gt;

&lt;p&gt;By the end of this tutorial, you will have completed the full professional Git lifecycle—forking, cloning, branching, committing, pushing, and opening a Pull Request—without the risk of breaking production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You Need Before You Start&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A free GitHub account&lt;/li&gt;
&lt;li&gt;Git installed on your computer (Download Git)&lt;/li&gt;
&lt;li&gt;A terminal (Git Bash or PowerShell for Windows, or the built-in Terminal for macOS/Linux)&lt;/li&gt;
&lt;li&gt;A simple text editor (Notepad, VS Code, or Vim)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Take a breath, open your terminal, and let’s make your first contribution!&lt;/p&gt;

&lt;h1&gt;
  
  
  STEP 1
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Fork the Repository on GitHub
&lt;/h3&gt;

&lt;p&gt;Forking gives you a space you fully own — you can experiment, commit, and break things without touching the original project. We are working with a repository from &lt;em&gt;[&lt;a href="https://github.com/raphgm/pinpointpro" rel="noopener noreferrer"&gt;https://github.com/raphgm/pinpointpro&lt;/a&gt;]&lt;/em&gt; .Forking also creates a personal copy of the PinpointPro repository under your own GitHub account, with its full commit history.&lt;/p&gt;

&lt;p&gt;-1. Open your browser and go to: &lt;a href="https://github.com/raphgm/pinpointpro" rel="noopener noreferrer"&gt;https://github.com/raphgm/pinpointpro&lt;/a&gt;&lt;br&gt;
 -2. Click the 'Fork' button in the top-right corner&lt;br&gt;
 -3. Leave all settings as default and click 'Create fork'&lt;br&gt;
 -4. GitHub will redirect you to your fork at: &lt;a href="https://github.com/YOUR_USERNAME/pinpointpro" rel="noopener noreferrer"&gt;https://github.com/YOUR_USERNAME/pinpointpro&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  STEP 2
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Configure Your Git Identity
&lt;/h3&gt;

&lt;p&gt;Without this, Git cannot create a commit — it will error and ask you to configure your identity first. Your email must match your GitHub account so your commits are correctly linked to your GitHub profile and appear in your contribution graph.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"you@example.com"&lt;/span&gt;
git config &lt;span class="nt"&gt;--list&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6f99i61a1tj1ga4eeqo0.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6f99i61a1tj1ga4eeqo0.png" alt=" " width="718" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  STEP 3
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Clone Your Fork to Your Machine
&lt;/h3&gt;

&lt;p&gt;All Git commands must run from inside the repository folder. The clone creates a full local copy — including commit history — so you can work offline.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/YOUR_USERNAME/pinpointpro.git
&lt;span class="nb"&gt;cd &lt;/span&gt;pinpointpro
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9tz25elrrv5m4m0234sl.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9tz25elrrv5m4m0234sl.png" alt=" " width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  STEP 4
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Wire Up the Upstream Remote
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add the Upstream Remote -The upstream remote lets you pull those changes before branching — preventing stale-branch conflicts.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add upstream https://github.com/raphgm/pinpointpro.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Verify Both Remotes Exist -Never assume a command worked — always verify. A misconfigured remote is one of the most common sources of failed pushes and unexpected PR targets.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Sync Your Fork with Upstream -Fetches all new commits from the upstream repo, then merges them into your local main branch so your fork is fully up to date.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git fetch upstream
git checkout main
git merge upstream/main
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fotcatcnidvee2jyltlil.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fotcatcnidvee2jyltlil.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  STEP 5
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Create Your Feature Branch
&lt;/h2&gt;

&lt;p&gt;Feature branches isolate every piece of work from main. If your PR is rejected, nothing is affected. If a colleague opens a PR at the same time, there's no conflict. This is non-negotiable in every professional engineering team. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; feature/yourname-add-contributor
git branch
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzko326bsg3l97guxbkud.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzko326bsg3l97guxbkud.png" alt=" " width="721" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  STEP 6
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Choose Your Contribution &amp;amp; Make It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Open the file:&lt;/li&gt;
&lt;li&gt;mac/linux: vi CONTRIBUTORS.md&lt;/li&gt;
&lt;li&gt;windows (Git Bash): notepad CONTRIBUTORS.md&lt;/li&gt;
&lt;li&gt;&lt;p&gt;windows (PowerShell): notepad .\CONTRIBUTORS.md&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Append this block at the very bottom :&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your Full Name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; @your-username&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contribution:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; YYYY-MM-DD&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;USE&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git diff CONTRIBUTORS.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Shows the differences between your working files and the last commit&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzunkqwjzsu07mrlhvwti.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzunkqwjzsu07mrlhvwti.png" alt=" " width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  STEP 7
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Stage &amp;amp; Commit Your Work
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Stage Your Changed Files-Staging lets you craft precise, single-purpose commits , intentional staging produces a clean, auditable commit history.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;_USE _&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 CONTRIBUTORS.md
git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;to confirm what is staged&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Commit with Conventional Commits Format -Records a permanent, labelled snapshot of your staged changes in the repository's history.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"docs(contributors): add @yourname - Project name"&lt;/span&gt;
git log &lt;span class="nt"&gt;--oneline&lt;/span&gt; &lt;span class="nt"&gt;-3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;to verify your commits&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhochi09vjo6s4g9mw4zl.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhochi09vjo6s4g9mw4zl.png" alt=" " width="799" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  STEP 8
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Push &amp;amp; Open a Pull Request
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Push Your Feature Branch to Your Fork - Uploads your local branch to your fork on GitHub. A local commit can be lost; a pushed commit is durable and shareable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin feature/yourname-add-contributor
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frjecdqgpceqim25fwqz9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frjecdqgpceqim25fwqz9.png" alt=" " width="727" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the Pull Request on GitHub- Formally proposes your branch for review and merge into the original repository's main branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
-After pushing, GitHub prints a URL — click it, or navigate to:&lt;br&gt;
&lt;a href="https://github.com/raphgm/pinpointpro/compare" rel="noopener noreferrer"&gt;https://github.com/raphgm/pinpointpro/compare&lt;/a&gt;&lt;br&gt;
-Configure the PR -head repository: YOUR_USERNAME/pinpointpro | compare: your-branch-name&lt;br&gt;
-Write a clear PR title matching your commit message format. Example -docs(contributors): add @yourname - Phase 2 Project&lt;br&gt;
-In the PR description, explain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What you changed&lt;/li&gt;
&lt;li&gt;Why it improves the project&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;How you tested it (if applicable)&lt;br&gt;
-Click 'Create pull request'&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm Your PR Is Open and Awaiting Review - Always verify the end state of every action. A PR that was never submitted cannot be reviewed or merged.
-Your PR should show: 'Open — 1 review required&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Create the README File - README.md documents what this project is and how to reproduce it — the first thing anyone sees when they open the repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&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;touch &lt;/span&gt;README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Document What You Did -A good README captures what was learned and which commands prove it, so it doubles as both documentation and a portfolio artifact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&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;printf&lt;/span&gt; &lt;span class="s1"&gt;'# PinpointPro Git Flow Contribution\n\nForked, cloned, and contributed to a real open-source repo using the full Git Flow lifecycle.\n\n## Commands Covered\n\n```

bash\ngit clone https://github.com/YOUR_USERNAME/pinpointpro.git\ngit remote add upstream https://github.com/raphgm/pinpointpro.git\ngit fetch upstream\ngit checkout -b feature/yourname-add-contributor\ngit add CONTRIBUTORS.md\ngit commit -m "docs(contributors): add @yourname"\ngit push -u origin feature/yourname-add-contributor\n

```\n'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Check Status and Stage Your Changes -Always check git status before committing so you know exactly what you're about to save&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Commit Your Work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"docs: add README for PinpointPro Git Flow lab"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Push to GitHub&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;USE&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin feature/yourname-add-contributor
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa12hpazpwui6katfft2o.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa12hpazpwui6katfft2o.png" alt=" " width="800" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎉 You Just Beat the "Git Scares"!&lt;br&gt;
Look at that: you forked, cloned, branched, committed, pushed, and officially submitted a Pull Request to an open-source project.&lt;/p&gt;

&lt;p&gt;The hardest step in open source is rarely writing the code—it’s getting past the fear of hitting Enter in the terminal for the very first time. You’ve now mastered the exact Git lifecycle used by professional engineering teams every single day.&lt;/p&gt;

&lt;p&gt;💬 Share Your Win!&lt;br&gt;
Drop your GitHub handle or your PR link in the comments below so we can celebrate your first contribution together!&lt;/p&gt;

&lt;p&gt;Hit any roadblocks or get an unexpected terminal message? Comment with what went wrong—I'm actively checking the comments to help troubleshoot.&lt;/p&gt;

&lt;p&gt;If this guide made Git feel a little less intimidating, don't forget to heart ❤️ and bookmark 🦄 the post so other beginners can find it.&lt;/p&gt;

&lt;p&gt;Stay tuned for Part 2, where we'll dive into finding "Good First Issues," reading project issue trackers, and resolving your very first merge conflict!&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>career</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Deploying Scalable Virtual Machines on AWS Using Amazon EC2: A Beginner’s Guide.</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Fri, 27 Feb 2026 12:43:30 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/deploying-scalable-virtual-machines-on-aws-using-amazon-ec2-a-beginners-guide-3jic</link>
      <guid>https://dev.to/ifeoma_nwafor/deploying-scalable-virtual-machines-on-aws-using-amazon-ec2-a-beginners-guide-3jic</guid>
      <description>&lt;p&gt;Cloud computing has transformed how individuals and organizations deploy computing resources, and one of its core components is the virtual machine. A virtual machine (VM) is a software-based computer that runs operating systems and applications just like a physical server, but within a cloud environment. On the Amazon Web Services (AWS) platform, virtual machines are provisioned through Amazon Elastic Compute Cloud (Amazon EC2), which provides secure and resizable compute capacity in the cloud. EC2 allows users to scale resources up or down based on demand, making it ideal for startups, developers, and enterprises. By leveraging AWS infrastructure, users benefit from flexibility, cost-efficiency, and high availability. This guide introduces beginners to the fundamental concepts and practical steps involved in deploying scalable virtual machines using Amazon EC2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To create an EC2 instance&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On your AWS home page search for EC2 &lt;/li&gt;
&lt;li&gt;Click on the dashboard&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%2F3m13bz00llvbcyk9jg9g.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%2F3m13bz00llvbcyk9jg9g.png" alt=" " width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-click on Launch Instances&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%2Fl9esx7jzbehtn28cnv5j.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%2Fl9esx7jzbehtn28cnv5j.png" alt=" " width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Select Name and Tag , click on add tag.&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%2Fvnggcsao2g98y65qa5pe.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%2Fvnggcsao2g98y65qa5pe.png" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-select ubuntu or amazon linux&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%2F8aqzm92lfked7bwg7muu.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%2F8aqzm92lfked7bwg7muu.png" alt=" " width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-scroll down to key pair, click on add ,create a name and click on 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%2Fm0ya5235izol2hk7lqtg.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%2Fm0ya5235izol2hk7lqtg.png" alt=" " width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-leave all other sections as default&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;-click on launch image&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%2Fp7bu676rpyiejmfsdip2.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%2Fp7bu676rpyiejmfsdip2.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;go back to the dashboard and click connect *&lt;/em&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%2Fnl02506iuazakrxk9s3u.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%2Fnl02506iuazakrxk9s3u.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-click on instance and click connect&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%2Ffj58zppcd1xgwa02rv75.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%2Ffj58zppcd1xgwa02rv75.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The EC2 / virtual machine is set and ready for use.&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%2F9a1xrybn9p5e4sgojp96.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%2F9a1xrybn9p5e4sgojp96.png" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>devops</category>
      <category>aws</category>
      <category>cloud</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>“Provisioning a Virtual Machine in Microsoft Azure: A Practical Guide”</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Fri, 27 Feb 2026 11:01:31 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/provisioning-a-virtual-machine-in-microsoft-azure-a-practical-guide-13dc</link>
      <guid>https://dev.to/ifeoma_nwafor/provisioning-a-virtual-machine-in-microsoft-azure-a-practical-guide-13dc</guid>
      <description>&lt;p&gt;A virtual machine (VM) is a software-based emulation of a physical computer that runs an operating system and applications using virtualized hardware resources. Creating a virtual machine on the Microsoft Azure Portal or AWS platform allows users to deploy and manage scalable computing resources without purchasing physical hardware. Some key components of a VM include virtual CPU (vCPU), memory (RAM), virtual storage disks, network interfaces, and a hypervisor that manages resource allocation.&lt;br&gt;
Virtual machines are needed to support flexible development, testing, remote work, and workload isolation while optimizing infrastructure costs. For professionals, VMs provide scalability, disaster recovery options, secure environments, and the ability to deploy applications globally within minutes.&lt;br&gt;
As cloud adoption accelerates, virtual machines will continue evolving with automation, AI-driven optimization, and hybrid cloud integration shaping the future of computing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On Azure portal search for Virtual Machines.&lt;/li&gt;
&lt;li&gt;Click on &lt;em&gt;Azure Virtual Machine&lt;/em&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%2F5pzovseoep6es9ocww8x.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%2F5pzovseoep6es9ocww8x.png" alt=" " width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select virtual machine hosted by Azure.&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%2Fslk14oyqc0m4i5s59bk6.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%2Fslk14oyqc0m4i5s59bk6.png" alt=" " width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;br&gt;
select &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscription&lt;/li&gt;
&lt;li&gt;Create Resource group - name it (its preferred to create a new RG for A new VM to avoid mix -up of old and new data)&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%2Fghawuf5326gak26bgtwz.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%2Fghawuf5326gak26bgtwz.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;any region of your choose.&lt;/li&gt;
&lt;li&gt;Configure Virtual Machine details , choose a unique name. &lt;/li&gt;
&lt;li&gt;Security- standard&lt;/li&gt;
&lt;li&gt;Operating system - windows server Data center *64 Gen 2&lt;/li&gt;
&lt;li&gt;check the spot discount (optional, this is used to minimize cost.&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%2F9z3ne5pik8i8fsz745db.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%2F9z3ne5pik8i8fsz745db.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication type - password&lt;/li&gt;
&lt;li&gt;choose a username and password of your choice&lt;/li&gt;
&lt;li&gt;configure inbound port rules - RDP (for windows), SSH ( for linux)&lt;/li&gt;
&lt;li&gt;select port 80&lt;/li&gt;
&lt;li&gt;accept the license agreement&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%2Ffkl77v2znd0g2tt0m1ki.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%2Ffkl77v2znd0g2tt0m1ki.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Monitoring Tab&lt;/li&gt;
&lt;li&gt;Disable Boot Diagnostics&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%2Fmaxlnwp1l9hef9b8sbo4.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%2Fmaxlnwp1l9hef9b8sbo4.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Tags Tab&lt;/li&gt;
&lt;li&gt;choose a name and value of your choose. ** tags helps to identify data on the 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%2Fvjy96njhgnxbtbrb2azk.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%2Fvjy96njhgnxbtbrb2azk.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to the Review + create Tab&lt;/li&gt;
&lt;li&gt;when the validation process is complete &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%2F63v6ezyr2dd16ubm2qyw.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%2F63v6ezyr2dd16ubm2qyw.png" alt=" " width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;select "create" to deploy.&lt;/li&gt;
&lt;li&gt;after a successful deployment click on 'GO to resource'&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%2Fqjeuayp0m2cnwvi2o1nc.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%2Fqjeuayp0m2cnwvi2o1nc.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click on 'connect' to kick start your 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%2Fwzmuaibpjfct3926cdnx.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%2Fwzmuaibpjfct3926cdnx.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;br&gt;
-to increase your VMs time out , click on public IP  address then increase it to 30.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;br&gt;
To download and run Open RDP file&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;select Native RDP - download the file&lt;/li&gt;
&lt;li&gt;open RDP file on your computer&lt;/li&gt;
&lt;li&gt;Enter Username + password &lt;/li&gt;
&lt;li&gt;click connect to access VM &lt;/li&gt;
&lt;li&gt;click continue.&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%2Fvajwdpb0jfoal15e74ev.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%2Fvajwdpb0jfoal15e74ev.png" alt=" " width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

&lt;p&gt;I selected my region as Turkey hence the Turkish language on my virtual machine&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%2Fw3t5dl6ywul02nfxzff9.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%2Fw3t5dl6ywul02nfxzff9.png" alt=" " width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your virtual computer is ready to be used , you can access any data stored on the cloud.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aws</category>
      <category>cloud</category>
      <category>azure</category>
    </item>
    <item>
      <title>Providing shared file storage on Azure</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Tue, 15 Jul 2025 16:43:42 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/providing-shared-file-storage-on-azure-2bp5</link>
      <guid>https://dev.to/ifeoma_nwafor/providing-shared-file-storage-on-azure-2bp5</guid>
      <description>&lt;p&gt;&lt;strong&gt;How to Provide shared file storage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 1&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the portal, search for and select** Storage accounts.**
Select + &lt;strong&gt;Create.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;For Resource group select &lt;strong&gt;Create new&lt;/strong&gt;. Give your resource group a name and select **OK **to save your changes.&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Storage account name&lt;/strong&gt;. Ensure the name meets the naming requirements.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Performance to Premium&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the Premium account type to &lt;strong&gt;File shares&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Set the Redundancy to &lt;strong&gt;Zone-redundant storage&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt; and then &lt;strong&gt;Create&lt;/strong&gt; the storage account.&lt;/li&gt;
&lt;li&gt;Wait for the resource to deploy.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Go to resource&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%2Fezw8pn7up213f0lwn0px.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%2Fezw8pn7up213f0lwn0px.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

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

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

&lt;p&gt;&lt;strong&gt;STEP 2&lt;/strong&gt;&lt;br&gt;
Create and configure a file share with directory.&lt;br&gt;
Example :Create a file share for the corporate office..&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;storage account&lt;/strong&gt;, in the &lt;strong&gt;Data storage section&lt;/strong&gt;, select the &lt;strong&gt;File shares blade.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ File share&lt;/strong&gt; and provide a*&lt;em&gt;Name&lt;/em&gt;*.&lt;/li&gt;
&lt;li&gt;Review the other options, but take the defaults.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;STEP 3&lt;/strong&gt;&lt;br&gt;
We need to Configure and test snapshots. Similar to blob storage, you need to protect against accidental deletion of files. You decide to use snapshots&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select your &lt;strong&gt;file share&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Operations section&lt;/strong&gt;, select the &lt;strong&gt;Snapshots blade&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Add snapshot&lt;/strong&gt;. The comment is optional. Select &lt;strong&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select your snapshot and verify your file directory and uploaded file are included.&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%2Fli14h8gloungqtkvtowd.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%2Fli14h8gloungqtkvtowd.png" alt=" " width="800" height="344"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzd8njgqo0qwln22hszg.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%2Fpzd8njgqo0qwln22hszg.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Firxg5li0oplah8s20thb.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%2Firxg5li0oplah8s20thb.png" alt=" " width="800" height="412"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz31v9d4toq6xkvsk8gau.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%2Fz31v9d4toq6xkvsk8gau.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feholt5gsyblirwerjdw4.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%2Feholt5gsyblirwerjdw4.png" alt=" " width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 3a&lt;/strong&gt;&lt;br&gt;
Configure restricting storage access to selected virtual networks.&lt;br&gt;
This tasks in this section requires a virtual network with subnet. In a production environment these resources would already be created.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search for and &lt;strong&gt;select Virtual networks.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt;. Select your &lt;strong&gt;resource group&lt;/strong&gt;. and give the virtual network a name.&lt;/li&gt;
&lt;li&gt;Take the defaults for other parameters, select &lt;strong&gt;Review + create,&lt;/strong&gt; and then &lt;strong&gt;Create.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Wait for the resource to deploy.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Go to resource&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%2Fog8v1ysxnjqedwmokjzx.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%2Fog8v1ysxnjqedwmokjzx.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopbigndfngk775ce7k32.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%2Fopbigndfngk775ce7k32.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4p1k23p4twaxoplciolc.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%2F4p1k23p4twaxoplciolc.png" alt=" " width="800" height="507"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1oc0x779glwlbnnpo81y.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%2F1oc0x779glwlbnnpo81y.png" alt=" " width="800" height="517"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0g3fapggode2ere1j044.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%2F0g3fapggode2ere1j044.png" alt=" " width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings section&lt;/strong&gt;, select the &lt;strong&gt;Subnets blade&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;default subnet&lt;/strong&gt;.
In the &lt;strong&gt;Service endpoints section **choose **Microsoft.Storage&lt;/strong&gt; in the Services drop-down.&lt;/li&gt;
&lt;li&gt;Do not make any other changes.&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.&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%2F0oitbdr42jtnwkhar53i.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%2F0oitbdr42jtnwkhar53i.png" alt=" " width="800" height="410"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8cq8qwdya7rrosyfnfr.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%2Fm8cq8qwdya7rrosyfnfr.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 4&lt;/strong&gt;&lt;br&gt;
The storage account should only be accessed from the virtual network you just created.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Return to your &lt;strong&gt;files storage account.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Security + networking **section, select the **Networking blade.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Change the &lt;strong&gt;Public network access&lt;/strong&gt; to &lt;strong&gt;Enabled from selected virtual networks and IP addresses.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;In the Virtual networks section, select &lt;strong&gt;Add existing virtual network&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select your &lt;strong&gt;virtual network and subnet&lt;/strong&gt;, select &lt;strong&gt;Add.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.&lt;/li&gt;
&lt;li&gt;Select the &lt;strong&gt;Storage browser&lt;/strong&gt; and navigate to your &lt;strong&gt;file share.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Verify the message not authorized to perform this operation. You are not connecting from the virtual network.
&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%2F6jfvzz6whfwv1dmuh3wd.png" alt=" " width="800" height="372"&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%2F8loujciiv194jsxh381s.png" alt=" " width="800" height="364"&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%2Fwgxin7af10jl44eanilr.png" alt=" " width="800" height="393"&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>azure</category>
      <category>startup</category>
      <category>cloud</category>
    </item>
    <item>
      <title>How to Configure simple settings in the storage account on Azure.</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Thu, 10 Jul 2025 14:47:40 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/how-to-configure-simple-settings-in-the-storage-account-on-azure-14bm</link>
      <guid>https://dev.to/ifeoma_nwafor/how-to-configure-simple-settings-in-the-storage-account-on-azure-14bm</guid>
      <description>&lt;p&gt;&lt;strong&gt;Simple steps on how to configure simple settings in the storage account on Azure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 1&lt;/strong&gt;&lt;br&gt;
When the data in this storage account doesn’t require high availability or durability. A lowest cost storage solution is desired.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In your &lt;strong&gt;storage account&lt;/strong&gt;, in the &lt;strong&gt;Data management section&lt;/strong&gt;, select the &lt;strong&gt;Redundancy blade&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Locally-redundant storage (LRS)&lt;/strong&gt; in the Redundancy drop-down.
Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refresh&lt;/strong&gt; the page and notice the content only exists in the primary location.&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%2Fqezegmgclfdx46oof5nd.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%2Fqezegmgclfdx46oof5nd.png" alt=" " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 2&lt;/strong&gt;&lt;br&gt;
When the storage account should only accept requests from secure connections and developers would like the storage account to use at least TLS version 1.2.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration blade&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Minimal TLS version is set to Version 1.2&lt;/strong&gt;. is &lt;strong&gt;enabled&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Allow storage account key access&lt;/strong&gt; is &lt;strong&gt;Disabled.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.&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%2Fllotbhk3z86podazp0mw.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%2Fllotbhk3z86podazp0mw.png" alt=" " width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 3&lt;/strong&gt;&lt;br&gt;
To ensure the storage account allows public access from all networks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Security + networking **section, select the **Networking blade&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ensure &lt;strong&gt;Public network access&lt;/strong&gt; is set to &lt;strong&gt;Enabled from all networks.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.&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%2Fkb1b1bltcvwb9q3nfh9a.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%2Fkb1b1bltcvwb9q3nfh9a.png" alt=" " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>learning</category>
      <category>beginners</category>
      <category>azure</category>
    </item>
    <item>
      <title>Creating a resource group and a storage account on Azure for beginners.</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Thu, 10 Jul 2025 13:50:49 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/creating-a-resource-group-and-a-storage-account-on-azure-for-beginners-1gkf</link>
      <guid>https://dev.to/ifeoma_nwafor/creating-a-resource-group-and-a-storage-account-on-azure-for-beginners-1gkf</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is a Resource Group?&lt;/strong&gt;&lt;br&gt;
A Resource Group in Microsoft Azure is a container that holds related resources for an Azure solution. These resources could include virtual machines, storage accounts, databases, web apps, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uses of a Resource Groups.&lt;/strong&gt;&lt;br&gt;
✅ 1. Organizing Azure Resources&lt;br&gt;
Resource groups help you logically group related Azure resources (like VMs, storage accounts, databases) so they’re easier to manage based on project, environment (dev/test/prod), department, or application.&lt;/p&gt;

&lt;p&gt;✅ 2. Simplified Resource Management&lt;br&gt;
You can manage and monitor all resources in a resource group collectively:&lt;br&gt;
Deploy or delete resources together&lt;br&gt;
Apply tags for cost tracking or resource categorization&lt;br&gt;
Use Azure Policy to enforce rules on all resources in the group&lt;/p&gt;

&lt;p&gt;✅ 3. Access Control and Security&lt;br&gt;
Resource groups support Role-Based Access Control (RBAC):&lt;br&gt;
Grant specific users or groups permission to only one resource group (instead of the whole subscription)&lt;br&gt;
Example: Give a developer team access only to their project’s resource group&lt;/p&gt;

&lt;p&gt;✅ 4. Cost Tracking and Budgeting&lt;br&gt;
By grouping resources by project, team, or department, you can:&lt;br&gt;
Track costs more easily&lt;br&gt;
Assign budgets or spending alerts&lt;br&gt;
Use tags to identify resource ownership and purpose&lt;/p&gt;

&lt;p&gt;✅ 5. Automation and Deployment&lt;br&gt;
You can use tools like:&lt;br&gt;
ARM templates, Bicep, or Terraform to deploy multiple resources to a resource group at once&lt;br&gt;
This ensures consistent, repeatable infrastructure deployments&lt;/p&gt;

&lt;p&gt;✅ 6. Resource Lifecycle Management&lt;br&gt;
Deleting a resource group deletes all resources inside it. This is useful for:&lt;br&gt;
Cleaning up after temporary environments (e.g., dev/test)&lt;br&gt;
Avoiding “resource sprawl” or leftover orphaned services&lt;/p&gt;

&lt;p&gt;✅ 7. Monitoring and Alerts&lt;br&gt;
You can apply:&lt;br&gt;
Alerts&lt;br&gt;
Diagnostics settings&lt;br&gt;
Log analytics&lt;br&gt;
to all resources within a group for centralized monitoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a storage account&lt;/strong&gt;&lt;br&gt;
This is the actual Azure service used to store data. A Storage Account is a top-level container that provides:&lt;br&gt;
Blobs (object storage)&lt;br&gt;
Files (file shares)&lt;br&gt;
Queues (messaging)&lt;br&gt;
Tables (NoSQL storage)&lt;br&gt;
Disks (for VMs)&lt;br&gt;
✅ Example: mystorageaccount.blob.core.windows.net&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple steps to create a resource group and a storage account on Azure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 1&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, search for and select &lt;strong&gt;Resource groups&lt;/strong&gt;. Select  &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Give your resource group a name. For example, &lt;strong&gt;storagerg.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select a &lt;strong&gt;region&lt;/strong&gt;. Use this region throughout the project.&lt;/li&gt;
&lt;li&gt;Select **Review and create **to validate the resource group.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Create&lt;/strong&gt; to deploy the resource group.&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%2Fd8z9bhorwjl4vv4pkuhl.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%2Fd8z9bhorwjl4vv4pkuhl.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;STEP 2&lt;/strong&gt;&lt;br&gt;
Create and deploy a storage account to support testing and training. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Azure portal, search for and select &lt;strong&gt;Storage accounts.&lt;/strong&gt;
Select &lt;strong&gt;+ Create&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;On the Basics tab, select your &lt;strong&gt;Resource group.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Storage account name&lt;/strong&gt;. The storage account name must be unique in Azure.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Performance to Standard&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt;, and then &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Wait for the storage account to deploy and then Go to resource.&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%2Fzrfimsbsak299wc9jo3n.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%2Fzrfimsbsak299wc9jo3n.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

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

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

</description>
      <category>webdev</category>
      <category>cloud</category>
      <category>azure</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Benefits of Cloud Computing.</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Tue, 08 Jul 2025 12:51:53 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/benefits-of-cloud-computing-137g</link>
      <guid>https://dev.to/ifeoma_nwafor/benefits-of-cloud-computing-137g</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is Cloud Computing.?&lt;/strong&gt;&lt;br&gt;
Cloud computing is the delivery of computing services—like storage, servers, databases, networking, software, and more—over the internet (the "cloud"). Instead of owning and maintaining physical data centers or hardware, businesses and individuals can access these resources on demand from cloud providers like Microsoft Azure, Amazon Web Services (AWS), or Google Cloud.&lt;br&gt;
Here’s what makes it stand out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌍 Accessibility: Use apps and files from anywhere, on any device, with an internet connection.&lt;/li&gt;
&lt;li&gt;📈 Scalability: Easily scale your resources up or down depending on your needs.&lt;/li&gt;
&lt;li&gt;💸 Cost-Efficiency: Pay only for what you use, cutting down on upfront investments.&lt;/li&gt;
&lt;li&gt;🔐 Security &amp;amp; Reliability: Most providers offer strong security features and backup systems.
It’s like having a powerful digital toolkit that lives online—flexible, fast, and always within reach. Want a deeper dive into its benefits or real-life applications? I’ve got you covered.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;Benefits of Cloud Computing *&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtualization&lt;/strong&gt; &lt;br&gt;
Virtualization is a technology that allows you to create a virtual version of something—like a computer, server, storage device, or network—using software. Instead of using a physical machine for every task, virtualization lets multiple virtual machines (VMs) run on a single physical device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-  Scalability&lt;/strong&gt;&lt;br&gt;
Scalability is the cloud’s superpower to grow with you. It refers to the ability of a system to handle increasing workloads, traffic, or users by adding more resources—like computing power, storage, or bandwidth—without compromising performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Agility&lt;/strong&gt;&lt;br&gt;
This refers to how quickly and efficiently organizations can adapt to changes, deploy solutions, and respond to new opportunities or challenges using cloud-based services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- High Availability&lt;/strong&gt;&lt;br&gt;
In cloud environments, this means ensuring that services, applications, and resources are always up and running, even in the face of hardware failures, traffic spikes, or maintenance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Fault Tolerant&lt;/strong&gt;&lt;br&gt;
The ability of a cloud system to continue functioning smoothly even when some parts of it fail. It’s all about designing systems that anticipate problems and keep running without interruption—like a backup generator kicking in when the power goes out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Global Reach&lt;/strong&gt;&lt;br&gt;
 Thanks to vast networks of data centers spread across continents, cloud computing empowers businesses to serve customers, collaborate with teams, and deploy applications on a global scale.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;What is the difference between Elasticity and Scalability in cloud computing&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Elasticity is like stretching or shrinking instantly as needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability is more like upgrading your entire toolkit to support bigger and better projects.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>cloud</category>
      <category>azure</category>
    </item>
    <item>
      <title>Why DevOps engineering ?.</title>
      <dc:creator>Ifeoma Usonwa Nwafor</dc:creator>
      <pubDate>Sun, 06 Jul 2025 14:56:58 +0000</pubDate>
      <link>https://dev.to/ifeoma_nwafor/why-devops-engineering--n0f</link>
      <guid>https://dev.to/ifeoma_nwafor/why-devops-engineering--n0f</guid>
      <description>&lt;p&gt;&lt;strong&gt;What is DevOps engineering&lt;/strong&gt;&lt;br&gt;
DevOps engineering is a discipline that combines software development (Dev) and IT operations (Ops) to improve how software is built, tested, deployed, and maintained. The goal of DevOps is to shorten the development lifecycle, increase deployment frequency, and deliver high-quality software reliably.&lt;/p&gt;

&lt;p&gt;**A DevOps Engineer typically focuses on:&lt;br&gt;
Automation: **Creating scripts and tools to automate repetitive tasks like testing, deployment, and monitoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CI/CD (Continuous Integration / Continuous Deployment)&lt;/strong&gt;: Setting up pipelines that automatically build, test, and release code updates quickly and safely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt;: Managing cloud infrastructure using code (e.g., Terraform, AWS CloudFormation).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitoring &amp;amp; Logging&lt;/strong&gt;: Ensuring systems are observable, with proper logs and metrics for troubleshooting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;: Bridging gaps between development, QA, security, and operations teams to foster a culture of shared responsibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why It Matters&lt;/strong&gt;:&lt;br&gt;
Speeds up delivery of software.&lt;/p&gt;

&lt;p&gt;Reduces errors and downtime.&lt;/p&gt;

&lt;p&gt;Enables teams to respond faster to changes or incidents.&lt;/p&gt;

&lt;p&gt;Promotes a more collaborative and agile workflow.&lt;/p&gt;

&lt;p&gt;DevOps Engineers are problem-solvers who work across technical and organizational boundaries. They must understand both code and infrastructure, and they play a vital role in enabling modern, scalable, and resilient systems**&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%2Fhtevpdwevxogpcl44xu2.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%2Fhtevpdwevxogpcl44xu2.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;_KEY BENEFITS OF DevOps &lt;br&gt;
_&lt;br&gt;
Here are the key benefits of DevOps in our world today, especially in the context of modern businesses, technology, and customer expectations:&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;1. Faster Software Delivery&lt;/strong&gt;&lt;br&gt;
DevOps automates development, testing, and deployment, allowing teams to release updates and new features more quickly and frequently.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;2. Improved Software Quality&lt;/strong&gt;&lt;br&gt;
Continuous integration and automated testing reduce bugs and errors early in the development cycle, leading to more stable, reliable software.&lt;/p&gt;

&lt;p&gt;🤝 &lt;strong&gt;3. Better Collaboration&lt;/strong&gt;&lt;br&gt;
DevOps breaks down silos between developers, operations, and other teams, encouraging shared responsibility and improved communication.&lt;/p&gt;

&lt;p&gt;📉 &lt;strong&gt;4. Reduced Downtime and Failures&lt;/strong&gt;&lt;br&gt;
By using monitoring, logging, and automation, DevOps minimizes downtime and helps teams quickly detect and fix issues in production.&lt;/p&gt;

&lt;p&gt;💸 &lt;strong&gt;5. Cost Efficiency&lt;/strong&gt;&lt;br&gt;
Automation and optimized workflows reduce wasted effort, cloud costs, and downtime—making IT operations more financially efficient.&lt;/p&gt;

&lt;p&gt;☁️ &lt;strong&gt;6. Effective Cloud Utilization&lt;/strong&gt;&lt;br&gt;
DevOps practices like Infrastructure as Code (IaC) and containerization enable efficient use of cloud platforms, making systems scalable and adaptable.&lt;/p&gt;

&lt;p&gt;🔄 &lt;strong&gt;7&lt;/strong&gt; Continuous Improvement****&lt;br&gt;
DevOps promotes a feedback-driven culture where teams can constantly learn, adapt, and improve both the product and the process.&lt;/p&gt;

&lt;p&gt;🔐 &lt;strong&gt;8. Enhanced Security&lt;/strong&gt;&lt;br&gt;
With DevSecOps (Security + DevOps), security is integrated into every stage of the development pipeline, making systems more secure by default.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>ai</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
