ESC
Type to search guides, tutorials, and reference documentation.
Verified by Garnet Grid

Cloud Migration: The 7R Framework

Plan and execute cloud migrations. Covers the 7R strategies (rehost, replatform, refactor, repurchase, retire, retain, relocate), migration waves, dependency mapping, and cutover planning.

Cloud migration isn’t a single decision — it’s hundreds of decisions about hundreds of applications. “Lift and shift everything” is a strategy that guarantees you’ll spend more in the cloud than you did on-premises while getting fewer benefits. “Refactor everything as microservices” is a strategy that guarantees your migration will take three years and cost five times the estimate.

The right approach is systematic: assess each workload, choose the right migration strategy for each, group workloads into waves, and execute with clear cutover plans. This guide covers the 7R framework that structures those decisions.


The 7R Strategies

StrategyDefinitionEffortCost SavingsWhen To Use
RehostLift and shift (move VMs as-is)Low10-20%Quick migration needed, minimal changes
ReplatformLift and reshape (minor cloud optimizations)Medium20-40%Easy wins: managed DB, auto-scaling
RefactorRe-architect for cloud-nativeHigh40-70%Strategic applications, long-term investment
RepurchaseReplace with SaaSVariable30-50%Commodity workloads (email, CRM, HR)
RetireDecommissionNone100%Unused or redundant applications
RetainKeep on-premisesNone0%Regulatory, latency, or dependency constraints
RelocateMove to cloud via VMware/Hyper-VLow5-15%VMware environments, fastest path

Decision Tree

Is the application still needed?
├── No → RETIRE (decommission)

└── Yes → Is there a SaaS replacement?
    ├── Yes, and it's better → REPURCHASE (switch to SaaS)

    └── No → Must it stay on-prem?
        ├── Yes (compliance, latency) → RETAIN (keep on-prem)

        └── No → Is it a strategic application?
            ├── Yes → REFACTOR (re-architect for cloud-native)

            └── No → Are there easy cloud optimizations?
                ├── Yes → REPLATFORM (managed services, auto-scaling)

                └── No → REHOST (lift and shift)

Migration Assessment

Application Portfolio Analysis

def assess_application(app):
    """Score application for migration strategy recommendation."""
    
    scores = {
        "business_value": app["revenue_impact"] + app["user_count_score"],
        "technical_complexity": (
            app["dependencies_count"] * 2 +
            app["custom_integrations"] * 3 +
            app["legacy_framework_penalty"]
        ),
        "cloud_readiness": (
            app["containerized"] * 3 +
            app["stateless"] * 2 +
            app["uses_managed_services"] * 2 -
            app["hardcoded_ips"] * 2 -
            app["shared_database"] * 3
        ),
    }
    
    if scores["business_value"] > 7 and scores["cloud_readiness"] > 5:
        return "REFACTOR"
    elif scores["technical_complexity"] > 8:
        return "REPLATFORM"  # Too complex to refactor, but needs some optimization
    elif scores["business_value"] < 3:
        return "RETIRE or RETAIN"
    else:
        return "REHOST"

Dependency Mapping

Application A (Web Frontend)
    ├── → Application B (API Gateway) [HTTP]
    │       ├── → Application C (Auth Service) [gRPC]
    │       ├── → Application D (Order Service) [gRPC]
    │       │       ├── → PostgreSQL (shared DB) [TCP:5432]
    │       │       └── → Application E (Inventory) [gRPC]
    │       └── → Redis (session cache) [TCP:6379]
    └── → CDN (static assets) [HTTPS]
    
Migration constraint: A, B, C, D must migrate together (tight coupling)
Can migrate separately: E (API boundary), Redis (replace with ElastiCache)

Migration Waves

Wave Planning

WaveApplicationsStrategyDurationRisk
Wave 0Non-production environmentsRehost2-4 weeksLow
Wave 1Independent, low-risk appsRehost/Replatform4-6 weeksLow
Wave 2Medium complexity, some dependenciesReplatform6-8 weeksMedium
Wave 3Core business appsRefactor/Replatform8-12 weeksHigh
Wave 4Legacy with deep dependenciesRehost + gradual refactor12-16 weeksHigh

Cutover Planning

Cutover Checklist Template

## Pre-Cutover (T-7 days)
- [ ] Cloud environment fully provisioned
- [ ] Data replication caught up (lag < 1 minute)
- [ ] DNS TTL reduced to 60 seconds
- [ ] Rollback plan tested
- [ ] All teams confirmed availability for cutover window

## Cutover (T-0)
- [ ] Freeze source database writes
- [ ] Verify final data sync
- [ ] Switch DNS / load balancer to cloud target
- [ ] Smoke test: login, core workflows, payment processing
- [ ] Monitor error rates for 30 minutes
- [ ] Confirm: proceed or rollback?

## Post-Cutover (T+1 to T+7)
- [ ] Monitor performance vs baseline
- [ ] Check data integrity (row counts, checksums)
- [ ] Decommission source (after 30-day soak period)

Anti-Patterns

Anti-PatternProblemFix
”Lift and shift everything”Paying cloud prices for on-prem architectureAssess each workload, right strategy per app
Big bang migrationEverything moves at once, massive riskWaves: start small, learn, accelerate
No dependency mappingMigrating app A breaks app BMap dependencies before migration planning
Skipping retire/retainMigrating apps that should be killedPortfolio assessment: retire 10-30% of apps
No rollback planSingle cutover with no way backMaintain rollback capability for 30 days
Ignoring data gravityMoving compute but forgetting data transfer costsMigrate data first, then compute

Checklist

  • Application portfolio catalogued (all apps with metadata)
  • 7R strategy assigned to each application
  • Dependency map created for all applications
  • Retire candidates identified (target: 10-30% of portfolio)
  • Migration waves defined with sequencing
  • Landing zone provisioned (networking, IAM, logging)
  • Data migration strategy: replication method, lag tolerance
  • Cutover plan per wave: steps, timing, rollback criteria
  • Performance baselines captured (pre-migration)
  • Cost model: projected cloud costs vs. current on-prem
  • Training: operations team trained on cloud tooling
  • Post-migration: 30-day soak period before decommission

:::note[Source] This guide is derived from operational intelligence at Garnet Grid Consulting. For cloud migration consulting, visit garnetgrid.com. :::

Jakub Dimitri Rezayev
Jakub Dimitri Rezayev
Founder & Chief Architect • Garnet Grid Consulting

Jakub holds an M.S. in Customer Intelligence & Analytics and a B.S. in Finance & Computer Science from Pace University. With deep expertise spanning D365 F&O, Azure, Power BI, and AI/ML systems, he architects enterprise solutions that bridge legacy systems and modern technology — and has led multi-million dollar ERP implementations for Fortune 500 supply chains.

View Full Profile →