Recently we have been trying out the new cost analyser module in Serverless360. Its currently in preview but due to come out soon. I wanted to share some of our experiences trying it out.
Cost Scopes
In the cost analyzer module you can build a folder structure which would allow you to look at the cost in different parts of your Azure usage. You can see below we have added 2 scopes for our Enterprise Data Management Platform and our Integration platform.
We can then use these as folders to create views on the billing data which focus on these areas.
The idea here is that you can build a tree which represents the different teams or areas or apps and make it easy to look at the costs related to those areas. You might also split things by environment.
Analysis
In the folder you then have options for analysis, monitoring and cost optimization. In the analysis area you can build graphs and tables which will focus on the billing data for a given area. Below you can see a simple graph of this months cost for our integration platform by subscription.
You can then build other useful graphs and save them or pin them to the dashboard to make it easy to come back later and see the views you want on this data. Another example would be our cost by resource group
We can see here that most of the cost is in one resource group but the cost by month is pretty stable which is what we want to see.
Its pretty easy to do lots of mining of the cost data.
Monitoring
In the monitoring area you can create alerts which will monitor the cost based on filter criteria and then it will raise an alert if your cost is going to break the desired threshold. Below I have created a simple monitor which will check my integration platform each day.
I will then define the rules for this monitor and in our case the easiest way to do this is to just pick the resource groups which are used by the integration platform. We can then configure it to use an email alert channel so that the integration team get an email alert if the daily spend is beyond an expected amount.
This will be our default alert, but it is likely we will add other alerts for more granular areas within out platform. For example we did once have a billing issue with Spark Pools. The consumption of these is on demand and we might create an alert in the EDMS platform scope which monitors our spend on Spark Pools and raises an alert if this increases. This is where you can look at the stable vs volatile costs in your Azure usage and look for areas where your cost is more likely to increase and alert for this potential problem.
Optimization
Its great to alert and view the cost data but Cost Analyzer has an optimize feature which is where it can help you to optimize resource usage to reduce your costs.
You can see below we have setup 2 optimization jobs.
The dev gate ways job allows us to optimize the use of the VM’s which are used for our on premise data gateway servers in non production environments so they can be turned on and off based on when they are likely to be used.
The 2nd job “Serverless360” is because we have a private hosting instance of Serverless360 which is hosted in our environment. We have an app service plan which Serverless360 runs on. We have quite a few users of Serverless360 during the day and out of hours usually no users. We can use the job to scale up and down the app service plan based on expected use.
With the Serverless360 job you can see the overview which shows us the up and down hours and the projected cost savings.
We then set a schedule of when the app is “up” and “down”
You would then choose which resources you want to be part of this job. You can mix different types of resources and at present VM, VM Scalesets, App Service, CosmosDB are supported with others coming soon.
Summary
Azure has loads of great cost data and you can configure automations to manage aspects of the cost, but its just so overly complicated to do it and especially at scale. The aim of Cost Analyzer is to give you a central place where its easy to view and manage your cost and to make it easier to use.
Cost Analyzer came from the challenges Saravana had with understanding the running costs of Document360 product which Kovai developed and it made sense to add a module to Serverless360 because all Azure users will have similar challenges. Arunprabu and the engineering team have done a good job in putting together this module and its been awesome to contribute ideas based on challenges we have in the real world.
Im looking forward to this module being GA soon but you can try it out in Serverless360 now and you can learn more about it here: