99 参考架构
99 · Reference Architecture · 标准参考架构
99 · Reference Architecture · 标准参考架构
一份长期沉淀的"这套系统应该长什么样",每个模块给出选型 + 备选 + 迁移路径。
一、全景架构图
[ Internet / Public ]
│
┌───────────▼───────────┐
│ Cloudflare CDN │ ← DDoS + WAF + Global
└───────────┬───────────┘
│
┌───────────▼───────────┐
│ Nginx │ ← TLS + LB
└───────────┬───────────┘
│
┌───────────▼───────────┐
│ API Gateway │ ← Auth + Rate Limit
│ (FastAPI) │ Billing + Routing
└───────────┬───────────┘
│
┌───────────────────────┼───────────────────────┐
│ │ │
▼ ▼ ▼
[ Scheduler ] [ Queue ] [ Metering ]
Kubernetes Redis Streams Kafka / PG
+ Volcano
│ │ │
▼ ▼ ▼
[ vLLM Cluster ] [ Cache ] [ Storage ]
vLLM / SGLang Redis + KV Pool MinIO / NFS
TRT-LLM Prefix Cache Model Repository
│
▼
[ GPU Pool ]
NVIDIA H100/H200/H800
RTX 5090 (dev/spot)
│
▼
[ Physical Layer ]
IDC / 液冷 / 高密柜
横向支持:
┌─ Monitoring ─┐ ┌─ Data Layer ─┐ ┌─ Security ─┐
│ Prometheus │ │ PostgreSQL │ │ Vault │
│ DCGM │ │ ClickHouse │ │ Cloudflare │
│ Grafana │ │ Kafka │ │ WAF │
│ Loki │ │ Loki │ │ Audit Log │
│ Tempo │ │ Grafana │ │ Snort │
└──────────────┘ └──────────────┘ └────────────┘二、每层组件选型(选型 + 备选 + 理由)
Layer 1:Edge(CDN / DDoS / WAF)
选型:Cloudflare
- 备选:AWS CloudFront + Shield / 阿里云 CDN + 高防 IP
- 理由:免费级好、全球覆盖、DDoS 天花板高
- 迁移路径:Cloudflare → 阿里云(国内合规压力时)
Layer 2:反向代理 / LB
选型:Nginx
- 备选:Caddy(自动 TLS 简单)/ Envoy / Traefik
- 理由:稳、社区大、性能好、大家熟
- 迁移路径:Nginx → Envoy(规模大时更好观测)
Layer 3:API Gateway
选型:FastAPI(Python 自研)
- 备选:APISIX / Kong / Higress
- 理由:与 vLLM 生态一致、上手快、可读性好
- 迁移路径:FastAPI → APISIX(QPS > 5000 时)
Layer 4:调度 / 编排
选型:Kubernetes + Volcano + NVIDIA GPU Operator
- 备选:Slurm(HPC)/ Ray / Docker Swarm
- 理由:云原生标准、Volcano 支持 gang scheduling + 优先级抢占
- 迁移路径:K8s → K8s + Karmada(跨集群)
Layer 5:推理引擎
选型:vLLM 为主,SGLang 补长上下文,TensorRT-LLM 补低延迟
- 备选:TGI(不推荐)/ LMDeploy(国产选项)
- 理由:见
02-Plan-B-Token-MaaS/comparison-engines.md - 迁移路径:vLLM 主 → 多引擎路由 → 自研引擎(可选,长期)
Layer 6:队列 / 消息
选型:Year 1 Redis Streams,Year 2 Kafka
- 备选:RabbitMQ / NATS / PostgreSQL LISTEN/NOTIFY
- 理由:早期简单,规模化用 Kafka
- 迁移路径:Redis → Kafka
Layer 7:主数据库
选型:PostgreSQL 16
- 备选:MySQL 8 / CockroachDB
- 理由:JSONB 灵活、事务强、社区大
- 迁移路径:PG 单机 → PG 主从 → CockroachDB / TiDB(多区)
Layer 8:缓存
选型:Redis 7
- 备选:KeyDB / Dragonfly
- 理由:全能、社区大
- 迁移路径:Redis Standalone → Redis Cluster
Layer 9:分析仓库
选型:ClickHouse
- 备选:Doris / StarRocks / BigQuery / Snowflake
- 理由:性能强、成本低、开源
- 迁移路径:ClickHouse Single → Cluster → 云服务
Layer 10:对象存储
选型:MinIO(自建)or 阿里云 OSS
- 备选:Ceph(更复杂)/ AWS S3 兼容任意
- 理由:MinIO 起步便宜、S3 兼容
- 迁移路径:MinIO → 阿里 OSS + MinIO 缓存
Layer 11:文件存储
选型:Year 1 NFS,Year 2 JuiceFS,Year 3 Weka(可选)
- 备选:CephFS / GPFS / Lustre
- 理由:早期够用,规模化性能升级
- 迁移路径:NFS → JuiceFS → Weka
Layer 12:网络
选型:Cilium(eBPF)
- 备选:Calico / Flannel
- 理由:eBPF 现代、可观测、性能强
- 迁移路径:Calico(初期)→ Cilium(成熟后)
Layer 13:监控 / Metrics
选型:Prometheus + Grafana
- 备选:VictoriaMetrics(大规模)/ Datadog(商业)
- 理由:开源标配
- 迁移路径:Prometheus → VictoriaMetrics(当基础 Prom 撑不住)
Layer 14:日志
选型:Loki + Promtail
- 备选:ELK / Vector + ClickHouse
- 理由:轻量、Grafana 一体化
- 迁移路径:Loki 单实例 → 集群 → 分离存储
Layer 15:Tracing
选型:Tempo / Jaeger
- 备选:Zipkin / SkyWalking
- 理由:Grafana 一体化
- 迁移路径:Tempo → OpenTelemetry Collector
Layer 16:密钥
选型:HashiCorp Vault OSS
- 备选:Bitwarden / AWS KMS / 阿里 KMS
- 理由:开源标配、HSM 支持
- 迁移路径:Vault OSS → Vault Enterprise(合规需要)
Layer 17:CI/CD
选型:GitLab CI + ArgoCD
- 备选:GitHub Actions + Flux / Jenkins
- 理由:GitOps 现代实践
- 迁移路径:初期直连 → GitOps
Layer 18:门户前端
选型:Next.js + React + Tailwind CSS
- 备选:Vue + Nuxt / SolidJS / SvelteKit
- 理由:生态大、招人易
- 迁移路径:Vercel 托管 → 自建 Nginx
三、扩展决策清单
什么时候上 K8s?
- < 100 卡:systemd + docker 够
- ≥ 100 卡:必上 K8s
什么时候上 Kafka?
- < 100 QPS:Redis Streams 够
- ≥ 500 QPS:必上 Kafka
什么时候上 ClickHouse?
- < 1000 万条 / 月:PG 直接查
- ≥ 1000 万条:必上 ClickHouse
什么时候上多 Region?
- 单 Region 满载 70%+
- 或客户对延迟 / 合规有跨区要求
什么时候上液冷?
- 单柜功耗 > 30kW
- 或 PUE 需要压到 1.2 以下
四、迁移路径总表
40 卡 → 100 卡 → 1000 卡 → 10000 卡
systemd → K8s → K8s + Volcano → K8s + Karmada
Nginx → Nginx → Nginx / Envoy → APISIX
FastAPI → FastAPI → APISIX → Go 网关
PG single → PG 主从 → PG 分片 → CockroachDB
Redis → Redis Cluster → Redis Cluster → Redis Cluster
无 Kafka → Redis Streams → Kafka → Kafka Cluster
无 CH → ClickHouse → ClickHouse → ClickHouse Cluster
NFS → JuiceFS → JuiceFS → Weka + JuiceFS
Calico → Calico → Cilium → Cilium
无 Vault → Vault OSS → Vault Enterprise → Vault Enterprise五、"为什么不用 XX"(常见问题)
Q:为什么不用 Kong 而用 FastAPI?
- A:Kong 学习成本 + 定制复杂。40 卡阶段 FastAPI 一天就搭起来,规模化再切。
Q:为什么不用 Ray?
- A:Ray 适合分布式训练,推理服务 Vollm + K8s 更成熟。
Q:为什么不用 Milvus / Weaviate?
- A:本平台不做 RAG 后端,客户 RAG 后端自己搞。
Q:为什么不用 Nvidia Triton?
- A:Triton 通用,但 LLM 场景 vLLM 优化更专。
Q:为什么不上 Serverless?
- A:GPU 冷启动几十秒,Serverless 体验差。除非纯批量场景。
Q:为什么用 MinIO 而不是 Ceph?
- A:40 卡阶段 Ceph 部署运维成本太高。
六、关键判断
架构不是一次做对的,是一路演进的。
三个原则:
- 能用现成就用现成(开源 + SaaS)
- 可迁移比最优选更重要(今天选的东西 3 年后可能不适用)
- 每次扩容都是重新评估的时机
别做的:
- 别一开始就设计万卡架构(40 卡阶段用不上)
- 别自研核心组件(vLLM / K8s / Redis 别改造)
- 别追求微服务潮流(40 卡阶段单体够)
最大 ROI:一份好的架构文档 = 团队对齐 + 招人加分 + 融资加分。