2021-07-28 13:21:21 +00:00
|
|
|
digraph G {
|
|
|
|
node [ shape=box ]
|
2021-08-03 07:15:12 +00:00
|
|
|
# rankdir=BT;
|
2021-07-28 13:21:21 +00:00
|
|
|
|
2021-08-03 07:15:12 +00:00
|
|
|
label="CDN flows"
|
|
|
|
|
|
|
|
subgraph cluster_user {
|
|
|
|
label="Outside / in the Internet"
|
2021-08-03 07:44:16 +00:00
|
|
|
user [ label="User\n(internal/customer)" color=pink ]
|
|
|
|
client [ label="Web site User\n" color=blue ]
|
|
|
|
operator [ label="CDN Operator\n" color=green ]
|
2021-08-03 07:15:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
subgraph cluster_origin {
|
|
|
|
label="Origin DC"
|
2021-08-03 07:44:16 +00:00
|
|
|
origin [ label="Origin Node\nServing example.com" ]
|
2021-08-03 07:15:12 +00:00
|
|
|
}
|
2021-08-03 07:44:16 +00:00
|
|
|
client->origin [ label="non-CDN access" style=dashed color=blue ]
|
2021-07-28 13:21:21 +00:00
|
|
|
|
|
|
|
subgraph cluster_homedc {
|
|
|
|
label="HomeDC"
|
|
|
|
|
|
|
|
kubemaster [ label="Kubernetes master nodes" ]
|
|
|
|
kubeworker [ label="Kubernetes worker nodes" ]
|
|
|
|
|
|
|
|
subgraph cluster_kubernetes {
|
|
|
|
label="Kubernetes Workload"
|
|
|
|
|
2021-08-03 07:44:16 +00:00
|
|
|
api [ label="Tenant/OpsAPS" ]
|
2021-08-03 07:15:12 +00:00
|
|
|
ui [ label="User Interface\nPost MVP" ]
|
|
|
|
db [ label="Database" ]
|
2021-08-03 07:44:16 +00:00
|
|
|
promhome [ label="Prometheus" ]
|
|
|
|
grafana [ label="Grafana" ]
|
2021-07-28 13:21:21 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
kubemaster->kubeworker [ label="Controls" ]
|
|
|
|
api->kubeworker [ label="Runs on" ]
|
|
|
|
|
|
|
|
subgraph cluster_pops {
|
|
|
|
label="PoP"
|
|
|
|
|
|
|
|
servicenode [ label="Service Node" ]
|
|
|
|
edgenode [ label="Edge nodes" ]
|
2021-08-03 07:15:12 +00:00
|
|
|
delivery [ label="Delivery API" ]
|
2021-08-03 07:44:16 +00:00
|
|
|
prompop [ label="Prometheus" ]
|
2021-08-03 07:15:12 +00:00
|
|
|
}
|
|
|
|
delivery->servicenode [ label="Runs on" ]
|
|
|
|
|
2021-08-03 07:44:16 +00:00
|
|
|
user->ui [ label="A1. Create configuration" color=pink ]
|
|
|
|
user->api [ label="A1. Create configuration" style=dashed color=pink ]
|
|
|
|
ui->api [ label="A2. Create configuration" color=pink ]
|
|
|
|
api->db [ label="A3. Store data" color=pink ]
|
|
|
|
kubeworker->delivery [ label="A4. Trigger update" color=pink ]
|
|
|
|
delivery->edgenode [ label="A5. Reconfigure" color=pink ]
|
2021-08-03 07:15:12 +00:00
|
|
|
|
2021-08-03 07:44:16 +00:00
|
|
|
client->edgenode [ label="B1. Request data for example.com" color=blue ]
|
|
|
|
edgenode->origin [ label="B2. Request data\n(If not cached)" color=blue]
|
|
|
|
edgenode->client [ label="B3. Return data for example.com" weight=0.2 color=blue ]
|
|
|
|
|
|
|
|
promhome->prompop [ label="C1. Pulls metrics" color=green ]
|
|
|
|
operator->grafana [ label="C2. View monitoring data" color=green ]
|
|
|
|
grafana->promhome [ label="C3. Gets data" color=green ]
|
|
|
|
prompop->{edgenode,servicenode} [ label="Monitors" ]
|
|
|
|
promhome->{api,db} [ label="Monitors" ]
|
2021-07-28 13:21:21 +00:00
|
|
|
|
|
|
|
}
|