Skip to content

Migrating to the cloud

Technique · Chapter 14

Not every legacy app suits every cloud service, but a migration path usually exists. Benefits:

  • Lower cost, plus greater availability and scalability.
  • The provider owns hardware and infrastructure; depending on the model (IaaS, PaaS, FaaS) also the OS and other services.
  • Reduced security exposure — the provider can handle OS updates and security patches for apps that were stuck on old hardware/software.

See Deploying to the cloud and Cloud-native applications.

The migration path varies by organization and by application. The 6 R’s name six strategies:

StrategyWhat it meansWhen to use
Remove (retire)Simply shut the app downIt’s no longer needed; a broad migration is a good moment to audit and cull unused apps.
RetainLeave it in its current environmentNo business case to move it (e.g. migration cost too high), or it’s kept on-premises as part of a hybrid cloud.
ReplatformRun it on cloud IaaS via emulators / a virtual machineCan’t migrate natively but you don’t want to just retain it; lets you reach a newer platform/OS and its features. Tooling exists to assist.
Rehost”Lift and shift” — copy app and data from physical/virtual servers to IaaS unchangedQuick, low-risk, easy; often the first step, later refactored to optimize for the cloud.
RepurchaseBuy a newer product (usually SaaS) and switch to itProvider hosts everything; you only configure the software.
Refactor (re-architect)Modify the app, possibly its architecture, for cloud-native featuresYields better availability, scalability, performance, and cost savings — but can be involved, slower, and costlier to execute.
  • Software Architect’s Handbook (Packt, 2018), Ch.14 “Migrating to the cloud”, pp. 1055-1062.