<?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: Peter Edozie</title>
    <description>The latest articles on DEV Community by Peter Edozie (@peter_edozie).</description>
    <link>https://dev.to/peter_edozie</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F833193%2Fe6e362d0-122f-4acd-aa53-96c82d2f2aec.jpg</url>
      <title>DEV Community: Peter Edozie</title>
      <link>https://dev.to/peter_edozie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/peter_edozie"/>
    <language>en</language>
    <item>
      <title>Implementation of Azure IoT Hub</title>
      <dc:creator>Peter Edozie</dc:creator>
      <pubDate>Thu, 16 Jun 2022 04:09:34 +0000</pubDate>
      <link>https://dev.to/peter_edozie/implementation-of-azure-iot-hub-562c</link>
      <guid>https://dev.to/peter_edozie/implementation-of-azure-iot-hub-562c</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Internet of Things (IoT)&lt;/strong&gt; is a network of physical devices that connect to and exchange data with other devices and services over the Internet or other network. &lt;br&gt;
Azure IoT Hub is a managed service hosted in the cloud that acts as a central message hub for communication between an IoT application and its attached devices. You can connect millions of devices and their backend solutions reliably and securely. &lt;/p&gt;

&lt;p&gt;With these few steps, we will configure a new Azure IoT Hub in Azure Portal, and then authenticate a connection to an IoT device using the online Raspberry Pi device simulator.&lt;/p&gt;

&lt;h2&gt;
  
  
  First Step: create an IOT Hub
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Sign in to Azure portal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search for and Select &lt;strong&gt;IOT HUB&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the Iot Hub page click &lt;strong&gt;+ Create&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the &lt;strong&gt;Basics&lt;/strong&gt; tab of the IoT hub page, fill in the fields with the following details&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qba6n3Ph--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/il1jfvu7j3gjgwgu9p56.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qba6n3Ph--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/il1jfvu7j3gjgwgu9p56.png" alt="Image description" width="712" height="576"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to the &lt;strong&gt;Management&lt;/strong&gt; tab, and use the dropdown to set the &lt;strong&gt;Pricing and scale tier&lt;/strong&gt; to &lt;strong&gt;S1: Standard tier&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the &lt;strong&gt;Review + create&lt;/strong&gt; button and Select &lt;strong&gt;Create&lt;/strong&gt; to begin creating your new Azure IoT Hub instance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait until the Azure IoT Hub instance is &lt;strong&gt;deployed&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Second step: Add an IoT device
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When the Deployment is done, click &lt;strong&gt;Go to resources&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--500Gaxao--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p716hk0xkzf3e8v9h6hx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--500Gaxao--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p716hk0xkzf3e8v9h6hx.png" alt="Image description" width="459" height="104"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To add a new IoT device, scroll down to the &lt;strong&gt;Device management&lt;/strong&gt; section and click &lt;strong&gt;Devices&lt;/strong&gt;. Then, click &lt;strong&gt;+ Add Device&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--so6M66qo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bs9oip84w3stq1txqjbi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--so6M66qo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bs9oip84w3stq1txqjbi.png" alt="Image description" width="880" height="277"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide a name for your new IoT device, &lt;strong&gt;Azdevice&lt;/strong&gt;, and click the &lt;strong&gt;Save&lt;/strong&gt; button. This will create a new IoT device identity in your Azure IoT Hub.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LRxm3W_p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55ebpqg4sgsg6z6brp4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LRxm3W_p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55ebpqg4sgsg6z6brp4o.png" alt="Image description" width="357" height="478"&gt;&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you do not see your new &lt;strong&gt;device&lt;/strong&gt;, Refresh the IoT Devices page.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;Azdevice&lt;/strong&gt; and copy &lt;strong&gt;the Primary Connection String value.&lt;/strong&gt; You will use this key in the next task to authenticate a connection to the Raspberry Pi simulator.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GybV6EYo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3dqkpc85nqi91leqw6n0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GybV6EYo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3dqkpc85nqi91leqw6n0.png" alt="Image description" width="880" height="79"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f8Ntx1ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/co8fwampv23m4j7hz1go.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f8Ntx1ad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/co8fwampv23m4j7hz1go.png" alt="Image description" width="880" height="193"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Last Step: Test the device using a Raspberry Pi Simulator
&lt;/h2&gt;

