Skip to content
Weave templates

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.

Template previewWeave
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" }
  ]
}