Azure Resource Manager
To solve the issues just exposed, Azure has implemented some concepts:
A resource group is a batch of services that can be deployed in a single operation
"Resource" is the generic term that refers to a service deployed in a subscription
A resource group is described in a declarative way, with a JSON document called "resource template"
All resources are managed by the Azure Resource Manager (ARM)
ARM is accessible entirely via REST APIs in a single, consistent way, not specifically by service (it's the service that needs to expose an ARM-compatible interface)
The last topic is interesting for some issues:
An Azure service needs to be rewritten or updated to be compatible with the ARM model.
Not all services (at the time of writing this book) have already moved to the ARM mode, for example, the Service Bus service. These services are accessible only from the classic portal (in this case, we speak about ASM, Azure Service Mode).
Some services coexist in two modes that are incompatible...