microsoft / microsoft/finops-toolkit
Tool for Predicting and Automating Cloud Run Cost Estimation
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 603
- Forks
- 248
- Avg merge
- 7d 11h
- Merged PRs (30d)
- 11
Description
📝 Scenario
As an engineering team designing cloud architectures, I need to predict and analyze the cost impact of infrastructure design decisions early in the development lifecycle in order to ensure cost-efficient designs, align with FinOps practices, and avoid unexpected cloud run costs..
Problem Statement
Cloud infrastructure run cost estimation is a critical aspect of modern cloud adoption strategies. The dynamic nature of architectures, combined with the complexity of cloud providers' pricing models, often leads to unexpectedly high costs. Despite the practice of estimating run costs being adopted as early as 2019, the accelerating pace of cloud adoption and the rise of FinOps practices make it essential to revisit this as an architecture fitness function.
While commercial platforms help business units and finance organizations understand costs, engineers making design decisions often lack accessible tools to predict the cost implications of their architectural choices. This gap can lead to overspending and reactive cost management practices.
💎 Solution
I propose creating a tool similar to Infracost or Azure Cost Estimator and integrating them into the FinOps Toolkit or integrating existing tools into the FinOps Toolkit, to help engineering teams:
Predict Run Costs Early:
Automate the prediction of infrastructure run costs based on architectural decisions and Infrastructure-as-Code (IaC) definitions.
Provide real-time cost estimates during the design and development lifecycle.
Integrate with CI/CD Pipelines:
Enable cost estimation as part of the Continuous Deployment process to provide actionable feedback during code changes.
Automatically trigger cost-impact analyses when IaC configurations are modified.
Support Usage Projections:
Include inputs for usage levels to combine architectural decisions with expected consumption patterns for accurate predictions.
Enable Early and Frequent Feedback:
Provide immediate feedback when costs deviate from expected levels, enabling teams to reassess and optimize architecture in real-time.
📋 Tasks
### Required tasks
- [ ] Research and document existing tools like Infracost, Azure Cost Estimator and Azure pricing calculators for inspiration.
- [ ] Design the architecture for the cost estimation tool, focusing on integration with CI/CD pipelines.
- [ ] Identify required Azure APIs and services for fetching pricing and cost data (e.g., Azure Pricing API).
- [ ] Develop a prototype to estimate costs based on Infrastructure-as-Code (IaC) configurations (e.g., Bicep or Terraform).
- [ ] Create a mechanism to input and project expected usage levels for more accurate cost predictions.
- [ ] Integrate the tool into the FinOps Toolkit, ensuring compatibility with existing features.
- [ ] Test the tool with real-world scenarios to validate predictions and usability.
- [ ] Document usage instructions and best practices for engineering teams.
- [ ] Gather feedback from early users and iterate on the tool.
### Stretch goals
- [ ] Integrate with Azure Resource Graph to analyze live cloud environments for cost optimization opportunities.
- [ ] Provide recommendations for architecture adjustments based on cost analysis (e.g., resizing VMs, changing storage tiers).
- [ ] Add support for multi-cloud cost estimation (e.g., AWS and GCP) for hybrid cloud setups.
- [ ] Implement visualization features to display cost trends and projections in an interactive dashboard.
- [ ] Enable cost anomaly detection using historical cost data and usage patterns.
- [ ] Integrate with collaboration tools like Teams or Slack for real-time notifications on cost deviations.
- [ ] Explore AI-powered suggestions to further optimize architecture based on usage and cost insights.
🙋♀️ Ask for the community
We could use your help:
- Please vote this issue up (👍) to prioritize it.
- Leave comments to help us solidify the vision.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the FinOps Toolkit and researching Infracost, Azure Cost Estimator, Azure pricing calculators, and the Azure Pricing API. Define how IaC inputs such as Terraform or Bicep, usage projections, and CI/CD integration would work together. Done would require a scoped prototype, validation against real-world scenarios, integration with the toolkit, and usage documentation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, terraform
- Domain
- ci-cd, cloud, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100