Cost Modeling and FinOps for System Design

Estimate cost by major drivers: compute time, memory, database capacity, storage, requests, network egress, managed-service units, logs, and backups. A cheap request can become expensive at billions of requests, while a high-cost operation used rarely may not be the right optimization target.

Compare cost per useful outcome, such as cost per 1,000 successful checkouts or per hour of video delivered. Include operational labor and failure risk; a self-managed database may have a lower invoice but higher engineering and on-call cost.

Use budgets, tags, allocation by team or feature, and anomaly alerts. Optimize with evidence: right-size overprovisioned resources, improve cache hit rates, reduce wasteful queries, and apply storage lifecycle policies. Avoid reducing redundancy below the reliability target merely to lower the bill.

Key Takeaways
  • Model the full cost of delivering a useful outcome.
  • Include operational labor and reliability impact.
  • Optimize measured cost drivers rather than arbitrary resource counts.
Knowledge Check

What should a useful architecture decision record capture?