- Replace ASCII art with Mermaid in architecture-design-company-inc.md - Rewrite architecture-hld.md with 3 Mermaid diagrams (infra, CI/CD, security) - Remove draw.io/Lucidchart references - Update verification-log.md with current passing state Co-authored-by: Cursor <cursoragent@cursor.com>
89 lines
2.4 KiB
Markdown
89 lines
2.4 KiB
Markdown
# High-Level Architecture Diagram: Company Inc.
|
||
|
||
## Cloud Infrastructure (GCP + GKE)
|
||
|
||
```mermaid
|
||
flowchart TB
|
||
subgraph Internet
|
||
Users((Users))
|
||
end
|
||
|
||
subgraph GCP["Google Cloud Platform"]
|
||
subgraph Projects["Project Structure"]
|
||
Prod[company-inc-prod]
|
||
Staging[company-inc-staging]
|
||
Shared[company-inc-shared]
|
||
Sandbox[company-inc-sandbox]
|
||
end
|
||
|
||
subgraph Edge["Edge / Networking"]
|
||
LB[Cloud Load Balancer<br/>HTTPS · TLS termination]
|
||
CDN[Cloud CDN<br/>Static Assets]
|
||
NAT[Cloud NAT<br/>Egress]
|
||
end
|
||
|
||
subgraph VPC["VPC — Private Subnets"]
|
||
subgraph GKE["GKE Autopilot Cluster"]
|
||
Ingress[Ingress Controller]
|
||
subgraph Workloads
|
||
API[Backend — Python / Flask<br/>HPA · 2–3 replicas]
|
||
SPA[Frontend — React SPA<br/>Nginx]
|
||
end
|
||
Redis[Redis — Memorystore<br/>Session / Cache]
|
||
Monitoring[Prometheus + Grafana<br/>Observability]
|
||
end
|
||
end
|
||
|
||
subgraph Managed["Managed Services"]
|
||
Mongo[(MongoDB Atlas<br/>3-node Replica Set<br/>Private Endpoint)]
|
||
Secrets[Secret Manager]
|
||
Registry[Artifact Registry]
|
||
end
|
||
end
|
||
|
||
subgraph CICD["CI / CD"]
|
||
Git[Git Repository]
|
||
Actions[Gitea / GitHub Actions<br/>Build · Test · Scan]
|
||
Argo[ArgoCD / Flux<br/>GitOps Deploy]
|
||
end
|
||
|
||
Users --> LB
|
||
Users --> CDN
|
||
LB --> Ingress
|
||
CDN --> SPA
|
||
Ingress --> API
|
||
Ingress --> SPA
|
||
API --> Redis
|
||
API --> Mongo
|
||
API --> Secrets
|
||
GKE --> Registry
|
||
GKE --> NAT
|
||
|
||
Git --> Actions
|
||
Actions --> Registry
|
||
Argo --> GKE
|
||
```
|
||
|
||
## CI / CD Pipeline
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
Dev[Developer] -->|push| Repo[Git Repo]
|
||
Repo -->|webhook| CI[CI Pipeline<br/>lint · test · build]
|
||
CI -->|push image| Registry[Artifact Registry]
|
||
CI -->|update manifests| GitOps[GitOps Repo]
|
||
GitOps -->|sync| Argo[ArgoCD / Flux]
|
||
Argo -->|deploy| GKE[GKE Cluster]
|
||
```
|
||
|
||
## Network Security Layers
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
Internet((Internet)) --> FW[VPC Firewall<br/>Default deny]
|
||
FW --> LB[Load Balancer<br/>HTTPS only]
|
||
LB --> NP[K8s Network Policies]
|
||
NP --> Pods[Application Pods<br/>Private IPs only]
|
||
Pods --> PE[Private Endpoint<br/>MongoDB Atlas]
|
||
```
|