Multi-Cloud FinOps Strategy
Optimize costs across multiple cloud providers simultaneously. Covers cross-cloud cost visibility, normalization strategies, unified tagging, discount portfolio management, and the patterns that prevent multi-cloud from becoming a multi-cost nightmare.
Multiple cloud providers mean multiple billing systems, discount programs, pricing models, and cost allocation methodologies. Without a unified FinOps strategy, multi-cloud becomes multi-cost — each team optimizes their own cloud while the organization’s total spend grows unchecked.
Cross-Cloud Cost Normalization
Problem: Comparing costs across clouds is like comparing currencies.
AWS: m6i.xlarge = 4 vCPU, 16 GB RAM = $0.192/hour
Google Cloud: n2-standard-4 = 4 vCPU, 16 GB RAM = $0.194/hour
Azure: D4s v5 = 4 vCPU, 16 GB RAM = $0.192/hour
BUT: Same spec ≠ same performance
CPU: Different generations, clock speeds
Network: Different bandwidth limits
Storage: Different IOPS tiers included
Normalization approach:
Cost per unit of work (not cost per hour)
Metric: Cost per 1 million API requests processed
AWS: $12.50 (Lambda + API Gateway)
GCP: $10.80 (Cloud Functions + Cloud Endpoints)
Azure: $11.20 (Functions + API Management)
Metric: Cost per TB stored per month
AWS S3: $23.00
GCS: $20.00
Azure Blob: $18.40
Unified Tagging Strategy
# Cross-cloud tagging standard
tagging_policy:
required_tags:
- key: "cost-center"
description: "Business unit cost center code"
format: "CC-[0-9]{4}"
example: "CC-4521"
- key: "environment"
description: "Deployment environment"
values: ["production", "staging", "development", "sandbox"]
- key: "service"
description: "Application or service name"
format: "lowercase-kebab-case"
example: "order-processing"
- key: "owner"
description: "Team responsible for the resource"
format: "team-name"
example: "platform-team"
- key: "cloud"
description: "Cloud provider (for unified reporting)"
values: ["aws", "gcp", "azure"]
enforcement:
aws: "AWS Config rule + SCP deny untagged"
gcp: "Organization Policy + IAM conditions"
azure: "Azure Policy + deny effect"
reporting:
tool: "Apptio, CloudHealth, or custom dashboard"
frequency: "Weekly cost report by cost-center + service"
anomaly: "Alert on >15% week-over-week increase"
Discount Portfolio
class MultiCloudDiscountManager:
"""Manage discount programs across cloud providers."""
portfolio = {
"aws": {
"savings_plans": {
"type": "Compute Savings Plan",
"commitment": "$50/hour",
"term": "1 year",
"savings": "30%",
"coverage": "EC2, Lambda, Fargate",
},
"reserved_instances": {
"type": "Standard RI",
"instances": "50x m6i.xlarge",
"term": "1 year, partial upfront",
"savings": "40%",
},
},
"gcp": {
"committed_use": {
"type": "CUD (Committed Use Discount)",
"resource": "200 vCPU + 800 GB RAM",
"term": "1 year",
"savings": "37%",
},
"sustained_use": {
"type": "SUD (automatic)",
"threshold": "25%+ monthly usage",
"savings": "Up to 30% automatic",
},
},
"azure": {
"reserved_instances": {
"type": "Azure RI",
"instances": "30x D4s_v5",
"term": "1 year",
"savings": "35%",
},
},
}
def total_savings(self):
total_on_demand = sum(p["on_demand_equivalent"] for p in self.portfolio.values())
total_actual = sum(p["actual_spend"] for p in self.portfolio.values())
return {
"on_demand_equivalent": total_on_demand,
"actual_spend": total_actual,
"total_savings": total_on_demand - total_actual,
"savings_rate": (total_on_demand - total_actual) / total_on_demand,
}
Anti-Patterns
| Anti-Pattern | Consequence | Fix |
|---|---|---|
| Separate FinOps per cloud | No unified cost view | Single FinOps platform across all clouds |
| Inconsistent tagging | Cannot compare costs cross-cloud | Unified tagging policy enforced on all providers |
| Optimize each cloud independently | Miss opportunities for workload placement | Total cost optimization including egress |
| No cross-cloud benchmarking | Overpay without knowing it | Regular pricing comparison per workload type |
| One team for all clouds | Expertise too thin | Cloud-specific expertise with unified FinOps governance |
Multi-cloud FinOps is harder than single-cloud FinOps — but the same principles apply: visibility, optimization, and governance. The key addition is normalization: creating a common language for cost that spans providers and lets you compare apples to apples.