Enterprise FinOps advice often assumes dedicated teams and complex tooling. For SMEs with limited resources, here are practical approaches that deliver results without the overhead.
Quick Wins (Do These First)
1. Right-Size VMs
Most VMs are oversized. Check actual usage:
Perf
| where TimeGenerated > ago(30d)
| where ObjectName == "Processor" and CounterName == "% Processor Time"
| summarize AvgCPU = avg(CounterValue), MaxCPU = max(CounterValue) by Computer
| where AvgCPU < 20 and MaxCPU < 50
If average CPU is under 20%, you can probably downsize.
2. Shut Down Dev/Test
VMs running 24/7 but only used 8 hours a day? Stop paying for 16 hours:
resource "azurerm_automation_schedule" "shutdown" {
name = "shutdown-devtest"
resource_group_name = azurerm_resource_group.this.name
automation_account_name = azurerm_automation_account.this.name
frequency = "Day"
start_time = "2024-01-01T18:00:00+00:00" # 6 PM
}
3. Delete Orphaned Resources
Disks, IPs, and NICs left behind after VM deletion:
# Find orphaned disks
Get-AzDisk | Where-Object { $_.ManagedBy -eq $null } |
Select-Object Name, DiskSizeGB, @{N='MonthlyCost';E={$_.DiskSizeGB * 0.04}}
# Find orphaned public IPs
Get-AzPublicIpAddress | Where-Object { $_.IpConfiguration -eq $null }
4. Use Hybrid Benefit
If you have Windows Server or SQL licenses:
resource "azurerm_windows_virtual_machine" "this" {
license_type = "Windows_Server" # Saves ~40%
}
resource "azurerm_mssql_database" "this" {
license_type = "BasePrice" # Saves ~55%
}
Medium-Term Strategies
Reserved Instances
For stable workloads, commit for 1 or 3 years:
| Term | Typical Savings |
|---|---|
| 1 Year | 30-40% |
| 3 Year | 50-60% |
Start with:
- Production VMs that run 24/7
- Database servers
- AKS node pools
Don't reserve:
- Dev/test (use pay-as-you-go)
- Variable workloads
- Resources you might change
Savings Plans
More flexible than reservations. Commit to hourly spend instead of specific resources:
Reservation: "I need this specific VM size for 1 year"
Savings Plan: "I'll spend £100/hour on compute for 1 year"
Savings Plans let you change VM sizes and regions.
Storage Tiering
Move infrequently accessed data to cheaper tiers:
resource "azurerm_storage_management_policy" "lifecycle" {
storage_account_id = azurerm_storage_account.this.id
rule {
name = "archive-old-data"
enabled = true
filters {
blob_types = ["blockBlob"]
}
actions {
base_blob {
tier_to_cool_after_days_since_modification_greater_than = 30
tier_to_archive_after_days_since_modification_greater_than = 90
delete_after_days_since_modification_greater_than = 365
}
}
}
}
SME-Specific Considerations
Microsoft Partner Benefits
If you're a Microsoft Partner:
- Free internal use licenses (IUR)
- Azure credits for development
- Reduced pricing on some services
CSP vs Direct
Cloud Solution Provider pricing:
- Sometimes cheaper than direct
- Bundled with support
- Simplified billing
Compare before committing to either.
Azure Spot VMs
For interruptible workloads (batch processing, dev, CI/CD):
resource "azurerm_linux_virtual_machine" "spot" {
priority = "Spot"
eviction_policy = "Deallocate"
max_bid_price = 0.05 # Pay up to £0.05/hour
# Savings: 60-90% vs standard VMs
}
Monthly Cost Review Process
- Week 1: Review Cost Management recommendations
- Week 2: Check for orphaned resources
- Week 3: Review VM utilisation
- Week 4: Update budgets and alerts
Simple spreadsheet tracking is fine for SMEs - you don't need expensive FinOps tools.
Budget Alerts
Set up alerts before you get surprised:
resource "azurerm_consumption_budget_subscription" "this" {
name = "monthly-budget"
subscription_id = data.azurerm_subscription.this.id
amount = 5000
time_grain = "Monthly"
notification {
enabled = true
threshold = 80
operator = "GreaterThan"
contact_emails = ["[email protected]", "[email protected]"]
}
notification {
enabled = true
threshold = 100
operator = "GreaterThan"
contact_emails = ["[email protected]", "[email protected]", "[email protected]"]
}
}
Common SME Mistakes
- Over-provisioning "just in case" - Start small, scale up
- Ignoring Azure Advisor - Free recommendations, often good
- Premium storage for everything - Standard SSD is fine for most workloads
- Not using auto-shutdown - Dev VMs should stop at night
- Keeping old backups forever - Set retention policies
ROI Example
Typical SME (50 users, £3,000/month Azure spend):
| Optimization | Monthly Savings |
|---|---|
| Right-size VMs | £300-500 |
| Hybrid Benefit | £200-400 |
| Dev shutdown | £150-250 |
| Delete orphaned | £50-100 |
| Total | £700-1,250 |
That's 25-40% savings without major changes.
Need help optimising your Azure costs? Get in touch - we help SMEs reduce their cloud spend while maintaining performance.