<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Parveen Singh]]></title><description><![CDATA[Cloud Solutions Consultant who loves working with PowerShell, CLI, and obsessed with the idea of using automation and modern tools to solve practical problems.]]></description><link>https://hashnode.parveensingh.com</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 20:04:35 GMT</lastBuildDate><atom:link href="https://hashnode.parveensingh.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[PowerShell Basics: What is PowerShell?]]></title><description><![CDATA[The system administrator has always been striving for automation. However, for an IT person, repeating the same tasks can become monotonous. Not only does it reduces efficiency, but it can also lead to human errors.
To address the issue of building e...]]></description><link>https://hashnode.parveensingh.com/powershell-basics-what-is-powershell</link><guid isPermaLink="true">https://hashnode.parveensingh.com/powershell-basics-what-is-powershell</guid><category><![CDATA[Powershell]]></category><dc:creator><![CDATA[Parveen Singh]]></dc:creator><pubDate>Fri, 07 Jul 2023 00:01:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683731643/cf61a39c-97ac-4962-a338-cdfc19508fff.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The system administrator has always been striving for automation. However, for an IT person, repeating the same tasks can become monotonous. Not only does it reduces efficiency, but it can also lead to human errors.</p>
<p>To address the issue of building effective scripts and tools, PowerShell was built using .Net runtime. Due to the flexibility and the powerful command-line execution speed with support for multiple services, PowerShell is loved in the sysadmin and IT world to automate the repeating mundane tasks.</p>
<p>In this article, you'll discover the basics of PowerShell and what you can do with it.</p>
<h2 id="heading-what-is-powershell">What is PowerShell?</h2>
<p>PowerShell is a fully functional programming and scripting language based on Microsoft .Net framework. It has built-in help and command discovery that lets you discover multiple layers of a framework. So whether you are running Windows, macOS, or Linux, you can use PowerShell for scripting.</p>
<p>As a scripting tool, PowerShell is commonly used for system automation for ongoing maintenance and testing. However, with the extensive functionality, it is getting popular with Azure Cloud to deploy and manage cloud resources programmatically.</p>
<h2 id="heading-what-are-powershell-commands-and-cmdlets">What are PowerShell Commands and Cmdlets</h2>
<p>PowerShell commands are based on lightweight functions that are designed to perform specific task sets. Therefore, cmdlets are also considered to be building blocks of PowerShell. They are designed to perform one particular action. PowerShell commands are called <strong>cmdlets,</strong> pronounced as "command-lets."</p>
<p>Some of the key functionalities of cmdlets are:</p>
<ul>
<li><p>The output of cmdlets is often in the form of an object or array of objects rather than a text string.</p>
</li>
<li><p>The result of one command can be passed on (pipe) to another command during runtime.</p>
</li>
<li><p>All the commands are case-insensitive. So, for example, <code>geT-hElp</code> and <code>Get-Help</code> yields the same results.</p>
</li>
</ul>
<h3 id="heading-powershell-command-syntax">PowerShell Command Syntax</h3>
<p>The PowerShell commands (cmdlets) follow a convention of using a verb and a noun combined with <code>-</code> (<strong>dash</strong>) in between them. Therefore, the format looks like this: <code>Verb-Noun</code>. Thus, while working on any core commands or external library, you will see a consistent pattern on calling the commands.</p>
<p>For example, to query the services running on your computer, you would use <code>Get-Service</code>. Similarly, you can <code>set</code> or perform other available actions as well.</p>
<p>Below is a comprehensive list of cmdlet patterns for the <strong>verb</strong> section of the command:</p>
<ul>
<li><p><strong>Get</strong> → get the value of something</p>
</li>
<li><p><strong>Set</strong> → set or update the value of something</p>
</li>
<li><p><strong>New</strong> → create a new entry of something</p>
</li>
<li><p><strong>Start</strong> → start something</p>
</li>
<li><p><strong>Stop</strong> → stop something</p>
</li>
<li><p><strong>Restart</strong> → Restart something</p>
</li>
<li><p><strong>Out</strong> → output something</p>
</li>
<li><p><strong>Write</strong> → write something to terminal or shell</p>
</li>
</ul>
<p>You can always find the list of commands by typing in <code>Get-Command</code> and review all available commands on your computer:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683720569/bc4a5cf0-ad1b-4f8e-b0d9-257430c71886.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7cc08fae-b885-4ed1-8c2f-293f33c3c6ad/01-Get-Command.png" /></p>
<p>PowerShell Get-Command Output</p>
<h2 id="heading-what-are-powershell-modules">What are PowerShell Modules</h2>
<p>PowerShell module is a package that withholds PowerShell members, including functions, cmdlets, provider, workflow, variables, and aliases. The modules are written to solve a single set of problems or target a specific management area on a system.</p>
<p>Running the <code>Get-Module -All</code> gives you a list of all the installed modules on your computer. Refer to the example where you can see the name of the modules and all the commands each module offers:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683722025/66ff6e3c-980e-42ae-a8ba-af160cf000fc.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4327c631-b7a9-40af-8599-fd7edddf8923/04-get-module.png" /></p>
<p>PowerShell Get-Module Output</p>
<p>Commands that use PowerShell providers don't load automatically. Instead, you need to follow a specific process to install and import the modules before they are ready to use. More on this will be covered in a later article.</p>
<h2 id="heading-what-is-powershell-pipeline">What is PowerShell Pipeline</h2>
<p>PowerShell pipeline is series of commands connected by using a <code>|</code> (pipe) operator. The output object of one command can serve as an input object for another command. Thus, you can chain multiple commands as long as the data is valid in the following manner:</p>
<p>Command-1 | Command-2 | Command-3</p>
<p>To visualize it with an example, run the following command inside your terminal:</p>
<p>Get-Process | Sort-Object -Property ProcessName -Descending</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683723587/d3a5888e-379b-4d65-910a-7afb49749f89.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/35410295-9d8c-4afa-be55-203245b78b59/05-getprocess-pipe.png" /></p>
<p>PowerShell Get-Process Output</p>
<h2 id="heading-what-are-powershell-objects">What are PowerShell Objects</h2>
<p>With the origin of PowerShell from .Net and being an object-oriented language, every call to PowerShell commands is initializing a class for that module and returning the results. Therefore, the PowerShell objects are instances of classes that have properties and methods you can call.</p>
<p>Here's an analogy on how to understand more:</p>
<ul>
<li><p><strong>Objects →</strong> set of <em>items</em></p>
</li>
<li><p><strong>Cmdlets →</strong> actions you can perform on those <em>items</em></p>
</li>
<li><p><strong>Modules →</strong> set of actions you can perform on any <em>item</em></p>
</li>
<li><p><strong>Properties →</strong> detail about the <em>items</em></p>
</li>
<li><p><strong>Methods →</strong> instructions for set of <em>items</em></p>
</li>
</ul>
<h2 id="heading-common-powershell-commands">Common PowerShell Commands</h2>
<p>While working with any scripting language, it's helpful to remember and familiarize yourself with some of the most common and well-known commands. In addition, most of the modules and commands come with specific instructions on how to use the module. Therefore, understanding where to find the information or help resources for any command is key to performing the task.</p>
<h3 id="heading-powershell-get-verb">PowerShell Get-Verb</h3>
<p>PowerShell Verb is an interesting concept. The idea of the verb is to define what you are trying to do with the data. Whether it's read, write, update, or insert, you are expected to follow a certain naming convention.</p>
<p>Run the <code>Get-Verb</code> command in your terminal to see the list of all the available actions:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683725336/99a6eb21-06bd-45cc-9798-790c89b099a0.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2dcaf1ef-76ef-41f8-8603-6c826471fd0b/07-Get-Verb.png" /></p>
<p>PowerShell Get-Verb Output</p>
<p>The results may vary in your case. However, notice from the above image, the verbs are <strong>grouped (Group)</strong> based on their purpose and display an <strong>alias (AliasPrefix)</strong> that you can use to call the command without typing in the full name.</p>
<h3 id="heading-powershell-get-member">PowerShell Get-Member</h3>
<p>PowerShell <code>Get-Member</code> command helps you display the list of <strong>methods</strong>, <strong>properties</strong>, and <strong>objects</strong> available for any command. In addition, any command that produces an output of type object can be further called upon with Get-Member to list the information.</p>
<p>Below is a sample command piped with <code>Get-Member</code> command:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683726885/96844ff2-64ac-4a65-8a55-a37fc082a252.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c357c37a-15ae-43a7-b4a8-ca1a6eaa7261/06-getmembersample.png" /></p>
<p>PowerShell Get-Process Pipe Get-Member Output</p>
<h3 id="heading-powershell-get-help">PowerShell Get-Help</h3>
<p>Another useful PowerShell command to be aware of in the beginning is the <code>Get-Help</code> command that can assist you in finding syntax and provide guidance on using all the available commands. For example, the output of <code>Get-Help</code> looks like this:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683728221/c8137c16-351a-4f27-9e40-99827a3dbb0c.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b3927efe-56c4-43ff-9e28-54ab0dadfd28/02-Get-Help.png" /></p>
<p>PowerShell Get-Help Output</p>
<p>To find the help on any command, type <code>Get-Help</code>, followed by any command you need help with. In the example above, the call for getting help on <code>Get-Command</code> looks like this:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688683729851/e389e872-bce7-4e5c-8f70-3d20a595c55b.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9446666e-e389-4b3e-8048-08a7fae52ec7/03-help-get-command.png" /></p>
<p>PowerShell Help for Get-Command Output</p>
<p>Looking at the output, any command that has more than one parameter set contains a <strong>SYNTAX</strong> block. The elements in the <code>[]</code> square brackets are optional when running the command.</p>
<h2 id="heading-what-are-powershell-operators">What are PowerShell Operators</h2>
<p>PowerShell operators are commands available out-of-box to perform various operations to analyze and manipulate the data. Some of the common operators include:</p>
<ul>
<li><p><strong>Equality</strong> → equal (<strong>-eq</strong>), not-equal (<strong>-ne</strong>), greater than (<strong>-gt</strong>), greater than or equal (<strong>-ge</strong>), less than (<strong>-lt</strong>), less than or equal (<strong>-le</strong>)</p>
</li>
<li><pre><code class="lang-powershell">    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-number">2</span> <span class="hljs-operator">-eq</span> <span class="hljs-number">2</span> <span class="hljs-comment"># Output: True PS&gt; 2 -eq 3 # Output: False</span>

    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"abc"</span> <span class="hljs-operator">-eq</span> <span class="hljs-string">"abc"</span> <span class="hljs-comment"># Output: True PS&gt; "abc" -eq "def" # Output: False</span>

    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"abc"</span> <span class="hljs-operator">-ne</span> <span class="hljs-string">"def"</span> <span class="hljs-comment"># Output: True PS&gt; "abc" -ne "abc" # Output: False</span>
