96 lines
2.9 KiB
Plaintext
96 lines
2.9 KiB
Plaintext
digraph Deployment {
|
|
rankdir=TB;
|
|
compound=true;
|
|
fontname="Helvetica";
|
|
node [fontname="Helvetica", fontsize=10];
|
|
edge [fontname="Helvetica", fontsize=9];
|
|
|
|
labelloc="t";
|
|
label="Deployment Architecture";
|
|
fontsize=14;
|
|
|
|
node [shape=box, style="rounded,filled"];
|
|
|
|
// Local Development
|
|
subgraph cluster_local {
|
|
label="Local Development";
|
|
style=filled;
|
|
fillcolor="#E3F2FD";
|
|
|
|
subgraph cluster_kind {
|
|
label="Kind Cluster";
|
|
style=filled;
|
|
fillcolor="#BBDEFB";
|
|
|
|
tilt [label="Tilt\n(Live Reload)", shape=component, fillcolor="#90CAF9"];
|
|
k8s_local [label="K8s Pods\n(via Kustomize)", fillcolor="#64B5F6"];
|
|
}
|
|
|
|
compose [label="Docker Compose\n(Alternative)", fillcolor="#90CAF9", style="rounded,dashed"];
|
|
}
|
|
|
|
// AWS Staging/Demo
|
|
subgraph cluster_aws {
|
|
label="AWS (sysmonstm.mcrn.ar)";
|
|
style=filled;
|
|
fillcolor="#E8F5E9";
|
|
|
|
subgraph cluster_ec2 {
|
|
label="EC2 t2.small";
|
|
style=filled;
|
|
fillcolor="#C8E6C9";
|
|
|
|
compose_ec2 [label="Docker Compose\n(All Services)", fillcolor="#A5D6A7"];
|
|
nginx [label="Nginx\n(SSL Termination)", fillcolor="#81C784"];
|
|
}
|
|
|
|
subgraph cluster_lambda {
|
|
label="Lambda (Data Processing)";
|
|
style=filled;
|
|
fillcolor="#DCEDC8";
|
|
|
|
lambda_agg [label="Aggregator\nLambda", fillcolor="#AED581"];
|
|
lambda_compact [label="Compactor\nLambda", fillcolor="#9CCC65"];
|
|
}
|
|
|
|
sqs [label="SQS\n(Buffer)", shape=hexagon, fillcolor="#FFE082"];
|
|
s3 [label="S3\n(Backup)", shape=cylinder, fillcolor="#FFE082"];
|
|
}
|
|
|
|
// CI/CD
|
|
subgraph cluster_cicd {
|
|
label="CI/CD";
|
|
style=filled;
|
|
fillcolor="#F3E5F5";
|
|
|
|
woodpecker [label="Woodpecker CI", fillcolor="#CE93D8"];
|
|
registry [label="Container\nRegistry", shape=cylinder, fillcolor="#BA68C8"];
|
|
}
|
|
|
|
// Collectors (External)
|
|
subgraph cluster_collectors {
|
|
label="Monitored Machines";
|
|
style=dashed;
|
|
color=gray;
|
|
|
|
coll1 [label="Collector\n(Machine 1)", fillcolor="#FFCCBC"];
|
|
coll2 [label="Collector\n(Machine 2)", fillcolor="#FFCCBC"];
|
|
coll3 [label="Collector\n(Machine N)", fillcolor="#FFCCBC"];
|
|
}
|
|
|
|
// Connections
|
|
tilt -> k8s_local [style=invis];
|
|
woodpecker -> registry [label="Push"];
|
|
registry -> compose_ec2 [label="Pull"];
|
|
registry -> k8s_local [label="Pull", style=dashed];
|
|
|
|
nginx -> compose_ec2 [label="Proxy"];
|
|
compose_ec2 -> sqs [label="Events"];
|
|
sqs -> lambda_agg [label="Trigger"];
|
|
lambda_compact -> s3 [label="Archive"];
|
|
|
|
coll1 -> compose_ec2 [label="gRPC", lhead=cluster_ec2];
|
|
coll2 -> compose_ec2 [label="gRPC", lhead=cluster_ec2];
|
|
coll3 -> compose_ec2 [label="gRPC", lhead=cluster_ec2];
|
|
}
|