T Techclick ← All lessons
Cloud · On-prem → Azure / AWS · Lesson 1 of 8

6 Rs: one decision per app, not the estate

The PM wants the whole DC in the cloud this weekend. That is not a strategy. AWS names six paths — rehost, replatform, repurchase, refactor, retire, retain. Azure CAF is the same idea with different nouns. You choose per application. Wave-1 here is only pay-api.

Updated 2026-08-18·18 min read·L2 primary·Quiz at end

After this page you can

The ticket

Leadership booked a weekend. Junior started imaging every VM in 10.20.30.0/24. pay-api on 10.20.30.40 is the only thing the business named. dc01 is not an app. You stop the boil-the-ocean plan before the first replica starts.

Quick interview answer

AWS Prescriptive Guidance 6 Rs: rehost (lift), replatform (managed service under the same app), repurchase (SaaS), refactor (rewrite), retire, retain. Azure CAF uses rehost / refactor / rearchitect / rebuild / replace — same decision, different labels. One R per app, scored against Well-Architected (cost, security, reliability, ops, performance). Rehosting pay-api first, then refactoring, is valid. “Lift everything this weekend” is not an R.

Hero · six doors
Six migration paths for pay-api, only one chosen for wave-1
Wave-1 is one door. The estate is not a door.
Lab data · dummy only

On-prem DC dc01 10.20.30.10 · FortiGate fgt-hq 203.0.113.10 · same Azure landing as the Azure series and same AWS landing as the AWS series. Wave-1 app pay-api today on VM 10.20.30.40.

Mental model

RMeaningThis lab · pay-api
RehostLift the VM as-is (Azure Migrate / AWS MGN)Wave-1 candidate — keep domain join over VPN
ReplatformSame app, swap a piece (RDS / Azure SQL)Later — DB is not wave-1
RepurchaseDrop and shop SaaSNo — payments is custom
RefactorRewrite for PaaS / containersWave-2+ after it survives rehost
RetireTurn it offNot pay-api. Maybe that 2008 print box
RetainLeave on-prem on purposedc01 10.20.30.10 stays until identity is hybrid
Wave-1 is one box
dc01 .10retain pay-api .40rehost now file / printretire or retain refactor laternot this weekend

Azure Well-Architected does not pick the R for you. It scores the R you picked.

https://portal.azure.com
Training mock · not live
HomeManagement groupsVirtual networksAzure MigrateMicrosoft Entra
Azure Migrate → Assessments → wave-1

Assessment pay-api

pay-api · VM 10.20.30.40
Rehost (IaaS) — refactor deferred
spoke 10.41.0.0/16 · sub-spoke-app
app VPC 10.51.0.0/16 · MGN
dc01, print, file, “the rest of the DC”
Azure Migrate assessment is a scoring tool, not a weekend plan. Training mock.

How to choose

IfPickTrap
OS is supportable, app is a black boxRehost wave-1Rewriting during the freeze window
You only want a managed DBReplatform after rehost soaksMoving VM + DB + DNS the same night
Vendor has a SaaS SKU you already boughtRepurchaseFake “SaaS” that is still your VM
OS is rotting or you need horizontal scaleRefactor / rebuild — scheduled, not panicCalling it rehost
Nobody can name an ownerRetire or retainMigrating orphans “in case”

Runbook

  1. Side A — inventory one app

    Name, owner, OS, listeners, cert CN, who authenticates, who it calls. For pay-api: VM 10.20.30.40, HTTPS, pay-api.techclick-lab.in, TECHCLICK\svc-pay, on-prem DB stays.

  2. Side B — write the R

    Rehost to Azure spoke 10.41.0.0/16 or AWS app VPC 10.51.0.0/16. Refactor is a later change request. Retain dc01.

  3. Side C — freeze the wave

    Wave-1 = pay-api only. Publish that sentence. Do not add “and the jump box, and WSUS, and the old HR VM.”

wave-1 card · dummy
app:        pay-api
on-prem:    10.20.30.40
r_now:      rehost
r_later:    refactor (PaaS) after soak
retain:     dc01 10.20.30.10
not_wave_1: anything else on 10.20.30.0/24

Four failures

1 · One R for the estate

“We are a rehost shop.” That sentence hides retain and retire. It also hides the app that must be rebuilt.

2 · Refactor during cutover

New runtime + new IP + new DNS + new IdP. You cannot tell which change killed payments.

3 · Migrating leftovers

Domain controllers, print queues, and “that box under the desk” are not wave-1. Retain or retire.

4 · Azure vs AWS as the R

The cloud brand is a landing, not a strategy. You can rehost to either. The R is still rehost.

How to prove it

Close only when

1) Every in-scope name has one written R. 2) Wave-1 is only pay-api. 3) dc01 is retain. 4) Nobody has a weekend “lift the DC” ticket still open.

Traps

PhraseTranslation
Lift and shift everythingNo R was chosen
Cloud-native firstOften an unfunded rewrite
We will decide after it is in AzureYou already chose rehost — write it down

Knowledge check

Judgment items. One best answer. Reasons send you back to the matching section.

Q1

How many apps get a 6 R decision?

Correct: b. Per app.
Q2

Wave-1 in this lab is…

Correct: c. Do not boil the ocean.
Q3

pay-api rehost now and refactor later is…

Correct: b. Two-step is allowed.
Q4

dc01 10.20.30.10 in wave-1?

Correct: b. Identity first, later lesson.
Q5

Azure CAF rehost vs AWS rehost is…

Correct: b. Brand is not the R.
Q6

“Lift the DC this weekend” fails because…

Correct: a. Ticket.

On-prem to cloud migration class series: 6 Rs · Landing zone first · Identity first · VPN / ER / DX · Lift vs rebuild · Map controls · Cutover + rollback · Hybrid interview

Sources

Related: Azure landing zone · AWS Org / OU.