Ally AI – Full Architecture Diagram
┌─────────────────────────────────────────────────────────────────┐
│ 1. USER REQUEST │
│ https://onyx.company.com/api/chat │
└──────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 2. LOAD BALANCER (GCP) │
│ Decision: "Which cluster?" │
│ - Checks geographic location │
│ - Checks cluster health │
│ - Forwards to US GKE cluster │
└──────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 3. GKE GATEWAY (Your Question) │
│ Decision: "Which service?" │
│ │
│ Questions GKE Gateway asks: │
│ ① What's the hostname? → onyx.company.com │
│ ② Does any rule match? → Yes, rule exists │
│ ③ What's the path? → /api/chat │
│ ④ Which path matches? → /api matches (Prefix) │
│ ⑤ What's the backend? → nginx-service:80 │
│ │
│ DECISION: Route to nginx-service │
└──────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 4. NGINX SERVICE (API Gateway) │
│ Decision: "Which specific endpoint?" │
│ │
│ - Reads /api/chat │
│ - Checks authentication │
│ - Rate limits │
│ - Routes to api-service:8000/chat │
└─────────────────────────────────────────────────────────────────┘ 