Azure - Data Plane & Control Plane

  1. Control plane
  2. Data Plane
  3. REST API & SDK
  4. See also
  5. References

Azure operations can be divided into two categories - control plane(控制平面) and data plane(数据平面).1

Control plane

You use the control plane to manage resources in your subscription. 1

Q: How to know which operation use the control plane?

All requests for control plane operations are sent to the Azure Resource Manager URL. 1

Q: What is the relationship between Azure Resource Manager?

Azure Resource Manager is a control plane. Another control plane is Azure Service Manager which is the old control plane.2

Data Plane

You use the data plane to use capabilities exposed by your instance of a resource type.1 Data plane operations are operations sent to your instance of a service, such as https://myaccount.blob.core.windows.net/.3

REST API & SDK

To discover which operations use the Azure Resource Manager URL, see the Azure REST API.1

Let's take Cosmos DB as an example. There are two API in Azure REST API:

image-20211031235413747As shown in the image above, you can create a Database or a Container by either Cosmos API or Resource Provider API. 45

Q: Can I use Resource Provider API to put data into Cosmos DB?

No. Because there is a note in Collections :

If you require complete feature support for all Azure Cosmos DB resources, we recommend using the Cosmos DB Resource Provider.

But there isn't a note in Documents . So Resource Provider API doesn't support insert data.

Another example is that you can set Lock to Cosmos DB Account and Database, but it doesn't work for data because of Lock just working for Resource Provider API.

Q: which API does tools use?

Resource Manager request model

From the image, we can know that all the tools use the control plane.

We can use Azure Portal, Azure PowerShell and Azure CLI use Cosmos API to insert data6, so they use both Cosmos DB REST API and Cosmos DB Resource Provider REST API.

The SDK code about Azure Resource Manager is placed the management group.7 Here is the sample code to create a Cosmos DB Account. The Azure SDK also can use the data plane.

Terraform is the only tool that just use the control plane but not use the data plane.8

See also

References

  1. https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/control-plane-and-data-plane  2 3 4 5

  2. Frequently asked questions about classic to Azure Resource Manager migration 

  3. Lock resources to prevent changes - Azure Resource Manager 

  4. Sql Resources - REST API (Azure Cosmos DB Resource Provider 

  5. Azure Cosmos DB REST API Reference Microsoft Docs 

  6. What is Azure PowerShell? 

  7. General Guidelines: API Design Azure SDKs 

  8. [Docs overview hashicorp/azurerm Terraform Registry](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs)