There is a specific aspect of this resource management that I would like to emphasize. Returning to the simile of “tenant” of a house that we made in the first part of this series of articles; we can find the typical Neighbors.
In the case of an Azure shared environment, with shared total system capacity, a “noisy neighbor” could be that tenant that uses the shared resources so much that it causes them to become unavailable to another tenant:
As we can imagine, this scenario can be complicated when there are more than two apartments in the building and more than one “noisy neighbor”. To mitigate these cases we can consider different strategies:
Deploy with oversized shares
Dynamically scale the system based on its load. So we make sure we have enough resources for each moment
Create multiple resource pools and ensure that the Tenants in those pools have different workloads
It is also possible to use throttling to set limits for each tenant
To ensure that our Tenants will have the service they need at all times. Remember that “dedicated environment illusion” we discussed in the first article of this series.
Cost management in a Multi-Tenant environment
At first sight we may think: “Azure cost management seems complicated enough for a single Tenant, how should it be for multiple Tenants?” How can I charge my clients for the cost of Azure resources they have used?
Charge each tenant a flat fee: regardless of how many system resources each tenant uses.
Charge each Tenant for consumption: but as we have seen it is a difficult point to predict with which it will also be difficult to predict our cost and our benefit.
Apply the Freemium model: offer some functionalities and/or features of our system for free and charge for others that are added or improved.
Tiered Pricing: In this option, we do not offer anything for free, but we do offer different categories of our system, each associated with a set of functionalities that can be used. It would be in the style of “Bronze, Silver, Gold”
In summary, whatever pricing model we wish to apply, we must take into account:
Measure the use of resources by each Tenant
Manage total or partial costs
Secure Usage Limits
Consider, if it applies in our system to activate and deactivate functionalities
Managing a Multi-Tenant environment in Azure
In this series of articles we have learned the management of a multi-tenant environment in Azure by going through:
The different insulation options that we can apply
Limits and scaling
The life cycle of a tenant
There are more technical and architectural aspects that we must also take into account. You can review all of them in this Microsoft training, “Managing Your Customers in a Multi-Tenant Environment” which has been the most important source of information to develop these articles.
Oriol Fernandez Moreno – Key Software Developer at Itequia
Find out how to deliver modern digital solutions with our newsletter