microsoft / microsoft/finops-toolkit

Tool for Predicting and Automating Cloud Run Cost Estimation

Open
#1,139 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Tool: New tool Type: Feature 💎
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:

  1. Please vote this issue up (👍) to prioritize it.
  2. Leave comments to help us solidify the vision.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.