56 lines
1.6 KiB
Text
56 lines
1.6 KiB
Text
digraph G {
|
|
node [ shape=box ]
|
|
# rankdir=BT;
|
|
|
|
label="CDN flows"
|
|
|
|
subgraph cluster_user {
|
|
label="Outside / in the Internet"
|
|
user [ label="User\n(internal/customer)" ]
|
|
client [ label="Web site User\n" ]
|
|
}
|
|
|
|
subgraph cluster_origin {
|
|
label="Origin DC"
|
|
origin [ label="Origin Node\nServing example.com" ]
|
|
}
|
|
client->origin [ label="non-CDN access" style=dashed ]
|
|
|
|
subgraph cluster_homedc {
|
|
label="HomeDC"
|
|
|
|
kubemaster [ label="Kubernetes master nodes" ]
|
|
kubeworker [ label="Kubernetes worker nodes" ]
|
|
|
|
subgraph cluster_kubernetes {
|
|
label="Kubernetes Workload"
|
|
|
|
api [ label="Tenant/OpsAPI" ]
|
|
ui [ label="User Interface\nPost MVP" ]
|
|
db [ label="Database" ]
|
|
}
|
|
}
|
|
kubemaster->kubeworker [ label="Controls" ]
|
|
api->kubeworker [ label="Runs on" ]
|
|
|
|
subgraph cluster_pops {
|
|
label="PoP"
|
|
|
|
servicenode [ label="Service Node" ]
|
|
edgenode [ label="Edge nodes" ]
|
|
delivery [ label="Delivery API" ]
|
|
}
|
|
delivery->servicenode [ label="Runs on" ]
|
|
|
|
user->ui [ label="A1. Create configuration" ]
|
|
user->api [ label="A1. Create configuration" style=dashed ]
|
|
ui->api [ label="A2. Create configuration" ]
|
|
api->db [ label="A3. Store data" ]
|
|
kubeworker->delivery [ label="A4. Trigger update" ]
|
|
delivery->edgenode [ label="A5. Reconfigure" ]
|
|
|
|
client->edgenode [ label="B1. Request data for example.com" ]
|
|
edgenode->origin [ label="B2. Request data\n(If not cached)" ]
|
|
edgenode->client [ label="B3. Return data for example.com" weight=0.2 ]
|
|
|
|
}
|