πŸ›’ Globex E-Commerce β€” Animated Case Study

What happens when you click

1 Β· Business context

Globex sells 40,000 SKUs through a single Java WAR deployed on 40 VMware ESXi hosts. Black Friday 2024 went down for 3 hours β€” $2M per hour lost. The data-centre lease expires in 18 months and the CFO refuses to renew.

Decision

Exit the data centre; do not rewrite the platform before the move.
VMware ESXi cluster Β· 40 hosts Web + Catalog + Checkout (one WAR) Pricing (SOAP) Β· Sessions Β· Email relay Oracle RAC Β· 12 TB

2 Β· BSA dependency discovery

Four BSAs interview 14 application owners and run Cloudamize agents for 30 days. The map shows the monolith calling Oracle, a legacy SOAP pricing service owned by Finance, and an on-prem Exchange relay for order emails β€” none of which were in the original scope.

Click a component in the diagram.
Globexmonolith Oracle RAC SOAP Pricing Exchange relay Payments API

3 Β· Decision: strangler pattern

SteerCo approves a hybrid plan: Rehost the monolith with AWS MGN in wave 2, Replatform Oracle to RDS, and carve out Catalog and Checkout into containers after landing β€” the strangler-fig pattern. Refactoring everything first was estimated at 30 months, 12 past the lease.

Why this works

Risk moves off the lease date immediately; modernisation happens where compute is elastic and experiments are cheap.
Monolith(EC2 via MGN) Catalog svc (EKS) Checkout svc (EKS) RDS Oracle strangle one capability at a time

4 Β· Developers containerise

Developers wrap the WAR in a Docker image, externalise configuration to environment variables, remove local-disk session state in favour of ElastiCache, and build a CI/CD pipeline that pushes to ECR. Connection strings change from 10.20.4.17:1521 to orders.cluster-xyz.rds.amazonaws.com.

Click a stage.
Git Build Test Deploy

5 Β· QA baseline

Before anything moves, QA records a baseline: p95 checkout 420 ms, 1,200 orders/min at peak, 0.4% error rate. Without this, β€œthe cloud is slower” is an opinion; with it, it is a measurable gate.

420 mson-prem p95 310 mscloud p95 300 msgate

6 Β· Cutover weekend

Friday 20:00 traffic stops; Saturday 02:00 the final DMS delta lands; QA verifies row counts (48.2M orders both sides); Saturday 10:00 Route 53 flips the CNAME. Cloud p95 is 310 ms β€” within the 300 ms gate? No: 10 ms over. The SteerCo chair accepts the variance in writing because autoscaling had not yet warmed; by 11:00 it is 280 ms.

πŸ‘₯ Users 🏒 Legacy DC ☁️ AWS ALB CNAME flip Β· TTL 60 s

7 Β· Ops: CSPM after migration

Within 48 hours, Cloud Security Posture Management (AWS Security Hub / Microsoft Defender for Cloud) raises findings that never existed on-prem. Click each.

Click a finding.
πŸ”΄ CRITICAL Β· 3 public S3 buckets 🟠 HIGH Β· SSH open to the world πŸ”΅ MEDIUM Β· Unencrypted RDS snapshots

8 Β· Outcome & lessons

Black Friday 2025: 3Γ— traffic, zero downtime, autoscaling from 6 to 40 pods. Run-cost down 28% after right-sizing and Savings Plans. Lease exited on time.

  • Rehost first, refactor later.
  • Baseline before you move.
  • Security parity is a gate, not an afterthought.
  • Hidden dependencies are found by network flows, not interviews alone.
Before40 fixed hosts3 h outage$2M/h at risk After6β†’40 pods autoscale0 downtimeβˆ’28% run cost

Replay from the backend

AllBSADevelopersQAOps
Context
➜
Discover
➜
Prepare
➜
Cut over
➜
Operate
Click a node to learn what it does.
Chapters from the API appear here.

    Deep dive

    How

    • Discovery β†’ strangler plan β†’ containerise β†’ baseline β†’ cutover β†’ CSPM.

    Why

    • Lease deadline forces sequencing; revenue risk forces measurement.

    When

    • Any monolith with a hard exit date and revenue exposure.

    Pitfalls

    • Lift-and-shifting β€œallow any” firewall rules.
    • Forgetting external allow-lists (payment gateway IPs).
    • No baseline β†’ arguments instead of decisions.

    Key ideas

    Strangler figDependency mapBaselineCSPMHypercare

    🐍 Python data served (GLOBEX chapters)
    Static list sim.GLOBEX β€” fetched via GET api/globex (see output above).