On-Prem to Cloud Migration
A data centre and an AWS landing zone joined by Direct Connect with a VPN backup, plus the three migration tools that actually move the estate — MGN for VMs, DMS for Oracle, DataSync for the NAS.
Rendering…
Make it your own.
{
"nodes": [
{ "id": "dc", "type": "pool", "label": "On-premises — DC Frankfurt", "x": 20, "y": 40, "width": 520, "height": 580, "fill": "rgba(254,243,199,0.34)", "stroke": "#b45309" },
{ "id": "link", "type": "container", "label": "Hybrid link", "x": 580, "y": 200, "width": 220, "height": 280, "fill": "rgba(237,233,254,0.26)", "stroke": "#6d28d9" },
{ "id": "lz", "type": "pool", "label": "AWS landing zone — eu-central-1", "x": 840, "y": 40, "width": 560, "height": 580, "fill": "rgba(255,247,237,0.34)", "stroke": "#c2410c" },
{ "id": "vmw", "type": "server-rack", "label": "VMware — 120 VMs", "x": 60, "y": 100, "width": 190, "height": 104, "fill": "#fef3c7", "stroke": "#b45309", "bold": true },
{ "id": "ora", "type": "cylinder", "label": "Oracle 19c — ERP", "x": 280, "y": 117, "width": 170, "height": 70, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "nas", "type": "file-stack", "label": "NetApp NAS — 40 TB", "x": 60, "y": 250, "width": 180, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "ad", "type": "user-group", "label": "Active Directory", "x": 280, "y": 250, "width": 170, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "tape", "type": "backup-disk", "label": "Tape backup — LTO", "x": 60, "y": 400, "width": 170, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "f5", "type": "load-balancer","label": "F5 load balancer", "x": 280, "y": 400, "width": 170, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "dx", "type": "ethernet-port", "label": "Direct Connect 10 Gbps", "x": 605, "y": 250, "width": 170, "height": 104, "fill": "#ede9fe", "stroke": "#6d28d9", "bold": true },
{ "id": "vpn", "type": "vpn-tunnel", "label": "Site-to-site VPN (backup)", "x": 605, "y": 370, "width": 170, "height": 104, "fill": "#ede9fe", "stroke": "#6d28d9" },
{ "id": "vpc", "type": "aws-vpc", "label": "VPC 10.20.0.0/16", "x": 880, "y": 100, "width": 140, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "ec2", "type": "aws-ec2", "label": "EC2 — rehosted", "x": 1060, "y": 100, "width": 140, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "rds", "type": "aws-rds", "label": "Aurora PostgreSQL", "x": 1240, "y": 100, "width": 140, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "fsx", "type": "bucket", "label": "FSx + S3 file shares","x": 880, "y": 250, "width": 170, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "mad", "type": "user-group", "label": "AWS Managed AD", "x": 1080, "y": 250, "width": 160, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "alb", "type": "aws-elb", "label": "ALB", "x": 1260, "y": 248, "width": 120, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "iam", "type": "aws-iam", "label": "IAM + SCPs", "x": 880, "y": 400, "width": 140, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "bkp", "type": "backup-disk", "label": "AWS Backup vault", "x": 1060, "y": 400, "width": 160, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "cw", "type": "line-chart", "label": "CloudWatch + Config","x": 1250, "y": 400, "width": 140, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "mgn", "type": "conveyor", "label": "AWS MGN — block replication", "x": 60, "y": 680, "width": 200, "height": 104, "fill": "#dcfce7", "stroke": "#15803d" },
{ "id": "dms", "type": "db-cluster", "label": "DMS — Oracle to Aurora", "x": 300, "y": 680, "width": 200, "height": 104, "fill": "#dcfce7", "stroke": "#15803d" },
{ "id": "sync", "type": "conveyor", "label": "DataSync — NAS to S3", "x": 540, "y": 680, "width": 200, "height": 104, "fill": "#dcfce7", "stroke": "#15803d" },
{ "id": "wave", "type": "note", "label": "6 waves over 14 weeks — pilot, low-risk, ERP last", "x": 790, "y": 686, "width": 240, "height": 90, "fill": "#fef9c3", "stroke": "#ca8a04" }
],
"edges": [
{ "id": "g1", "source": "vmw", "target": "mgn", "label": "agent replication", "thickness": 2 },
{ "id": "g2", "source": "mgn", "target": "ec2", "label": "cutover", "thickness": 2 },
{ "id": "g3", "source": "ora", "target": "dms", "label": "CDC" },
{ "id": "g4", "source": "dms", "target": "rds", "label": "schema convert" },
{ "id": "g5", "source": "nas", "target": "sync" },
{ "id": "g6", "source": "sync", "target": "fsx" },
{ "id": "g7", "source": "vmw", "target": "dx", "thickness": 2 },
{ "id": "g8", "source": "ad", "target": "dx" },
{ "id": "g9", "source": "dx", "target": "vpc", "label": "private VIF", "thickness": 3 },
{ "id": "g10", "source": "dx", "target": "mad", "label": "AD trust" },
{ "id": "g11", "source": "vpn", "target": "vpc", "label": "failover path", "style": "dashed" },
{ "id": "g12", "source": "vpc", "target": "ec2", "label": "private subnets", "style": "dashed" },
{ "id": "g13", "source": "iam", "target": "ec2", "label": "instance roles", "style": "dashed" },
{ "id": "g14", "source": "ec2", "target": "alb" },
{ "id": "g15", "source": "f5", "target": "alb", "label": "replatform", "style": "dashed" },
{ "id": "g16", "source": "ec2", "target": "bkp" },
{ "id": "g17", "source": "rds", "target": "bkp" },
{ "id": "g18", "source": "tape", "target": "bkp", "label": "retire tape", "style": "dashed" },
{ "id": "g19", "source": "ec2", "target": "cw", "style": "dashed" },
{ "id": "g20", "source": "rds", "target": "cw", "style": "dashed" }
]
}