As we discussed in the previous article,
Azure administrative tools like Azure CLI, PowerShell, Azure Portal, Templates, SDK all of these talks to Resource Manager Layer and once authorized the requests are sent forward to the Resource Providers to allocate the requested resource. Here by the term Resources we mean a Virtual machine, Database Server, Storage Accounts, Databases, Webapp, virtual networks etc. In other words we can say, Resource Providers are web services which serves as the foundation of all Azure services. Some of the major resource providers are Network, Storage and Compute. We can even add more resource providers if required. SQL server resource provider, MySql RP, Service Bus RP, Virtual machine RP are few common RP in azure stack. If we take SQL server RP it can create, delete and update databases, its hosting servers and server groups.

                Fig: Shows the providers in my environment.

 1. Compute RP: This allows the tenants and the hosting admins to create and manage their virtual machines. It provides and additional feature to create virtual machine extensions. It also allows hosting admins to create resource providers for tenants. If a virtual machine requires software installation, anti-virus protection, a VM extension can be used to complete these tasks. Azure VM extensions can be run by using the Azure CLI, PowerShell, Azure Resource Manager templates, and the Azure portal. Extensions can be bundled with a new virtual machine deployment or run against any existing system.

2. Network RP: The Network RP gives us, 

  • More granular network control
  • Metadata tags
  • Faster configuration
  • Rapid and repeatable customization
  • Multiple control interfaces (including PowerShell, .NET SDK, Node.JS SDK, REST-based API).
  • Helps in creating software load balancers, public IPs, network security groups, virtual networks.

3. Storage RP: Storage RP provides four types of Azure storage services as below. 

  1. Blob
  2. Table
  3. Queue
  4. Account management
                        Azure Storage Concepts


        1. Blob Storage can take any type of data like say media, application installer, documents etc. Blob is further divided in to three, 

  • Block blobs : Used to store streaming files, media files, documents etc.
  • Append blobs: This blob can be updated by only adding new block to the end, used for storing logging events which has a sequence.
  • Page blobs (disks): Used to provide virtual disc for IaaS infrastructure. All provided VHD’s reside in this blob.
                             Blob Architecture


As shown in the above picture,

Every blob is organized under a container. Containers also provide a useful way to assign security policies to groups of objects. A storage account can contain any number of containers, and a container can contain any number of blobs, up to the 500 TB capacity limit of the storage account.

2. Table Storage is Microsoft’s NoSQL key/attribute store; however, it doesn’t have any predefined schema (Ex: attributes like MSExch* in case of exchange Schema). Absence of a schema helps the application developer to use this in a flexible way. We can store any number of entities in the table till we reach the storage account capacity.

3. Queue Storage: When we are design an application for scale, most of the components are decoupled for better performance. Queue storage delivers messages between these decoupled components, even if a component goes down messages are buffered and then are picked up by the next available node.

       PowerShell cmds

      1. To get all the available resource providers.

       Get-AzureRmResourceProvider -ListAvailable

         2. To get the resource types for a particular resource provider.

        (Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Web).ResourceTypes

         3. To register a resource provider, provide the namespace

         Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ApiManagement


        Azure CLI cmds

       1. To get all the available resource providers.

          azure provider list

       2. To get the information for a particular resource provider to a file with the following command

           azure provider show Microsoft.Web -vv –json > c:\temp.json

       3. To register a resource provider, provide the namespace

           azure provider register -n Microsoft.ServiceBus


Happy Learning…!!!
Anoop Karikuzhiyil Babu
Former Microsoft Premier Unified Communication Engineer

By Anoop Karikuzhiyil Babu

Started his career with Exchange 2003 as a Microsoft Support Engineer, later moved to Microsoft Enterprise Unified Communication Team as Premier Engineer. Post handling numerous Premier environments and deployments, currently settled as a Solution Architect for Messaging and Collaboration in United Arab Emirates largest Tier3 Datacenter.