交付管道 (Delivery Pipeline)
定义与开发 (Definition & Development)
运行时与观测 (Runtime & Observability)

🔮 The Glass Pipeline

端到端DevOps可靠交付与全链路追溯架构

核心理念: 元数据驱动 (Metadata-Driven) 控制平面

10人团队 × 20个微服务 × 全链路透明化

🎯 意图定义层

Source of Intent

解决『为何而做』的问题

Linear

需求管理的『唯一法律源头』

核心优势:

  • Git原生集成
  • 自动化工作流
  • GraphQL API
  • 极速开发者体验

分支命名规范

<user>/<TEAM>-<ID>-<desc>

示例: dev/BE-101-update-schema

→ 自动关联Linear Issue

Conventional Commits

type(scope): subject

Type枚举:

  • feat → MINOR
  • fix → PATCH
  • docs / style / refactor
  • perf / chore

CI门禁: commitlint

不合规提交 → CI失败 缺少Issue ID → CI失败

源头保证数据完整性

🏭 构建与注入层

Artifact Enrichment

镜像携带『DNA』信息

AnalysisTemplate

自动化验证与熔断

  • 查询Prometheus指标
  • HTTP 5xx错误率 < 1%
  • P95延迟检查

❌ 超过阈值 → 自动回滚 ✅ 验证通过 → 继续晋级

GitLab CI + Kaniko

OCI镜像元数据注入:

  • org.opencontainers.image.revision
  • com.company.linear.issue
  • com.company.ci.pipeline

git-cliff

自动变更日志生成

  • 基于Conventional Commits
  • 每个微服务维护CHANGELOG.md
  • 发布到GitLab Release页面

🔄 开发内环

Telepresence

『拦截与代理』模式:

  • 本地仅运行1个服务
  • 远程集群运行其他19个
  • 双向网络连接
  • 访问集群Service DNS

Atlas (开发阶段)

Schema-as-Code

  1. 修改ORM定义
  2. atlas migrate diff
  3. 自动生成SQL迁移文件
  4. Git版本控制
  5. 减少手写SQL风险

🚀 Kargo: 编排核心大脑

Grouped Services模式 多服务聚合为原子化『Freight』

Warehouse (仓库)

platform-release-train

订阅来源:

  • Git配置仓库 (Kustomize)
  • 20个微服务镜像仓库
  • discoveryLimit: 5 性能优化

→ 生成唯一 Freight ID

🧪 Test Stage

自动晋级

新Freight → 自动部署 快速验证基础功能

🎭 Staging Stage

条件晋级

集成测试验证 更严格的检查

🏆 Production Stage

手动晋级

人工审批 最高安全级别

ArgoCD

GitOps调和引擎

  • 监控Git仓库变更
  • 自动同步K8s状态
  • Sync Waves编排顺序
  • Application状态徽章

Promotion Steps (晋级步骤)

1. git-clone        # 克隆配置仓库
2. kustomize-set-image  # 批量更新20个镜像
3. git-commit       # 提交变更
4. git-push         # 推送到env/staging
5. argocd-update    # 触发ArgoCD同步

一次点击 → 20个服务原子化部署

Atlas Kubernetes Operator

数据库GitOps化

kind: AtlasMigration
annotations:
  argocd.argoproj.io/sync-wave: "0"

Wave 0: DB迁移 (先执行) Wave 1: 应用部署 (后执行)

→ 避免新代码访问旧数据库

Argo Rollouts + Istio

渐进式灰度发布

steps:
  - setWeight: 5   # 5%流量
  - pause: 10m     # 观察
  - analysis       # 自动验证
  - setWeight: 20  # 逐步提升
  - setWeight: 100 # 全量

☸️ Kubernetes集群

  • 20个微服务Deployments
  • Istio Service Mesh
  • VirtualService流量路由
  • DestinationRule子集管理

📊 Prometheus

  • HTTP请求指标
  • 延迟百分位
  • 错误率监控
  • 自定义业务指标

🗺️ Obsidian Canvas

团队作战地图

  • 动态架构拓扑图
  • ArgoCD状态徽章嵌入
  • 变更日志链接
  • 服务依赖可视化

❌ 痛点1: 可见性缺失

解决: Notion自动报告

  • Obsidian知识沉淀

❌ 痛点3: 追溯链断裂

解决: Linear + OCI Labels 代码↔业务价值关联

🕸️ Istio网格

  • Canary/Stable Subsets
  • 流量权重控制
  • 自动故障注入测试
  • mTLS加密通信

📝 Notion数据库

『老板视图』

页面结构:

  • 标题: Release - YYYY-MM-DD
  • Status: Success/Failed
  • Environment: Production

内容示例: ✅ [Feat] 用户头像上传 (BE-101) 🐛 [Fix] 登录超时问题 (BE-105)

Linear Webhook

状态自动流转

MR合并 → 『待发布』 生产部署 → 『已完成』

  • 自动添加部署评论

❌ 痛点2: 编排碎片化

解决: Kargo Freight 多服务原子化聚合

📅 实施路线图

阶段 周期 重点任务
基础规范化 第1-2周 Conventional Commits, Linear集成, Telepresence
GitOps升级 第3-4周 Atlas Operator, ArgoCD Sync Waves
编排与聚合 第5-6周 Kargo部署, Grouped Services配置
全链路闭环 第7-8周 Release Note脚本, Notion/Linear Webhooks

最终目标: 从代码行到管理层的全链路透明化 🎯

🏁 核心价值

Kargo → 多服务聚合,『版本』概念回归 | Linear+GitLab → 重建追溯链 Atlas+Rollouts → 数据库与应用的安全气囊 | Notion+Obsidian → 隐性工程→显性价值

为团队规模化扩张奠定坚实基础

Freight差异分析

聚合变更日志生成器

  1. 对比Current vs Previous Freight
  2. 找出版本变化的服务
  3. GitLab API获取Commits
  4. 提取Linear Issue ID
  5. Linear GraphQL查询详情
  6. 渲染Markdown报告
镜像推送新Freight晋级晋级同步指标查询推送报告状态更新