Post-Migration Optimization: What to Do in the First 90 Days
Executing an on-prem to cloud migration is a massive milestone, but cutover day is not the finish line. In most enterprise migrations—especially those following a "lift-and-shift" or re-platforming ap
Published 10/24/2026 · Izan Technologies
Want this built for your team?
Senior engineers, your cloud, your IP.
Executing an on-prem to cloud migration is a massive milestone, but cutover day is not the finish line. In most enterprise migrations—especially those following a "lift-and-shift" or re-platforming approach—systems are intentionally over-provisioned to prevent day-one performance regressions. Storage allocations mimic legacy SAN arrays, compute sizes mirror bare-metal specs, and databases run on default cloud configurations.
Without proactive post migration optimization, the results are predictable: runaway cloud bills by month two, performance bottlenecks that puzzle DBAs, and executive frustration over unmet cloud ROI targets. The first 90 days after migration are critical. This structured, phased roadmap will help you stabilize, tune, and modernize your workloads across AWS, Azure, Databricks, and Snowflake.
Days 1–30: Stabilization, Cost Visibility, and Immediate Waste Elimination
The first 30 days should focus on observability, operational stability, and aggressive elimination of obvious waste. Your goal is not architectural perfection; it is stopping financial bleeding while workloads settle into production.
1. Establish Cost Allocation and Tagging Baselines
You cannot optimize what you cannot measure. On-premises capital expenditures obscure per-query or per-service costs, but cloud environments bill continuously for every gigabyte-second.
- Enforce Strict Tagging: Apply metadata tags across all cloud resources (
Environment,CostCenter,Owner,DataProduct). Use AWS Organizations SCPs or Azure Policy to deny resource creation if mandatory tags are missing. - Configure Anomaly Detection: Deploy AWS Cost Anomaly Detection or Azure Cost Management alerts. Configure webhook alerts to Slack or Teams to catch rogue queries or runaway clusters within hours, rather than waiting for the end-of-month invoice.
2. Identify and Downsize Lift-and-Shift Compute
On-prem hardware sizing assumes multi-year peak capacity. In the cloud, provisioning for peak 24/7 is an anti-pattern.
- Review vCPU and Memory Utilization: Monitor CloudWatch or Azure Monitor metrics for the first 14 days. If your general-purpose instances (e.g., AWS
m5.4xlargeor AzureStandard_D16_v4) consistently hover below 20% CPU and 40% memory utilization, cut the instance size in half immediately. - Audit Non-Production Environments: Implement automated scheduling (via AWS Instance Scheduler or Azure Automation runbooks) to shut down dev and QA instances outside business hours. This alone slashes non-production compute bills by up to 65%.
3. Triage Storage Tiers and Clean Orphaned Assets
Legacy SAN migrations often dump petabytes into premium cloud tiers without lifecycle logic.
- Apply Object Storage Lifecycles: Configure Amazon S3 or Azure Blob lifecycle rules. Transition raw ingestion logs and legacy staging dumps to S3 Standard-Infrequent Access (Standard-IA) or Azure Blob Cool storage after 30 days, and archive to Glacier Flexible/Deep Archive after 90 days.
- Delete Unattached Disks: Identify and purge unattached EBS volumes, detached managed disks, and orphaned elastic IP addresses left behind after cutover testing.
Days 31–60: Workload Tuning and Data Platform Modernization
With basic waste eliminated, the second month shifts toward platform-specific migration optimization. This is where you tune database engines, data warehouses, and modern data stacks like Snowflake and Databricks.
1. Optimize Snowflake Workloads
Snowflake makes it deceptively easy to scale compute up with a single SQL statement, which can lead to runaway credit consumption if left unmanaged.
- Tune Auto-Suspend and Auto-Resume: Decrease warehouse
AUTO_SUSPENDtimeouts. While on-prem data warehouses run continuously, Snowflake warehouses should be set to suspend after 60 seconds (or at most 5 minutes for mixed workloads) of inactivity. - Right-Size Virtual Warehouses: Split monolithic, multi-purpose warehouses. Do not run heavy ELT transformation pipelines on the same warehouse that powers executive BI dashboards. Create isolated warehouses sized strictly for the query payload (e.g., a dedicated
LARGEwarehouse for dbt hourly runs, and anX-SMALLmulti-cluster warehouse for Power BI/Tableau reporting). - Monitor Spilling to Remote Storage: Inspect Snowflake query profiles for bytes spilled to local and remote storage. Spilling indicates memory starvation, requiring either warehouse upsizing or query restructuring.
2. Streamline Databricks and Spark Infrastructure
Migrating on-prem Hadoop/Spark clusters to Databricks often leaves legacy configurations intact that hurt performance and drive up DBU consumption.
- Leverage the Databricks Photon Engine: For SQL and DataFrame workloads, enable the Photon vectorized execution engine to accelerate data processing by 2x to 4x, often lowering total cost by reducing execution time.
- Transition to Spot/Low-Priority Instances for Worker Nodes: Configure cluster autoscaling with on-demand driver nodes and Spot worker nodes. For non-critical pipelines, Spot instances can cut infrastructure costs by up to 70-80%.
- Eliminate Small-File Problems: Run regular
OPTIMIZEandVACUUMcommands on your Delta tables to compact fragmented parquet files and remove stale historical snapshots.
| Workload Dimension | Day 1 (Lift-and-Shift State) | Day 60 (Optimized Target) | Expected Impact |
|---|---|---|---|
| Compute Sizing | Static peak-capacity instances (e.g., 32-core VMs running 24/7) | Dynamic autoscaling with Spot/Burstable instances and auto-shutdown | 35%–55% lower compute spend |
| Cloud Storage | Hot/Standard tiers across all legacy and active data | Automated tiering (Hot → Infrequent Access → Deep Archive) | 40%–60% storage cost reduction |
| Snowflake Clusters | Single monolithic warehouse; AUTO_SUSPEND = 600s | Segmented workloads (BI vs. ELT); AUTO_SUSPEND = 60s | 30%–50% reduction in credit burn |
| Databricks Workloads | Static on-demand Spark clusters running default configs | Photon-enabled autoscaling clusters utilizing Spot instances | 2x–3x faster runtimes; 40% lower DBU spend |
| Network & Egress | Data cross-region traffic and public endpoints | PrivateLink / VPC Endpoints with localized regional routing | Eliminated latency; reduced egress fees |
Days 61–90: Automation, Long-Term Commitments, and AI/ML Readiness
The final phase of the initial 90-day cycle transitions your organization from reactive cost tuning to sustained operational excellence, automation, and preparing the cloud foundation for advanced analytics and AI.
Post-Migration 90-Day Trajectory:
[ Days 1–30 ] ──> [ Days 31–60 ] ──> [ Days 61–90 ]
Triage & Baselines Tuning & Profiling Automation & Advanced AI
• Tagging enforcement • Snowflake warehouse isolation • Savings Plans / Reservations
• Idle asset deletion • Databricks Photon & Spot nodes • CI/CD & DataOps deployment
• Storage tiering • Query profile optimization • Lakehouse & ML enablement
1. Purchase Commitments (Savings Plans and Reservations)
Never purchase AWS Savings Plans, Reserved Instances (RIs), or Snowflake Capacity upfront on Day 1 of your migration. By Day 60, you have 60 days of real, production-grade usage data.
- Calculate your minimum baseline consumption across AWS or Azure compute.
- Commit to 1-year or 3-year Compute Savings Plans or Reserved Instances to secure up to 40%–72% discounts over on-demand rates without risking over-committing to unoptimized resources.
2. Embed DataOps and Automated CI/CD
Shift your team away from manual administrative tasks. Infrastructure as Code (IaC) using Terraform, paired with continuous data testing frameworks (like dbt or Great Expectations), ensures performance and cost limits are enforced in deployment pipelines before bad code reaches production.
3. Unlock Advanced AI and ML Workloads
The true payoff of an on-prem to cloud migration is not just cheaper infrastructure—it is unlocking enterprise AI. Now that your data lakehouse (on Snowflake, Databricks, AWS, or Azure) is stabilized and clean:
- Build unified feature stores directly on your cloud lakehouse architecture.
- Implement retrieval-augmented generation (RAG) pipelines and fine-tuned LLM microservices against clean corporate data without having to manage raw GPU hardware on-premises.
Avoiding the "Day 91 Drift"
Post migration optimization is not a one-and-done project. If governance is abandoned after three months, technical debt and cost drift will quietly return. To maintain velocity:
- Establish a FinOps Cadence: Hold bi-weekly reviews pairing engineering leads with financial stakeholders to review unit economics (e.g., "cost per user query" or "cost per ETL batch").
- Implement Guardrails, Not Bottlenecks: Use automated guardrails that notify teams when queries exceed specific credit thresholds rather than locking developers out of resources.
- Audit Data Ingestion Continuously: Keep track of payload expansions from third-party APIs or transactional databases to avoid surprise downstream pipeline scale-outs.
How Izan Technologies Helps
Achieving rapid ROI after an on-prem to cloud migration requires deep, specialized engineering knowledge across cloud platforms and modern data stacks. Izan Technologies is a specialized consultancy that builds custom AI, machine learning, and data engineering solutions on AWS, Azure, Databricks, and Snowflake.
Whether you need to untangle runaway Snowflake credit spend, modernize fragmented Spark pipelines, or turn newly migrated cloud data into revenue-generating generative AI applications, Izan Technologies designs tailored solutions to your exact architecture. Crucially, we operate under a pure services engagement model: our clients own 100% of the IP, code, and infrastructure we deliver, ensuring no vendor lock-in and complete long-term control.
Accelerate your cloud performance and operational excellence: Try our Smart AI DataStudio or talk to an expert today to start optimizing your cloud data ecosystem.
Want this built for your team?
Senior engineers, your cloud, your IP.