What Is FinOps? Cloud Cost Optimization Explained
FinOps is the practice of making engineering, finance, and business teams jointly accountable for cloud spend. How it works and what it actually changes.
FinOps (a blend of “finance” and “DevOps”) is a set of practices for managing cloud spend as a shared responsibility between engineering, finance, and business teams — rather than something finance discovers after the fact on a monthly invoice. The core idea is that cloud costs are variable and driven by engineering decisions made continuously, so cost accountability has to sit with the people making those decisions, not solely with a finance team reading a bill weeks later.
Why cloud spend needed its own discipline
Traditional IT budgeting assumed largely fixed costs: buy servers, depreciate them over years, forecast within a narrow band. Cloud infrastructure broke that model. Spend now scales directly with usage, changes hour to hour, and is shaped by decisions an individual engineer makes when picking an instance size or leaving a database running overnight — decisions finance teams have no visibility into and no practical way to review in real time. A bill that jumps 40% in a month because a new feature shipped without capacity planning is a normal cloud story, and by the time it shows up on an invoice, the spend has already happened.
FinOps exists to close that loop earlier: give engineers real-time cost visibility next to the systems they’re already building, and give finance a forecasting model that reflects actual usage patterns instead of static budgets.
The three phases
FinOps practice is usually described as an iterative cycle, not a one-time project:
- Inform. Give teams visibility into what they’re spending and why — cost allocation by team, service, or feature, ideally tied to the same tags and namespaces engineers already use in their infrastructure. Without accurate allocation, “cost optimization” becomes a guessing game about which team or workload to talk to.
- Optimize. Once spend is visible, act on it: right-size over-provisioned instances, buy reserved capacity or savings plans for predictable steady-state load, shut down idle resources, and choose cheaper storage tiers for data that doesn’t need to be instantly accessible.
- Operate. Build the optimization habit into normal workflow — automated alerts on anomalous spend, cost checks in code review for infrastructure changes, and recurring reviews where engineering and finance look at the same numbers together instead of reconciling separate reports afterward.
The cycle repeats because cloud usage isn’t static — a service that was efficient at last quarter’s traffic volume may be wildly over- or under-provisioned this quarter.
Where the savings actually come from
Most FinOps programs find that a small number of patterns account for most of the waste:
- Idle and orphaned resources. Unattached storage volumes, load balancers with no traffic, and instances left running after a test — these cost money with zero business value and are usually the easiest first cut.
- Over-provisioning. Instances or database tiers sized for peak load that runs a few hours a week, rather than autoscaled to match actual demand.
- Commitment mismatches. Paying on-demand rates for workloads that have been stable and predictable for months — the kind of usage that reserved instances or savings plans are built for.
- Data transfer and storage tier mistakes. Cross-region or cross-cloud data transfer fees are easy to overlook until they’re a meaningful line item, and data sitting in a hot storage tier long after it’s stopped being accessed regularly is pure waste.
None of this requires exotic tooling — it requires the cost data to reach the engineers who can act on it, framed in units they understand (per-service, per-request, per-customer) rather than a single aggregate bill.
Where FinOps sits next to other practices
FinOps overlaps with platform engineering in that both are about giving engineers self-service tools with the right guardrails built in — in FinOps’s case, that means cost visibility and budget limits baked into the same internal developer platform engineers already use to provision infrastructure, rather than a separate finance dashboard nobody checks. It also intersects with multi-cloud strategy: comparing costs across providers only works if the cost model is consistent enough to make an apples-to-apples comparison, which is harder than it sounds once discounts, commitments, and egress fees differ by vendor.
What FinOps is not
It’s not a mandate to always pick the cheapest option — the discipline explicitly weighs cost against speed and quality, since over-indexing on cost alone tends to slow shipping and create its own risk. It’s also not purely a finance function bolted onto engineering after the fact; a FinOps program run entirely by finance, without engineering buy-in on the tooling and workflow, tends to produce reports nobody acts on. The practices work when cost becomes a normal input to engineering decisions, similar to how burn rate and runway become normal inputs to a startup’s planning — visible, tracked, and owned by the people whose decisions move the number.
The takeaway
FinOps reframes cloud spend as an engineering variable rather than a finance surprise, built around a repeating cycle of informing teams with real cost data, acting on the biggest waste, and operationalizing that habit so it doesn’t require a special project every quarter. The programs that work share one trait: cost visibility lives right next to the infrastructure decisions that create the cost, not in a separate spreadsheet finance reconciles a month later.
Keep reading
Chisato · · 4 min read A Hands-On Guide to AWS Spot Instances
AWS Spot Instances sell unused EC2 capacity at a steep discount. Here's how to launch one, handle interruptions, and pick workloads that fit.
Chisato · · 5 min read Pulumi vs Terraform: Code vs Declarative Config for IaC
Pulumi defines infrastructure in general-purpose languages like TypeScript and Python; Terraform uses its own declarative HCL. Here's how they differ.
Chisato · · 4 min read Incident Severity Levels Explained (SEV1-SEV4)
Incident severity levels rank outages by impact so teams respond proportionally. What SEV1 through SEV4 typically mean and how to set the scale.