How It Works
High-Level view of processing tenant data and its processing.
View on the resources, their classification and states they go through within application.
View of tenant
Tenant contains all Azure resources that are organized in containers, those are: management groups, resource groups, subscriptions.
When we analyze tenant, resources are seen as following sets:
Example scenario, let's say there are 100 resources inside the tenant. There will be 20 resources that are either unsupported resource type or filtered out based on some other logic. This leaves 80 resources that will be analyzed and go through evaluation of our use cases. Out of those 80 resources, 30 resources will be identified by use cases, meaning there is some work to be done - action to take, against those 30 resources. As time goes by, we will monitor if actions are taken against the identified resources, if we determine that e.g. resource was resized or deleted, we will count it towards actions taken.
Execution Flow
Each scan consists of the following main stages:
Based on the flow, to provide results of our use cases and insights, we need to have access to read the data in Azure and Billing data.
Resource data we gather comes from these sources:
- Resource Graph
- Azure Resource Metrics
- Fetching specific details about resource via Azure Resource Manager API
- Cost Query API
We use the gathered data from different APIs to build our own data model
for each resource.
Model
enters use case and insights evaluation. Outputs from the evaluation are stored in the storage account.
If this is not the first time we have scanned your environment we will use previous results of identification to compute Actions Taken. Actions taken track actions and savings that were done to the resources.
Resource Stages
Every resource type that is supported can move between several states as pictured in the diagram below.
State | Transition | Remarks |
---|---|---|
Not Identified | Initial state | Every resource that is either not matching any use case - we can say, there is nothing to optimize or the resource is not supported |
Identified | Resource meets criteria for one or more use cases i.e. it is unused | Resource stays identified as long as condition of the use case holds true |
Monitoring | Identified resource will be monitored automatically for any optimization changes | Every scheduled scan i.e. daily will look for optimization changes on the identified resource, for some resources it can be simply checking if they still exist (unused resource can only be remediated by deletion) or if f.e. SKU has changed |
Action Tracking | Optimization Action was detected | Examples of actions: Deletion, Re-Size, month-to-month cost has decreased |
Report Action | After optimization was done | Reporting consists of evaluating how much money was saved and whether the resource is still matching any use case. If the resource was re-sized, it will go to Not Identified state. |