Software Migration Patterns

 

1. Strangler Fig Pattern

Named after the Strangler Fig tree that slowly grows around and replaces a host tree.

Idea

Gradually replace parts of a legacy application with new services, piece by piece, while the old system continues running.

Instead of rewriting everything at once:

  • New functionality → built as new services
  • Existing modules → slowly migrated
  • Traffic → incrementally routed to new components

Eventually the legacy system “dies naturally.”


Architecture Flow

Client
   |
API Gateway / Proxy
   |
 -------------------------
 |                       |
Legacy Monolith     New Microservices

The gateway decides:

  • which requests go to old system
  • which go to new services

Example

Suppose Oracle CPQ had:

  • pricing
  • approvals
  • catalog
  • reporting

You might:

  1. Keep monolith running
  2. Extract Reporting Service first
  3. Route reporting APIs to new service
  4. Later extract Pricing
  5. Continue until monolith disappears

Advantages

  • Lower risk
  • Incremental migration
  • Easier rollback
  • Business continuity
  • Allows parallel teams

Disadvantages

  • Temporary complexity
  • Dual maintenance
  • Requires routing layer/API gateway
  • Data synchronization can be hard

Best Used When

  • Large monolith
  • Mission-critical systems
  • Long-lived enterprise products
  • Need zero/minimal downtime

2. Lift and Shift Pattern

Also called:

  • Rehosting
  • “Move as-is”

Idea

Move the application to cloud/infrastructure with minimal or no code changes.

Example:

  • On-prem VM → AWS EC2
  • Physical server → Kubernetes VM
  • Datacenter → OCI/Azure/AWS

Application architecture remains mostly unchanged.


Example

A Java monolith running on:

  • WebLogic
  • Oracle DB
  • on-prem servers

is simply moved to:

  • OCI Compute
  • cloud load balancer
  • managed DB

without redesigning application logic.


Advantages

  • Fast migration
  • Low initial effort
  • Minimal code changes
  • Quick cloud adoption

Disadvantages

  • Does not modernize architecture
  • Existing problems remain
  • Limited cloud benefits
  • Higher operational cost long term

Best Used When

  • Tight deadlines
  • Datacenter exit
  • Cloud-first mandates
  • Legacy apps difficult to rewrite

3. Big Bang Migration Pattern

Idea

Entire system is replaced in one large release/cutover.

Old system is turned off.
New system becomes live immediately.


Example

Friday:
Legacy ERP active

Weekend:
Data migration
System cutover

Monday:
New ERP live
Old system retired

Advantages

  • Clean architecture
  • No dual-system complexity
  • Faster final state achievement

Disadvantages

  • Extremely high risk
  • Difficult rollback
  • Requires huge testing effort
  • Business disruption possible
  • Long freeze periods

Best Used When

  • Small systems
  • Simple applications
  • Startup environments
  • When coexistence is impossible

Comparison Table

AspectStrangler FigLift & ShiftBig Bang
Migration StyleIncrementalInfrastructure moveFull replacement
RiskLow-MediumLowVery High
Code ChangesGradualMinimalMassive
Time to CloudMediumFastSlow until cutover
Business DisruptionMinimalMinimalHigh
ComplexityMedium-HighLowHigh
Rollback EaseEasierEasyDifficult
Cloud OptimizationHigh eventuallyLowHigh
Best ForEnterprise modernizationQuick cloud migrationSmall/simple systems

Popular Posts