☸️ Kubernetes 集群环境
📦 微服务代码仓库 (20个)
📊 可观测性体系
🔐 安全与治理
📁 GitOps 配置仓库 (env-config)
⚙️ GitLab CI Pipeline
🔄 ArgoCD
🚢 Kargo (渐进式交付)
🔴 PROD 环境 (ns-prod)
🟢 DEV 环境 (ns-dev)
🟡 TEST/STAGING 环境 (ns-test)

特点

  • 严格审批: Tech Lead + 运维
  • 副本数: 3+ (HPA)
  • 资源限制: 生产级
  • 用途: 生产服务

发布节奏

  • 周五晚 (常规)
  • 随时 (紧急 hotfix)

回滚策略

修改 prod overlay 镜像 tag

→ 回退到上一版本

→ MR 合并即回滚

Kargo: 一键 Rollback

特点

  • 自动部署: merge 到 main 即发布
  • 副本数: 1
  • 资源限制: 低
  • 用途: 开发自测 / 联调

发布节奏

每次 commit 自动触发

20个服务 Pod

svc-user-xxx
svc-auth-xxx
svc-order-xxx
svc-payment-xxx
...
(共20个 Deployment)

特点

  • MR 审批: 需要 1 人 review
  • 副本数: 2
  • 资源限制: 中
  • 用途: 测试 / 回归 / 验收

发布节奏

  • 周二晚
  • 周四晚

版本管理

语义化版本: v1.2.3

从 main 打 tag → CI 构建

创建 MR 修改 test overlay

→ Kargo Promotion

🚀 CI/CD 流水线全景架构图

20微服务 × GitLab CI × GitOps × ArgoCD × Kargo

代码、镜像、配置、环境全部在 Git 中可追踪,所有环境的变更都通过 Merge Request 审批

svc-order 订单服务

svc-payment 支付服务

svc-product 产品服务

svc-cart 购物车服务

svc-notification 通知服务

svc-search 搜索服务

svc-recommend 推荐服务

svc-report 报表服务

svc-gateway API网关

svc-config 配置中心

base/ (通用模板)

base/
  svc-user/
  svc-auth/
  svc-order/
  ... (20个服务)

Deployment / Service / ConfigMap 模板

overlays/dev/

开发环境覆盖配置

  • 镜像 tag: ${CI_COMMIT_SHA}
  • 副本数: 1
  • 资源限制: 较低

overlays/test/

测试/预发环境覆盖配置

  • 镜像 tag: v1.2.3 (语义化版本)
  • 副本数: 2
  • 需要 MR 审批

Application CRD

每个环境一个 Application:

  • app-dev → overlays/dev
  • app-test → overlays/test
  • app-prod → overlays/prod

同步策略

  • Dev: 自动同步 (automated: true)
  • Test: 手动同步 + Diff 预览
  • Prod: 手动同步 + 审批 + Diff 预览

Stage 定义

devtestprod

每个 Stage 对应 K8s 命名空间

Freight 管理

  • 自动发现新镜像版本
  • 创建 Freight (版本包)
  • 通过 Promotion 逐级推进

svc-auth 认证服务

Stage 1: Lint

代码格式检查、静态分析

golangci-lint / pylint / eslint

Stage 2: Test

单元测试 + 覆盖率检查

go test / pytest / npm test

Stage 3: Build

构建 Docker 镜像

registry.example.com/group/svc:${CI_COMMIT_SHA}

Stage 4: Scan

安全扫描 (SAST/SCA/容器扫描)

trivy / grype / semgrep

Stage 5: Push Registry

推送镜像到 GitLab Container Registry

同时打语义化 tag: v1.2.3

Stage 6: Update GitOps

自动修改 env-config 仓库的镜像 tag

创建 MR → dev 环境自动合并

overlays/prod/

生产环境覆盖配置

  • 镜像 tag: v1.2.3 (验收通过版本)
  • 副本数: 3+
  • 严格 MR 审批 (Tech Lead + 运维)

svc-user 用户服务

svc-inventory 库存服务

Metrics (指标)

Prometheus + Grafana

  • 服务 QPS / 延迟 / 错误率
  • 资源使用 (CPU/内存)
  • 业务指标

告警规则:

  • P99 延迟 > 500ms
  • 错误率 > 1%
  • Pod 重启

Logs (日志)

CloudWatch / ELK / Loki

  • 统一日志格式 (JSON)
  • 结构化字段
  • 日志聚合分析

查询:

  • 按 trace_id 关联
  • 按 service 过滤
  • 错误日志告警

Traces (调用链)

Jaeger / X-Ray / Tempo

  • 分布式追踪
  • 服务调用拓扑
  • 性能瓶颈定位

OpenTelemetry 统一接入:

  • 自动注入 trace context
  • 跨服务链路追踪

密钥管理

Vault / SealedSecret

  • 敏感信息加密存储
  • 运行时注入
  • 自动轮换

GitLab CI Variables:

  • Masked Variables
  • Protected Variables

准入控制

分支保护:

  • main/release/* 保护
  • 必须 MR + 至少 1 人 review
  • CI 通过才能合并

准入标准:

  • 无单测/CI失败 → 禁止合并
  • 生产 MR 需多人审批

统一规范

  • 代码结构统一
  • CI 模板复用
  • 禁止 kubectl apply
  • 配置收敛到 ConfigMap

《DevOps 开发指南》

  • 分支命名规范
  • MR 规范
  • 提测/上线流程

svc-analytics 分析服务

svc-registry 服务注册

分支策略 (Trunk-Based)

main (保护) ← feature/* / hotfix/*release/* (可选)

每个仓库包含: .gitlab-ci.yml + Dockerfile + 业务代码

CI 模板仓库

ci-templates/ 统一模板,所有微服务 include 复用

新服务只需复制最小配置即可接入流水线

svc-crawler 爬虫服务

svc-llm LLM服务

svc-embedding 向量服务

svc-scheduler 调度服务

svc-admin 管理后台

git push / MR创建 MRWatch & Sync协同监控安全同步同步同步Kargo PromotionKargo Promotion