</code></pre>
</li>
<li><p><strong>Matching</strong> → -like, -notlike, -match, -notmatch</p>
</li>
<li><pre><code class="lang-powershell">    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-like</span> <span class="hljs-string">"*shell"</span> <span class="hljs-comment"># Output: True</span>
    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-notlike</span> <span class="hljs-string">"*shell"</span> <span class="hljs-comment"># Output: False</span>

    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-like</span> <span class="hljs-string">"Power?hell"</span> <span class="hljs-comment"># Output: True</span>
    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-notlike</span> <span class="hljs-string">"Power?hell"</span> <span class="hljs-comment"># Output: False</span>

    <span class="hljs-comment"># Partial match test, showing how differently -match and -like behave</span>
    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-match</span> <span class="hljs-string">'shell'</span> <span class="hljs-comment"># Output: True</span>
    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-like</span> <span class="hljs-string">'shell'</span> <span class="hljs-comment"># Output: False</span>

    <span class="hljs-comment">#Regex syntax test</span>
    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-match</span> <span class="hljs-string">'^Power\w+'</span> <span class="hljs-comment"># Output: True</span>
    <span class="hljs-built_in">PS</span>&gt; <span class="hljs-string">'bag'</span> <span class="hljs-operator">-notmatch</span> <span class="hljs-string">'b[iou]g'</span> <span class="hljs-comment"># Output: True</span>
