From 3f4565d002cc566c58d4297f589da174b9fe55ac Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 3 Aug 2021 09:44:16 +0200 Subject: [PATCH] cdn flows --- cdn-flow-traffic.dot | 38 +++++++++++++++++---------- cdn-maintenance.dot | 61 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 14 deletions(-) create mode 100644 cdn-maintenance.dot diff --git a/cdn-flow-traffic.dot b/cdn-flow-traffic.dot index 7e716e2..1d4fe5f 100644 --- a/cdn-flow-traffic.dot +++ b/cdn-flow-traffic.dot @@ -6,15 +6,16 @@ digraph G { subgraph cluster_user { label="Outside / in the Internet" - user [ label="User\n(internal/customer)" ] - client [ label="Web site User\n" ] + user [ label="User\n(internal/customer)" color=pink ] + client [ label="Web site User\n" color=blue ] + operator [ label="CDN Operator\n" color=green ] } subgraph cluster_origin { label="Origin DC" - origin [ label="Origin Node\nServing example.com" ] + origin [ label="Origin Node\nServing example.com" ] } - client->origin [ label="non-CDN access" style=dashed ] + client->origin [ label="non-CDN access" style=dashed color=blue ] subgraph cluster_homedc { label="HomeDC" @@ -25,9 +26,11 @@ digraph G { subgraph cluster_kubernetes { label="Kubernetes Workload" - api [ label="Tenant/OpsAPI" ] + api [ label="Tenant/OpsAPS" ] ui [ label="User Interface\nPost MVP" ] db [ label="Database" ] + promhome [ label="Prometheus" ] + grafana [ label="Grafana" ] } } kubemaster->kubeworker [ label="Controls" ] @@ -39,18 +42,25 @@ digraph G { servicenode [ label="Service Node" ] edgenode [ label="Edge nodes" ] delivery [ label="Delivery API" ] + prompop [ label="Prometheus" ] } 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" ] + 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 ] - 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 ] + 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" ] } diff --git a/cdn-maintenance.dot b/cdn-maintenance.dot new file mode 100644 index 0000000..6453453 --- /dev/null +++ b/cdn-maintenance.dot @@ -0,0 +1,61 @@ +digraph G { + node [ shape=box ] + rankdir=LR; + + label="CDN maintenance" + + subgraph cluster_outsideuser { + label="Customer/Users" + customer [ label="Customer" ] + users [ label="Users" ] + } + + subgraph cluster_user { + label="Staff" + devops [ label="DevOps" ] + developer [ label="Developer" ] + networking [ label="Network Engineer" ] + support [ label="Support Staff" ] + } + {customer,users}->support [ color=red ] + + subgraph cluster_origin { + label="Origin DC" + origin [ label="Origin Node\nServing example.com" ] + } + customer->origin [ color=red ] + + subgraph cluster_homedc { + label="HomeDC" + + kubemaster [ label="Kubernetes master nodes" ] + kubeworker [ label="Kubernetes worker nodes" ] + + subgraph cluster_kubernetes { + label="Kubernetes Workload" + + api [ label="Tenant/OpsAPS" ] + ui [ label="User Interface\nPost MVP" ] + db [ label="Database" ] + promhome [ label="Prometheus" ] + grafana [ label="Grafana" ] + } + } + developer->{kubemaster,kubeworker,api} [ color=green ] + devops->{kubemaster,kubeworker,api} [ color=blue ] + devops->{db,promhome,grafana} [ color=blue ] + support->grafana [ color=pink ] + + subgraph cluster_pops { + label="PoP" + + servicenode [ label="Service Node" ] + edgenode [ label="Edge nodes" ] + delivery [ label="Delivery API" ] + prompop [ label="Prometheus" ] + } + devops->{delivery, servicenode} [ color=blue ] + developer->{delivery, servicenode} [ color=green ] + devops->{edgenode,prompop} [ color=blue ] + +}