Why Cost Optimization Matters for MSPs
Cost optimization isn't just about reducing client bills – it's about maximizing value, demonstrating expertise, and protecting margins. For MSPs, effective optimization:
- Strengthens client relationships through demonstrated value
- Maximizes Partner Earned Credit (PEC) through active management
- Creates upsell opportunities for optimization services
- Differentiates from competitors who simply resell Azure
- Protects margins when using fixed-fee billing models
The MSP Optimization Framework
1. Discovery & Assessment
Before optimizing, understand the current state.
Data Collection
- 30-90 days of Azure consumption data
- Workload inventories and criticality ratings
- Business requirements (SLAs, compliance, growth plans)
- Current pain points and cost concerns
Analysis Questions
- Which resources run 24/7 vs. intermittently?
- What are the production vs. dev/test splits?
- Where is data stored and transferred?
- What licenses already exist (for Azure Hybrid Benefit)?
- What's the disaster recovery strategy?
Tools
- Azure Cost Management (historical spending)
- Azure Advisor (automated recommendations)
- Resource graph queries (inventory)
- Workbooks and dashboards (visualization)
2. Quick Wins
Implement these high-impact, low-effort optimizations first.
Delete Unattached Disks
- Orphaned managed disks from deleted VMs
- Storage costs continue even when unused
- Use Azure Advisor or Cost Management to identify
- Verify no backup/recovery need before deletion
Savings: $10-100 per disk per month
Right-Size Over-Provisioned VMs
- VMs with consistently low CPU/memory usage
- Downsize to smaller VM series
- Test in dev/test first, then production
- Monitor performance post-change
Savings: 30-50% on affected VMs
Enable Auto-Shutdown for Dev/Test
- Automatically shut down VMs at 7 PM, restart at 8 AM
- Reduces dev/test compute costs by ~60%
- Built-in Azure feature, easy to configure
- Override capability for occasional after-hours work
Savings: 60% on eligible VMs
Optimize Storage Tiers
- Move infrequently accessed data to Cool or Archive tiers
- Blob Storage tiering based on access patterns
- Use lifecycle management policies to automate
- Review access logs to identify candidates
Savings: 50-90% on applicable storage
Release Unused Public IPs
- Public IP addresses cost ~$3-4/month each
- Check for IPs not associated with resources
- Delete if not needed for future use
Savings: $3-5 per IP per month
3. Commitment-Based Discounts
Leverage Reserved Instances and Savings Plans for stable workloads.
Reserved Instance Strategy
Identification
- Use Azure Advisor RI recommendations
- Analyze 30-60 day usage for consistent patterns
- Target VMs running >40-50% of the time
Purchasing Approach
- Start with 60-70% coverage (leave room for flexibility)
- 1-year commitments for uncertain workloads
- 3-year for stable production systems
- Use instance size flexibility feature
Monitoring
- Track RI utilization monthly (target >85%)
- Exchange RIs if workload patterns change
- Report savings to clients
Savings: 40-72% on committed VMs
Savings Plans
- Consider for diverse workloads across regions
- Simpler management than multiple RIs
- Better for dynamic environments
- Requires sophisticated cost allocation
Client Communication
"Based on your usage patterns, purchasing a 1-year Reserved Instance for these 10 VMs would save approximately $15,000 annually. I recommend starting with 8 RIs to maintain some flexibility for growth."
4. Architectural Optimization
Design-level changes for long-term savings.
PaaS vs. IaaS Migration
- Move from VMs to App Services, Azure SQL, Cosmos DB
- Reduce management overhead
- Often more cost-effective at scale
- Leverage serverless where applicable
Example: Migrating SQL Server VM to Azure SQL Database Managed Instance
- Eliminates OS management
- Built-in high availability
- Automatic backups
- 30-40% cost reduction in many scenarios
Serverless Adoption
- Azure Functions for event-driven workloads
- Pay only for execution time
- Automatic scaling
- Ideal for scheduled jobs, APIs with variable traffic
Storage Optimization
- Use appropriate storage types (Blob vs. File vs. Disk)
- Implement CDN for static content
- Archive old backups (long-term retention)
- Use compression where possible
Network Optimization
- Minimize cross-region data transfer (expensive)
- Use VNet peering vs. VPN tunneling where possible
- Implement Azure Front Door or Application Gateway for traffic optimization
- Review ExpressRoute vs. VPN economics
5. Governance & Policy
Prevent cost overruns through proactive controls.
Azure Policy
- Restrict expensive VM sizes in dev/test
- Require tags on all resources (for cost tracking)
- Block resources in high-cost regions
- Enforce disk SKU standards (no Premium in dev/test)
Budget Alerts
- Set at subscription and resource group levels
- 50%, 80%, 100% thresholds
- Email alerts to MSP and client stakeholders
- Consider action groups for automated responses
Resource Locks
- Prevent accidental deletion of critical resources
- Avoid recreating resources (and losing RI discounts)
- Use "CanNotDelete" locks on production resources
Naming and Tagging Standards
- Mandatory tags: Environment, Owner, CostCenter, Project
- Enables accurate cost allocation
- See Azure Tagging Strategies for detailed guidance
6. Continuous Monitoring
Optimization is ongoing, not one-time.
Weekly Tasks
- Review Cost Analysis for anomalies
- Check Azure Advisor recommendations
- Monitor budget alerts
Monthly Tasks
- Comprehensive cost report to client
- Implement new Advisor recommendations
- Review RI/Savings Plan utilization
- Identify new optimization opportunities
Quarterly Tasks
- Deep architecture review
- Reassess RI/Savings Plan strategy
- Evaluate new Azure services for potential savings
- Review and update budgets
Optimization Techniques by Service
Virtual Machines
Right-Sizing
- Use VM Insights to track CPU, memory, disk I/O
- Downsize if <20% average utilization
- Consider Bs-series (burstable) for low, intermittent usage
Auto-Scaling
- VM Scale Sets for variable load
- Scale in/out based on demand
- Pay only for capacity needed
Spot VMs
- Use for batch processing, dev/test
- Up to 90% savings
- Requires eviction-tolerant workloads
Azure Hybrid Benefit
- Apply existing Windows Server licenses
- Apply SQL Server licenses
- 40-55% savings on applicable VMs
Storage
Tiering
- Hot tier: Frequently accessed data
- Cool tier: Infrequently accessed (30+ days)
- Archive tier: Rarely accessed (180+ days)
Lifecycle Policies
- Automatically move blobs to cheaper tiers based on age
- Delete old snapshots after retention period
- Archive logs after 90 days
Redundancy Optimization
- Use LRS (Locally Redundant Storage) for non-critical data
- GRS/RA-GRS only when geographic redundancy required
- Avoid over-paying for redundancy
Databases
Right-Sizing DTUs/vCores
- Monitor database performance metrics
- Scale down during off-peak hours (if business allows)
- Use elastic pools for multiple small databases
Serverless SQL Database
- Auto-pause during inactivity
- Auto-scale compute based on usage
- Ideal for intermittent workloads
Reserved Capacity
- 1 or 3-year commitments for vCore models
- 30-50% savings vs. pay-as-you-go
Networking
Minimize Data Transfer
- Avoid cross-region traffic
- Use Azure CDN for global content delivery
- Collocate related resources in same region
VPN vs. ExpressRoute
- VPN: $25-30/month (sufficient for many SMB scenarios)
- ExpressRoute: $50-1,000+/month (required for high bandwidth or latency-sensitive apps)
- Right-size for actual requirements
Load Balancer vs. Application Gateway
- Standard Load Balancer: $18/month base
- Application Gateway: $125/month base (but more features)
- Use appropriate service for need
Building an Optimization Practice
Service Packaging
Bronze: Basic Optimization ($500-1,000/month)
- Monthly Azure Advisor review
- Quarterly optimization recommendations
- Budget alert configuration
Silver: Active Optimization ($1,500-2,500/month)
- Everything in Bronze
- Monthly right-sizing implementation
- RI/Savings Plan management
- Lifecycle policy implementation
Gold: Continuous Optimization ($3,000-5,000/month)
- Everything in Silver
- Weekly cost reviews
- Proactive architecture optimization
- Cost allocation and chargeback management
- Custom automation scripts
Client Reporting
Monthly Optimization Report Template
Executive Summary
- Total Azure spend (vs. previous month)
- Savings achieved this month
- Cumulative savings year-to-date
- Top optimization recommendations
Implemented This Month
- RI purchases ($X saved/month)
- VMs right-sized ($X saved/month)
- Storage optimizations ($X saved/month)
Pending Opportunities
- Recommended actions with estimated savings
- Client approval required items
- Scheduled future optimizations
Appendix
- Detailed cost breakdown
- Azure Advisor screenshots
- Utilization charts
Tracking ROI
Document savings to justify your fees and retain clients.
Calculate Total Savings
- Compare current spending to pre-optimization baseline
- Include all optimizations: RIs, right-sizing, deletions
- Track monthly and cumulative savings
Example ROI Presentation
"Since engaging our optimization services 6 months ago:
- Azure spend reduced from $12K/month to $8K/month
- $24,000 saved year-to-date
- Our $15,000 fees delivered $9,000 net savings
- ROI: 160%"
Avoiding Optimization Pitfalls
Pitfall 1: Optimizing Without Testing
- Always test right-sizing in dev/test first
- Monitor performance post-change
- Have rollback plan
Pitfall 2: Over-Optimizing
- Don't sacrifice performance for cost
- Leave headroom for growth and spikes
- Balance cost vs. risk
Pitfall 3: Ignoring Client Business Context
- Understand why resources are sized as they are
- Some "waste" may be intentional (disaster recovery, failover capacity)
- Align optimization with business priorities
Pitfall 4: One-Time Optimization
- Costs creep back without ongoing management
- New resources deployed without optimization
- Continuous process, not project
Pitfall 5: Not Documenting Decisions
- Keep records of what was optimized and why
- Document client approvals
- Track changes for troubleshooting
Advanced Optimization Strategies
Automation with Azure Functions
Create serverless functions to:
- Auto-shutdown idle VMs after hours
- Generate daily cost reports
- Alert on anomalous spending
- Clean up orphaned resources
See Azure Billing APIs & Automation for implementation.
Multi-Cloud Cost Optimization
For clients using AWS or GCP in addition to Azure:
- Unified cost visibility across clouds
- Workload placement optimization (run where cheapest)
- Leverage multi-cloud FinOps tools
FinOps Methodology
Implement Cloud FinOps practices:
- Cross-functional collaboration (IT, Finance, Business)
- Real-time cost visibility
- Culture of cost accountability
- Continuous optimization cycles
Optimization Metrics to Track
Cost Metrics
- Month-over-month cost variance
- Cost per workload/application
- Wasted spend (unused resources)
Efficiency Metrics
- Reserved Instance utilization
- Right-sizing opportunities implemented
- Average VM CPU/memory utilization
Business Metrics
- Cost savings delivered
- Cost avoidance (prevented overspending)
- Optimization ROI
Next Steps
- Implement Azure Tagging Strategies for better cost allocation
- Use Azure Cost Management Tools for monitoring
- Automate with Azure Billing APIs & Automation
- Review Azure Pricing Models for commitment opportunities
Cost optimization is MSP differentiator. Do it well, document results, and clients will see you as indispensable.