&lt;p&gt;we will test our device using the Raspberry Pi Simulator.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open a new tab in the web browser and type this shortcut link (&lt;a href="https://aka.ms/RaspPi"&gt;https://aka.ms/RaspPi&lt;/a&gt;.) It will take you to a Raspberry Pi Simulator site. If you have time, read about the Raspberry Pi simulator. When done select “X” to close the pop-up window&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the code area on the right side, locate the line with ‘const connectionString =’. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gVDOh9IX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pz1itnk4ejt1dah4f24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gVDOh9IX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pz1itnk4ejt1dah4f24.png" alt="Image description" width="508" height="63"&gt;&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Replace it with the connection string you copied from the Azure portal. &lt;strong&gt;Note&lt;/strong&gt; that the connection sting includes the DeviceId &lt;strong&gt;(Azdevice)&lt;/strong&gt; and SharedAccessKey entries.&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DpC4ZN4R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mzi177gspu6roxcq7cpe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DpC4ZN4R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mzi177gspu6roxcq7cpe.png" alt="Image description" width="630" height="16"&gt;&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Run&lt;/strong&gt; (below the code area) to run the application. The console output should show the sensor data and messages that are sent from the Raspberry Pi simulator to your Azure IoT Hub. Data and messages are sent each time the Raspberry Pi simulator LED flashes.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gLIGHnCt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zbzfcrvrs9j0rq6r8fdx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gLIGHnCt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zbzfcrvrs9j0rq6r8fdx.png" alt="Image description" width="880" height="403"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Stop&lt;/strong&gt; to stop sending data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Return to the Azure portal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Switch the IoT Hub &lt;strong&gt;Overview&lt;/strong&gt; page and scroll down to the &lt;strong&gt;IoT Hub Usage&lt;/strong&gt; information to view usage. Change your timeframe in the &lt;strong&gt;show data for last&lt;/strong&gt; to see data in the last hour.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ODKsZaiI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/md23ypiel7jgn4xurri9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ODKsZaiI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/md23ypiel7jgn4xurri9.png" alt="Image description" width="880" height="424"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Congratulations! You have set up Azure IoT Hub to collect sensor data from an IoT device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; To avoid additional costs, you can optionally remove this resource group. Search for resource groups, click your resource group, and then click &lt;strong&gt;Delete resource group&lt;/strong&gt;. Verify the name of the resource group and then click &lt;strong&gt;Delete&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>iot</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Use the Azure TCO Calculator</title>
      <dc:creator>Peter Edozie</dc:creator>
      <pubDate>Thu, 26 May 2022 00:59:05 +0000</pubDate>
      <link>https://dev.to/peter_edozie/use-the-azure-tco-calculator-3ag4</link>
      <guid>https://dev.to/peter_edozie/use-the-azure-tco-calculator-3ag4</guid>
      <description>&lt;p&gt;&lt;strong&gt;WHAT IS AZURE TCO CALCULATOR&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total cost of ownership (TCO)&lt;/strong&gt; is a financial estimate intended to help buyers and owners determine the direct and indirect costs of a product or service. The &lt;strong&gt;TCO Calculator&lt;/strong&gt; helps you estimate the cost savings of operating your solution on Azure over time, instead of in your on-premises datacenter. &lt;/p&gt;

&lt;p&gt;With the TCO Calculator, you enter the details of your on-premises workloads. Then you review the suggested industry average cost (which you can adjust) for related operational costs. These costs include electricity, network maintenance, and IT labor. You’re then presented with a side-by-side report. Using the report, you can compare those costs with the same workloads running on Azure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE TCO CALCULATOR 3 STEPS&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N0OvZGzU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0hnwe0115syaupwgc3gv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N0OvZGzU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0hnwe0115syaupwgc3gv.png" alt="Image description" width="880" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Define your workloads&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;In a browser, go to Total Cost of Ownership (TCO) Calculator page.&lt;/li&gt;
&lt;li&gt;click &lt;strong&gt;+ Add server workload&lt;/strong&gt; under the &lt;strong&gt;Define your workloads&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter the details of your on-premises server infrastructure. After adding a workload, select the workload type and enter the remaining details.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y_niImvW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uz9wl3rm2f73jbwctsxi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y_niImvW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uz9wl3rm2f73jbwctsxi.png" alt="Image description" width="679" height="496"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cDt2PBF8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6zmdase2khip9s4fezs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cDt2PBF8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6zmdase2khip9s4fezs.png" alt="Image description" width="880" height="160"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;+ Add server workload&lt;/strong&gt; to make a row for a new server workloads definition.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bgZ6dpFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yi6e7lz6vapkrgzblrvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bgZ6dpFx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yi6e7lz6vapkrgzblrvp.png" alt="Image description" width="659" height="498"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SV9UjvxC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n24gbots8bjhflckvp22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SV9UjvxC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n24gbots8bjhflckvp22.png" alt="Image description" width="880" height="155"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Storage&lt;/strong&gt;, click &lt;strong&gt;Add storage&lt;/strong&gt;, and select the storage type and enter the remaining details.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W3r22Eys--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vqj95wnd4x41qwasskxf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W3r22Eys--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vqj95wnd4x41qwasskxf.png" alt="Image description" width="520" height="309"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g5ekWSka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4sfytosb5ldib55s66fm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g5ekWSka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4sfytosb5ldib55s66fm.png" alt="Image description" width="880" height="109"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &lt;strong&gt;Networking&lt;/strong&gt;, Set the &lt;strong&gt;Outbound bandwidth&lt;/strong&gt; to 15tb.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JGB_dxlA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sy57th3tpyn1t108ogpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JGB_dxlA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sy57th3tpyn1t108ogpa.png" alt="Image description" width="701" height="194"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Next&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Adjust assumptions&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following assumptions in the TCO model are industry averages accredited by Nucleus Research. Explore the options, Update, and customize these values to reflect your situation, to match your on-premises environment but here we would only specify the currency and leave the remaining fields at their default values.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LAZDDPTQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wl4bh9q5kbpdarqawdct.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LAZDDPTQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wl4bh9q5kbpdarqawdct.png" alt="Image description" width="217" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Review the report&lt;/strong&gt;&lt;br&gt;
. Update the timeframe and region with the settings below&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8kV5aO0d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03wxz3dmbb7w711xxuh7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8kV5aO0d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03wxz3dmbb7w711xxuh7.png" alt="Image description" width="503" height="126"&gt;&lt;/a&gt;&lt;br&gt;
To modify the information you provided, scroll to the bottom of the page, and click &lt;strong&gt;Back&lt;/strong&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As you scroll to the bottom of the page, you will see a comparison of running your workloads in the on-premises versus Azure cost over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To save or print a PDF copy of the report, click &lt;strong&gt;Download&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mc-M4aIp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sut6z0f9m41srfkwr1v4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mc-M4aIp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sut6z0f9m41srfkwr1v4.jpeg" alt="Image description" width="880" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! You have used the TCO Calculator to generate a cost comparison report for an on-premises environment. &lt;/p&gt;

</description>
      <category>azure</category>
      <category>devops</category>
      <category>career</category>
      <category>tcocalculator</category>
    </item>
    <item>
      <title>Manage resource locks</title>
      <dc:creator>Peter Edozie</dc:creator>
      <pubDate>Thu, 19 May 2022 11:37:31 +0000</pubDate>
      <link>https://dev.to/peter_edozie/manage-resource-locks-44ik</link>
      <guid>https://dev.to/peter_edozie/manage-resource-locks-44ik</guid>
      <description>&lt;p&gt;&lt;strong&gt;Resource group&lt;/strong&gt; - A container that holds related resources for an Azure solution. The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. You decide how you want to allocate resources to resource groups based on what makes the most sense for your organization.&lt;/p&gt;

&lt;p&gt;In this walkthrough, we will add a lock to the resource group and test deleting the resource group. Locks can be applied in a subscription to resource groups, or individual resources to prevent accidental deletion or modification of critical resources.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Add a Lock to the resource group and test deletion&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will add a resource lock to the resource group and test deleting the resource group.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign in to the Azure Portal&lt;/li&gt;
&lt;li&gt;In the Azure portal, navigate to the resource group.&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E5BDk7VJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ue5hn2o5xh8ghhrhqka6.png" alt="Image description" width="880" height="108"&gt;
&lt;/li&gt;
&lt;li&gt;You can apply a lock to a subscription, resource group, or individual resource to prevent accidental deletion or modification of critical resources. &lt;/li&gt;
&lt;li&gt;In the Settings section, click Locks, and then click + Add.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CetM7qRK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rnik8imgvo29f9c4wvad.jpeg" alt="Image description" width="880" height="448"&gt;
5.Configure the new lock. When selecting the lock type you notice the &lt;strong&gt;Read-only&lt;/strong&gt; and &lt;strong&gt;Delete&lt;/strong&gt;. Read only means authorized users can read a resource, but they can not delete or update the resource, while the &lt;strong&gt;Delete&lt;/strong&gt; means authorized users can read and modify a resource, but they can not delete the resource. 
When you are done click OK.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oyp52VCk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/os522d7l36o2nx8tu9ek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oyp52VCk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/os522d7l36o2nx8tu9ek.png" alt="Image description" width="372" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Overview&lt;/strong&gt; and click &lt;strong&gt;Delete resource group&lt;/strong&gt;. Type the name of the resource group and click &lt;strong&gt;Delete&lt;/strong&gt;. You receive an error message stating the resource group is locked and can’t be deleted.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test deleting a member of the resource group&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will test if the resource lock protects a storage account in the resource group.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;From Search bar, Search for and select &lt;strong&gt;Storage accounts&lt;/strong&gt;, and then click &lt;strong&gt;+ Create&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fq_w0Zq2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/clveu5opbbk8494cs979.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fq_w0Zq2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/clveu5opbbk8494cs979.png" alt="Image description" width="761" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On the Storage Accounts page +Create, fill in the following information (pick the name of the resource group that was lock earlier and the storage account name with letters such that the name is globally unique). Leave the defaults for everything else.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5AAHx_MV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmm394zz498iyud73423.png" alt="Image description" width="823" height="603"&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Review + Create&lt;/strong&gt; to review your storage account settings and allow Azure to validate the configuration.&lt;/li&gt;
&lt;li&gt;Once validated, click Create. Wait for the notification that the account Deployment Succeeded.&lt;/li&gt;
&lt;li&gt;Access your new storage account and from the &lt;strong&gt;Overview&lt;/strong&gt; pane, click &lt;strong&gt;Delete&lt;/strong&gt;. 
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QqTbpZCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b69g0f7yzmvhe5ccg8v0.png" alt="Image description" width="880" height="220"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You receive an error message stating the resource or its parent has a delete lock.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SKV2cs_F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7429tjw1mko4vr98g1fd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SKV2cs_F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7429tjw1mko4vr98g1fd.png" alt="Image description" width="693" height="188"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;strong&gt;Note:&lt;/strong&gt; Although we did not create a lock specifically for the storage account, we did create a lock at the resource group level, which contains the storage account. As such, this parent level lock prevents us from deleting the resource and the storage account inherits the lock from the parent.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remove the resource lock&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We will remove the resource lock and test. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Return to the resource group &lt;strong&gt;myRGLocks&lt;/strong&gt;, in the Settings section, click &lt;strong&gt;Locks&lt;/strong&gt; and Click &lt;strong&gt;Delete&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5gAE2XAu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g4qvdy9gqm0mbypqf016.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5gAE2XAu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g4qvdy9gqm0mbypqf016.jpeg" alt="Image description" width="880" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Return to the storage account blade and confirm you can now delete the resource.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VnOE2eCe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9iwav48sl98r3mac5gu.png" alt="Image description" width="488" height="95"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Congratulations! You created a resource group, added a lock to resource group and tested deletion, tested deleting a resource in the resource group, and removed the resource lock.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; To avoid additional costs, you can optionally remove this resource group. Search for resource groups, click your resource group, and then click &lt;strong&gt;Delete resource group&lt;/strong&gt;. Verify the name of the resource group and then click &lt;strong&gt;Delete&lt;/strong&gt;. Monitor the Notifications to see how the delete is proceeding. &lt;/p&gt;

</description>
      <category>azure</category>
      <category>beginners</category>
      <category>career</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Creating a Storage Account in Azure</title>
      <dc:creator>Peter Edozie</dc:creator>
      <pubDate>Wed, 18 May 2022 10:30:35 +0000</pubDate>
      <link>https://dev.to/peter_edozie/creating-a-storage-account-in-azure-4mh1</link>
      <guid>https://dev.to/peter_edozie/creating-a-storage-account-in-azure-4mh1</guid>
      <description>&lt;p&gt;Azure Storage is a Microsoft-managed service providing cloud storage that is highly available, secure, durable, scalable, and redundant. Azure Storage includes Azure Blobs (objects), Azure Data Lake Storage Gen2, Azure Files, Azure Queues, and Azure Tables.&lt;/p&gt;

&lt;p&gt;In this task, we will create a storage account, then work with blob storage files, and Monitor. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a storage account&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign in to the Azure portal&lt;/li&gt;
&lt;li&gt;Search for and select &lt;strong&gt;Storage accounts&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;Create&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select the subscription in which to create the new storage &lt;br&gt;
account. Choose a new or existing resource group to organize &lt;br&gt;
and manage your storage account together with other resources.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Redundancy available on Azure, We will use Locally redundant storage (LRS) for this task&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4GgJgzz1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dj1c1p7rjtrcl6kqidbz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4GgJgzz1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dj1c1p7rjtrcl6kqidbz.png" alt="Image description" width="474" height="291"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;Review + Create&lt;/strong&gt; to review your storage account settings and allow Azure to validate the configuration.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QLLbz1mH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ybue0skp8mt59319sykx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QLLbz1mH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ybue0skp8mt59319sykx.png" alt="Image description" width="730" height="523"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once validated, Click &lt;strong&gt;create&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hK8IC1lQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtq0kc0207jrmqwclvnu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hK8IC1lQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtq0kc0207jrmqwclvnu.png" alt="Image description" width="649" height="62"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait for your deployment is complete then click Go To Resource&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_QZLPPht--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/21bimgj7byewvk9rcwxb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_QZLPPht--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/21bimgj7byewvk9rcwxb.png" alt="Image description" width="725" height="226"&gt;&lt;/a&gt;&lt;br&gt;
OR&lt;br&gt;
From the Home page, search for and select &lt;strong&gt;Storage accounts&lt;/strong&gt; and ensure your new storage account is listed.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3xQJez46--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/efht6hl6538of9zzyb4s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3xQJez46--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/efht6hl6538of9zzyb4s.png" alt="Image description" width="880" height="165"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Work with blob storage&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click the name of the new storage account, scroll to the Data storage section in the left menu, and then click Containers.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UR-Pit8O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/houa285rnhnk9rswycse.png" alt="Image description" width="226" height="55"&gt;
&lt;/li&gt;
&lt;li&gt;Click + Container and complete the information. Use the Information icons to learn more. When done click Create.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wl-wZBzP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/igj7pqt5ngadgampxjmd.jpeg" alt="Image description" width="880" height="523"&gt;
&lt;/li&gt;
&lt;li&gt;Open a new browser window and search Bing for an image of a flower. Right click on the image and save it to your downloads.&lt;/li&gt;
&lt;li&gt;Back in the Portal, click on container1 , and then select Upload.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oprTHc1t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/557tjth5r05en1113kii.jpeg" alt="Image description" width="880" height="238"&gt;
&lt;/li&gt;
&lt;li&gt;Browse for the image file you just saved on your local computer. Select it and then select upload.&lt;/li&gt;
&lt;li&gt;Click the Advanced arrow, leave the default values but review the available options, and then click Upload.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can upload as many blobs as you like in this way. New blobs will be listed within the container.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Once the file is uploaded, right-click on the file and notice the options including View/edit, Download, Properties, and Delete.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QucE1Omg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i77h2ebnkomfjrbihhy3.png" alt="Image description" width="880" height="321"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How to Monitor the created storage account&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Return to the storage account blade and click &lt;strong&gt;Diagnose and solve problems&lt;/strong&gt;.&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WQtlbX4w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mi5ist91p3q9lluqet98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WQtlbX4w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mi5ist91p3q9lluqet98.png" alt="Image description" width="880" height="217"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explore some of the most common storage problems. Notice there are multiple troubleshooters here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the storage account blade, scroll down to the &lt;strong&gt;Monitoring&lt;/strong&gt; section and click &lt;strong&gt;Insights&lt;/strong&gt;. Notice there is information on Failures, Performance, Availability, and Capacity. Your information will be different.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gg-1indb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yyiwxwt9k6wxjjmq73c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gg-1indb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9yyiwxwt9k6wxjjmq73c.png" alt="Image description" width="226" height="229"&gt;&lt;/a&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rlK-HUbZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ngohtmm7xk3zrhy1pqfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rlK-HUbZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ngohtmm7xk3zrhy1pqfe.png" alt="Image description" width="880" height="450"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QSyeHpSf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwx916ueaxe8ewk4pps4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QSyeHpSf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwx916ueaxe8ewk4pps4.png" alt="Image description" width="880" height="422"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iU0pOXHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2xncymb7jcwk8y1z3ok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iU0pOXHx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2xncymb7jcwk8y1z3ok.png" alt="Image description" width="880" height="295"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Awesome! You have created a storage account, then worked with storage blobs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; To avoid additional costs, you can optionally remove this resource group. Search for resource groups, click your resource group, and then click Delete resource group. Verify the name of the resource group and then click Delete. Monitor the Notifications to see how the delete is proceeding.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>azure</category>
      <category>career</category>
    </item>
    <item>
      <title>IMPLEMENT AZURE KEY VAULT</title>
      <dc:creator>Peter Edozie</dc:creator>
      <pubDate>Tue, 17 May 2022 12:06:36 +0000</pubDate>
      <link>https://dev.to/peter_edozie/implement-azure-key-vault-f09</link>
      <guid>https://dev.to/peter_edozie/implement-azure-key-vault-f09</guid>
      <description>&lt;p&gt;Azure Key Vault is a cloud service used to manage keys, secrets, and certificates. Key Vault eliminates the need for developers to store security information in their code. It allows you to centralize the storage of your application secrets which greatly reduces the chances that secrets may be leaked. Key Vault also allows you to securely store secrets and keys backed by Hardware Security Modules or HSMs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create an Azure Key Vault&lt;/strong&gt;&lt;br&gt;
we will create an Azure Key vault and then create a password secret within that key vault, providing a securely stored, centrally managed password for use with applications.&lt;/p&gt;

&lt;p&gt;1.Sign in to Azure Portal &lt;br&gt;
2.Search for Key Vault &lt;br&gt;
3.Configure the key vault (Create new resource group and Key vault name) Leave the defaults for everything else.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2v-yMpqI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/128ha8lt89rll480uxzv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2v-yMpqI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/128ha8lt89rll480uxzv.jpg" alt="Image description" width="842" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SOFT-DELETE&lt;/strong&gt; Soft delete protection will automatically be enabled on this key vault. This feature allows you to recover or permanently delete a key vault and secrets for the duration of the retention period. You can create a new key vault with soft delete off for a limited time using CLI / PowerShell / REST API. The ability to create a key vault with soft delete disabled will be fully deprecated by the end of the year.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Days to retain deleted vaults&lt;/strong&gt;: It can be configured to between 7 to 90 days. Once it has been set, it cannot be changed or removed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Purge protection&lt;/strong&gt;: Enabling "purge protection" on a key vault is an irreversible action. Once the purge protection property has been set to "true", it cannot be changed or removed. To enforce a mandatory retention period and prevent the permanent deletion of key vaults or secrets prior to the retention period elapsing, you can turn on purge protection. When purge protection is enabled, secrets cannot be purged by users or by Microsoft.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Click Review + create, and then click Create.&lt;/li&gt;
&lt;li&gt;Once the new key vault is provisioned, click Go to resource.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note: On the key vault Overview tab, take note of the Vault URI. Applications that use your vault through the REST APIs will need this URI.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BHTF7ogE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2hgbbmthtfrhhxjgoadl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BHTF7ogE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2hgbbmthtfrhhxjgoadl.jpg" alt="Image description" width="880" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add a secret or password to the Key Vault created&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Under Settings click Secrets, then click + Generate/Import.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jk9Ak1sK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k5phvvyl5z0ux21g91ou.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jk9Ak1sK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k5phvvyl5z0ux21g91ou.jpg" alt="Image description" width="880" height="399"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure the secret (add a name and value) Notice you can set an activation and expiration date. Notice you can also disable the secret.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KHzmvTvS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/08fwhzoddk7wyb8uac7z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KHzmvTvS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/08fwhzoddk7wyb8uac7z.jpg" alt="Image description" width="790" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Click create &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select the secret you just created&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N9jLIb7---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d02voqjdiaopr3hjiext.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N9jLIb7---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d02voqjdiaopr3hjiext.jpg" alt="Image description" width="880" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note the Secret Identifier. This is the url value that you can now use with applications. It provides a centrally managed and securely stored password. &lt;br&gt;
Click the button Show Secret Value, to display the password you specified earlier.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eeqJIAzv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pp1wrvbtdfa2pnhsoa82.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eeqJIAzv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pp1wrvbtdfa2pnhsoa82.jpg" alt="Image description" width="747" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Awesome! You have created an Azure Key vault and then created a password secret in that key vault.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>keyvault</category>
      <category>azure</category>
    </item>
  </channel>
</rss>