</code></pre>
</li>
<li><p><strong>Containment</strong> → -in, -notin, -contains, -notcontains</p>
<pre><code class="lang-powershell">  <span class="hljs-string">"abc"</span>, <span class="hljs-string">"def"</span> <span class="hljs-operator">-contains</span> <span class="hljs-string">"def"</span> <span class="hljs-comment"># Output: True</span>
  <span class="hljs-string">"abc"</span>, <span class="hljs-string">"def"</span> <span class="hljs-operator">-notcontains</span> <span class="hljs-string">"def"</span> <span class="hljs-comment"># Output: False</span>

  <span class="hljs-string">"Windows"</span>, <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-contains</span> <span class="hljs-string">"Shell"</span> <span class="hljs-comment"># Output: False</span>
  <span class="hljs-string">"Windows"</span>, <span class="hljs-string">"PowerShell"</span> <span class="hljs-operator">-notcontains</span> <span class="hljs-string">"Shell"</span> <span class="hljs-comment"># Output: True</span>

  <span class="hljs-string">"abc"</span>, <span class="hljs-string">"def"</span>, <span class="hljs-string">"ghi"</span> <span class="hljs-operator">-contains</span> <span class="hljs-string">"abc"</span>, <span class="hljs-string">"def"</span> <span class="hljs-comment"># Output: False</span>
  <span class="hljs-string">"abc"</span>, <span class="hljs-string">"def"</span>, <span class="hljs-string">"ghi"</span> <span class="hljs-operator">-notcontains</span> <span class="hljs-string">"abc"</span>, <span class="hljs-string">"def"</span> <span class="hljs-comment"># Output: True</span>
</code></pre>
</li>
<li><p><strong>Type</strong> → -is, -notis</p>
<pre><code class="lang-powershell">  <span class="hljs-variable">$a</span> = <span class="hljs-number">1</span> <span class="hljs-variable">$b</span> = <span class="hljs-string">"1"</span>

  <span class="hljs-variable">$a</span> <span class="hljs-operator">-is</span> [<span class="hljs-built_in">int</span>] <span class="hljs-comment"># Output: True</span>
  <span class="hljs-variable">$a</span> <span class="hljs-operator">-is</span> <span class="hljs-variable">$b</span>.GetType() <span class="hljs-comment"># Output: False</span>

  <span class="hljs-variable">$b</span> <span class="hljs-operator">-isnot</span> [<span class="hljs-built_in">int</span>] <span class="hljs-comment"># Output: True</span>
  <span class="hljs-variable">$a</span> <span class="hljs-operator">-isnot</span> <span class="hljs-variable">$b</span>.GetType() <span class="hljs-comment"># Output: True</span>
</code></pre>
</li>
<li><p><strong>Replace</strong> → -replace</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>I hope you find this useful!</p>
<p>Now you know what PowerShell is and understand the basics of how it works. This will go a long way if you plan to use PowerShell for either general system automation or even automating the cloud resources using Azure PowerShell.</p>
<p>In the meantime, check out the other articles in the PowerShell series:</p>
<ul>
<li><p><a target="_blank" href="https://parveensingh.com/powershell-get-help/">PowerShell Basics: How to use PowerShell Help?</a></p>
</li>
<li><p><a target="_blank" href="https://parveensingh.com/powershell-format-output/">PowerShell Basics: Format Command Output as Tables, List, and More</a></p>
</li>
<li><p><a target="_blank" href="https://parveensingh.com/azure-powershell-dsc-zero-to-hero/">Azure PowerShell DSC</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Why Should You Use Azure App Service?]]></title><description><![CDATA[Azure platforms offer multiple cloud services including support for different programming languages, tools, and structures to help enterprises in their cloud journey. Azure App Service is one of the offerings that allow organizations to host their we...]]></description><link>https://hashnode.parveensingh.com/why-should-you-use-azure-app-service</link><guid isPermaLink="true">https://hashnode.parveensingh.com/why-should-you-use-azure-app-service</guid><dc:creator><![CDATA[Parveen Singh]]></dc:creator><pubDate>Tue, 10 Nov 2020 01:56:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1607568591928/gQhNV4CYs.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Azure platforms offer multiple cloud services including support for different programming languages, tools, and structures to help enterprises in their cloud journey. Azure App Service is one of the offerings that allow organizations to host their web workloads in a scalable and reliable fashion.</p>
<p>Azure App Service is a fully managed Platform as a Service (PaaS) that provides you with the tools and services needed to create reliable and scalable mission-critical Web Apps, Mobile Apps, API Apps, and Logic Apps in a single instance. It takes away your management of the host and lets you focus entirely on building your application for performance.</p>
<p>With the ability to develop and deploy enterprise-ready web applications, it provides powerful DevOps capabilities such as continuous integration with Azure DevOps, GitHub and Docker Hub, stage management, custom domain, and TLS/SSL. You can always integrate the app service with your on-premises resources if ever needed.</p>
<h3 id="check-out-some-of-the-key-features-of-app-service">Check out some of the key features of App Service:</h3>
<ul>
<li><strong>Multiple languages and frameworks</strong> - App Service support <a target="_blank" href="http://ASP.NET">ASP.NET</a>, <a target="_blank" href="http://ASP.NET">ASP.NET</a> Core, Java, Ruby, Node.js, PHP, or Python. You can always run WebJobs on your web app using PowerShell or other scripting languages.</li>
<li><strong>Managed production environment</strong> - App Service is fully managed resources that take away your effort to manage, patch, update, or upgrading any underlying OS. You can spend time writing great apps and let Azure worry about the platform.</li>
<li><strong>Containerization and Docker</strong> - Does the code work on your machine only? Dockerize your application and publish it on App Service. You can run multi-container apps with Docker Compos.</li>
<li><strong>DevOps optimization</strong> - You can  <a target="_blank" href="https://parveensingh.com/azure-app-service-continuous-integration-github-azure-repos/">set up continuous integration</a> and deployment with Azure DevOps, GitHub, BitBucket, Docker Hub, or Azure Container Registry. This allows you to deploy your application directly using CI/CD.</li>
<li><strong>Global scale with high availability</strong> - Being a managed resource, you get the ability to scale up or out the app service resource manually or automatically. App Service allows rules to trigger the scaling for your application based on its workload metrics.</li>
<li><strong>Connections to SaaS platforms and on-premises data</strong> - App Service allows you to choose from more than 50 connectors for enterprise systems (such as SAP), SaaS services, and internet services (such as Facebook). You can also access your on-premises data using Hybrid Connections and Azure Virtual Networks right within the application settings.</li>
<li><strong>Security and compliance</strong> - Authentication with Azure AD and other third party authentication service make it easier for you to leverage the feature with very little change in your application code.</li>
<li><strong>Application templates</strong> - If you are getting started, choose from an extensive list of application templates in the <a target="_blank" href="https://azure.microsoft.com/marketplace/">Azure Marketplace</a>, such as WordPress, Joomla, and Drupal with very little to zero experience of deploying web apps.</li>
<li><strong>Visual Studio and Visual Studio Code integration</strong> - Do you love working with Visual Studio tools? You can use Visual Studio or VS Code to create, deploy, and debug your application in real time without any additional setup.</li>
<li><strong>Serverless code</strong> - Serverless fan? App Service got you! You can run code snippets or script on-demand without having to explicitly provision or manage infrastructure and pay only for the compute time your code actually uses. Check out Azure Functions or Logic App for more information on how to achieve that.</li>
</ul>
<h1 id="conclusion">Conclusion</h1>
<p>Start using Azure App Service today and explore the feature to see what works best for you! If you are looking for more information, check out the other articles in the series and get started with App Service.</p>
<h2 id="references">References</h2>
<p><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/overview">Overview - Azure App Service</a></p>
<hr />
<p><strong>If it's your first time here, please check out other articles in the series:</strong></p>
<p>Part 1: <a target="_blank" href="https://parveensingh.com/up-and-running-with-azure-app-service/">Up and Running with Azure App Service</a></p>
<p>Part 2: <a target="_blank" href="https://parveensingh.com/azure-app-service-continuous-integration-github-azure-repos/">Continuous Deployment for Azure App Service</a></p>
]]></content:encoded></item><item><title><![CDATA[Up and Running with Azure App Service]]></title><description><![CDATA[This article was originally published at: 
https://parveensingh.com/up-and-running-with-azure-app-service/

Are you still running your web servers on Linux or Windows-based VMs in the cloud? When was the last time you checked how much resources your ...]]></description><link>https://hashnode.parveensingh.com/up-and-running-with-azure-app-service</link><guid isPermaLink="true">https://hashnode.parveensingh.com/up-and-running-with-azure-app-service</guid><dc:creator><![CDATA[Parveen Singh]]></dc:creator><pubDate>Tue, 06 Oct 2020 05:58:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1603785271434/NHqPdjMjg.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This article was originally published at: 
https://parveensingh.com/up-and-running-with-azure-app-service/</p>
<hr />
<p>Are you still running your web servers on Linux or Windows-based VMs in the cloud? When was the last time you checked how much resources your web app is using and whether you need to scale it up or down to improve performance or save cost? Probably, not so often!</p>
<p>The whole point of being in the cloud is leveraging the ability to run scalable and resilient infrastructure without compromising user experience. If you are using cloud services and still practicing the traditional route of using VMs instances for development, you clearly haven't migrated to the cloud yet! Start using the services that are built for the purpose so that you uncover all the possibilities of improvement and enhancement in your application that you would not think of otherwise.</p>
<p>In this article, I'll be providing a high-level overview of the exact tools that you need to build modern, scalable, resilient, and redundant applications all with cost-saving in mind so that you only pay for what you use.</p>
<h1 id="what-is-azure-app-service">What is Azure App Service?</h1>
<p>Microsoft provides a solution to host web-based services in form of application, REST APIs, or mobile backend known as Azure App Service. It's similar to a web server, but here you only focus on your code instead of updating your host for patches every other week. With the wide range of support for the language, you can deploy your application in .NET, .NET Core, Java, Python, Ruby, PHP, or Node.js. App Service support running application at scale on either Windows or Linux based environment.</p>
<p>App Service is <strong>the easiest way</strong> of running your application in Azure as it lets you focus on creating the application code, not on running it. Let's see what App Service can do and how it can solve your application needs.</p>
<h1 id="app-service-capabilities-and-functionality">App Service Capabilities and Functionality</h1>
<p>Azure App Service includes a wide variety of functionality including auto-scaling, load-balancing, automated deployment, and security integration with Azure AD. As the demand for CI/CD and automation increases, App Service lets you configure those DevOps capabilities and configure the deployments using GitHub, Azure DevOps, Docker Hub, and may other sources..</p>
<p>Let's explore some of the core features that App Service offers and how you can leverage them to solve your business needs.</p>
<h2 id="app-service-plan">App Service Plan</h2>
<p>As with any traditional web service, you need a hosting server where the code will be published and hosted. Azure offers that with "<strong>App Service Plan</strong>" that provides you with a fully isolated and dedicated environment to securely run your applications at a high scale. Think of this as Azure VM running in a secure environment that is fully managed by Azure.</p>
<p>As of today, you can choose from the following pricing tier for using an app service plan.</p>
<ul>
<li><strong>Shared Compute</strong>: App Service Plan offers two-tier on shared compute, <strong>Free</strong> and <strong>Shared</strong> which runs your services on the same Azure VM, sharing the underlying host instance. The resources are allocated for each customer instance that runs on the shared resource based on the chosen tier.</li>
<li><strong>Dedicated Compute</strong>: If you choose to run your service on a dedicated host, you get three tiers to choose from. The <strong>Basic</strong>, <strong>Standard,</strong> and <strong>Premium</strong> tier offers you a dedicated host that hosts only the services you choose to run on top of them.</li>
<li><strong>Isolated Instance</strong>: If you ever need to run your service or application without any connection or exposure to other instances in the same Azure network, <strong>Isolated Instance</strong> provides you with a fully isolated compute option running on a dedicated Azure virtual network which can integrate with your local virtual network for network-level isolation.</li>
</ul>
<h2 id="operating-system-support">Operating System Support</h2>
<p>With the mixture of Linux and Windows-based web services in the cloud, App Services also allows you to choose the type of operating systems that you need so that your application architecture doesn't suffer and it provides the same runtime environment that your application needs for your code to function properly.</p>
<p>Since the App Service is a managed service, you don't get direct access to the host operating systems that the apps run on. Likewise, if you are hosting a container in App Service, you still get full access to your container instance through but not the host it runs on.</p>
<h2 id="deployment-slots">Deployment Slots</h2>
<p>Deployment Slot is one of the features in App Service that provides more value than you'd expect. It lets you create a slot for your application and act as a fully-functional version of your production application. It gives you an opportunity to test your application in your App Service environment before pushing directly to production.</p>
<p>Let's suppose your application takes 2-5 minutes(may vary in your case) to warm up and perform initial tasks before it's functional, you would not want your customers to wait for that long whenever a new update is released. That's where you'd use Deployment Slot by creating a new slot and switch the slot with your production app when your application is ready and running as normal. It is as simple as clicking one button to switch your slots and push your code to production.</p>
<p>Check out more details at the link below:</p>
<p><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots?WT.mc_id=parveensingh.com">https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots?WT.mc_id=parveensingh.com</a></p>
<h2 id="deployment-center">Deployment Center</h2>
<p>Are you already using GitHub or Azure DevOps as your code repository? If yes, Integrate it right within your application and get a seamless deployment experience without any complex setup. </p>
<p>Deployment Center enables you to connect your Application with any repository for continuous delivery and code change updates. App Service supports continuous deployment from Azure DevOps, GitHub, and Bitbucket where app services pull the latest changes seamlessly from the source control to keep your app code up to date.</p>
<p>More information at the link below:</p>
<p><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/deploy-continuous-deployment">https://docs.microsoft.com/en-us/azure/app-service/deploy-continuous-deployment</a><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots?WT.mc_id=parveensingh.com">?WT.mc_id=parveensingh.com</a></p>
<h2 id="scale-up-out">Scale Up-Out</h2>
<p>How would you scale your application if it's running on an Azure VM? Probably shut it down and resize, right? Hold right there!</p>
<p>The scale-out feature has just the right configuration that you need for your application to scale automatically without even touching it. Whether you want 1 or 10 instances of your application, the auto-scaling feature provides you just that with a simple rule setup defined with pre-configured conditions that will trigger resource creation and destruction based on the workload of your application.</p>
<p>See what else can you do with Scaling in Azure:</p>
<p><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/manage-scale-up">https://docs.microsoft.com/en-us/azure/app-service/manage-scale-up</a><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/deploy-staging-slots?WT.mc_id=parveensingh.com">?WT.mc_id=parveensingh.com</a></p>
<h2 id="authentication-and-authorization">Authentication and Authorization</h2>
<p>If you are building any production running application, chances are that you are either handling the Authentication and Authorization in your code or using a third-party module to support that feature. Luckily, Microsoft provides you with direct integration of application authorization and authentication without you worrying about all the maintenance and management.</p>
<p>Since App Service uses the Federated Identity, you can integrate any major identity provide in your codebase like Azure Active Directory, Microsoft Account, Facebook, Google, and Twitter along with support for other OpenID Connect providers as well.</p>
<p>More in-depth information below:</p>
<p><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/overview-authentication-authorization">https://docs.microsoft.com/en-us/azure/app-service/overview-authentication-authorization</a><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/manage-backup?WT.mc_id=parveensingh.com">?WT.mc_id=parveensingh.com</a> </p>
<h2 id="backups">Backups</h2>
<p>Backups are a crucial part of running the application in production where you'd want to make sure you have a safe copy of your application in case you need to roll back to the previous date. App Service provides you with an in-built option to enable backups for your application with support for one-click restore to either a different application or overwriting existing app.</p>
<p>Check out more in-depth information on the article below: </p>
<p><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/manage-backup?WT.mc_id=parveensingh.com">https://docs.microsoft.com/en-us/azure/app-service/manage-backup?WT.mc_id=parveensingh.com</a></p>
<h2 id="custom-domains-and-ssl">Custom Domains and SSL</h2>
<p>If you are running your application in Azure, you should set up your own domain as an entry point instead of azurwebsites.com subdomain provided by Microsoft for free. App Service allows you to either purchase a domain directly from the app service options or connect your existing domain by verifying the domain membership.</p>
<p>Domain Verification usually involves adding a CNAME and A record for either root or subdomain based on what you are adding. Since Shared Infrastructure is intended to be used for development only, Custom Domain is not supported in "<strong>F1 Shared Infrastructure</strong>" as you'd need to be on at least "<strong>D1 Shared Infrastructure</strong>" plan to support the customer domain and <strong>B1 Plan</strong>, if you want to bind an SSL certificate to your application.</p>
<p>Refer to the article below for more information: </p>
<p><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-domain">https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-domain</a><a target="_blank" href="https://docs.microsoft.com/en-us/azure/app-service/manage-backup?WT.mc_id=parveensingh.com">?WT.mc_id=parveensingh.com</a></p>
<h2 id="application-insights">Application Insights</h2>
<p>Is your application performing the way you expect it to? Well, App Service got Application Insights that you tell you exactly what you need to know from the hardware level to application-level diagnostics of your application. All it takes is to add a simple piece of code to your application and let the data come through application insights where you can monitor the real-time performance of your application. How cool is that?</p>
<h1 id="conclusion">Conclusion</h1>
<p>I hope you got at least a brief overview of what Azure App Service is. I'll be covering in-depth tutorials in the coming weeks on using CI/CD Pipelines with Azure App Service.</p>
<blockquote>
<p>Looking for information or article on any particular Azure Service? Leave a comment down below or reach out to me on <a target="_blank" href="https://twitter.com/singh_cloud">Twitter</a>.</p>
</blockquote>
]]></content:encoded></item></channel></rss>