📐 横向维度:单服务全生命周期 (Code → Production)
📏 纵向维度:需求到交付闭环 (Requirement → Delivery)
🗓️ 实施路线图
个人使用ai agent的流水线
🌍 环境流转与晋升 (Promotion Pipeline)
彩蛋 - 自用skills cli工具分享
开场与议程
📋 需求管理层
📝 Conventional Commits & 双向链接
📰 Changelog 聚合 & 通知
🎯 GitOps 交付层
🔄 CI/CD Pipeline - 纵向维度
🧰 核心工具链
🧱 最小可部署单元 (MDU)
💻 开发阶段

🔄 核心流程

Idea → Issue → Branch
  ↓
Code → Test → Review
  ↓  
Merge → Build → Push
  ↓
Kargo → ArgoCD → Deploy
  ↓
Monitor → Feedback → Iterate

贯彻[[声明式 和 推送式 思想]]的声明式:

  • 继承k8s的实现思路,用声明式的方式watch环境
    • watch main分支
    • watch 镜像仓库
    • watch gitops的yaml配置仓库

5️⃣ Notify

  • Slack/飞书/钉钉 通知
  • 变更内容摘要
  • 关联 Issue 列表
  • 部署状态更新

4️⃣ Publish

  • 生成 CHANGELOG.md
  • 提取关联 Issue IDs
  • 创建 release-notes.json
  • 版本号: v1.2.3-abc1234

1️⃣ Validate

  • Code Lint
    • golangci-lint
    • ruff (Python)
  • Commit Lint
    • conventional

3️⃣ Build

  • Docker Build
  • Multi-stage
  • Layer Cache
  • Push Registry
argocd
kargo

kargo controller

aws staging 集群

gitops配置仓库main分支更新

argocd controll

镜像仓库新版本

代码合入main分支

k3s local集群

aws production 集群

cicd自动构建1、kargo 持续watch 镜像仓库 1分钟轮询周期4.1、自动变更4.2、自动变更5、手动确认同步2、提交commit到gitops main分支3、持续watch gitops 仓库main分支3.1、主动触发argocd webhook,加速响应

2️⃣ Test

  • 单元测试
  • 集成测试
  • 覆盖率报告
  • Cobertura

🐙 ArgoCD

GitOps 同步引擎

  • Watch GitOps Repo
  • 自动 Sync 到 K8s
  • 漂移检测 & 自愈
  • 回滚支持

Minimum Deployable Unit

三位一体变更单元

🧪 Staging (AWS)

触发: Main Branch Merge → 自动
用途: 集成验证 & UAT
验证: 集成测试 + E2E
运行时间: ≥ 2小时无告警

🗄️ Database Schema Migration

语言 工具 特点
Golang golang-migrate / Atlas 轻量/声明式
Python Alembic SQLAlchemy生态

⚙️ ConfigMap/Secrets

  • 环境变量配置
  • 版本: Git Commit Hash
  • 管理: Kustomize overlay

📦 Container Image

  • OCI Artifact
  • 版本: SemVer + Git SHA
  • 存储: Container Registry

🏠 Local Cluster

触发: Feature Branch Push
用途: 开发调试
验证: 单元测试
工具: k3d / kind

🏗️ Terraform

AWS 基础设施即代码

  • EKS 集群管理
  • RDS/ElastiCache
  • VPC/Security Groups
  • IAM Roles

🛠️ 开发工具推荐

工具 用途 场景
Tilt 本地K8s开发自动化 多服务开发
Telepresence 注入远程集群 访问远程资源
Skaffold 开发工作流 CI/CD本地模拟

☸️ 本地K8s集群

集群选择:

  • k3d (推荐)
  • kind
  • minikube

完整依赖上下文: 其他微服务、DB、MQ、Cache

🖥️ 本地开发环境

  • IDE / 编辑器
  • 代码编写
  • 单元测试
  • 热重载调试
go test ./...
pytest tests/

📁 GitOps Repo

Kustomize 配置管理

gitops-repo/
├── base/
│   └── deployment.yaml
├── overlays/
│   ├── staging/
│   └── production/
└── kustomization.yaml

🚢 Kargo

镜像版本监控 & 晋升管理

apiVersion: kargo.akuity.io/v1alpha1
kind: Stage
spec:
  subscriptions:
    warehouse: images
  promotionMechanisms:
    gitRepoUpdates: [...]

从需求到生产:GitOps驱动的端到端交付体系

![[端到端可靠交付蓝图.png]]

横向维度: 单服务全生命周期

  • 代码->上线 - 循环
    • 最小可部署单元
    • 开发阶段就上k8s,保证配置一致性。
    • GitOps 具体使用

纵向维度: 需求到交付闭环

  • 需求 kanban - 循环
    • 需求 -> issue
    • commit 和issue
    • 交付上线通知
    • issue 自动close

ai agent 使用

  • vibe kanban - 循环
    • 需求,补充上下文和工具
    • deepresearch & plan mode
    • 执行并review后合入

变更完后,进行端到端的验证

  • cursor
  • manus

done

deepresearch

plan mode

in progess

🛠️ 技术栈清单

需求管理

  • Linear ⭐ (推荐)
  • GitLab Issues ✅

代码托管 & CI/CD

  • GitLab ✅
  • GitLab CI ✅
  • GitLab Registry ✅

GitOps

  • ArgoCD ✅
  • Kargo ✅
  • Kustomize ✅

基础设施

  • Terraform ✅
  • Kubernetes (AWS EKS) ✅

服务网格 & 渐进交付

  • Istio
  • Argo Rollouts

数据库迁移

  • golang-migrate (Go)
  • Alembic (Python)

Changelog

  • conventional-changelog

本地开发

  • k3d / Tilt ✅
让 browser agent自动对进行.png

dailynote

传统清单管理

📄 单服务 Changelog

每个服务 Tag 时自动生成:

// release-notes.json
{
  "service": "user-service",
  "version": "v1.2.3",
  "date": "2024-01-15",
  "changelog": "...",
  "related_issues": ["ENG-123"]
}

📋 聚合 Changelog 示例

# Platform Release v2024.01.15

## ✨ New Features
- **[user-service]** OAuth2 登录支持 (ENG-123)
- **[order-service]** Apple Pay 支付 (ENG-789)

## 🐛 Bug Fixes  
- **[user-service]** 修复头像上传问题 (ENG-456)

## 📦 Services Updated
| Service | From | To |
|---------|------|-----|
| user-service | v1.2.2 | v1.2.3 |
| order-service | v2.0.0 | v2.0.1 |
vibe coding 看板.png

📦 Epic

业务需求

  • 大型业务目标
  • 跨团队协作
  • 季度/年度规划

ENG-1

🔄 Release Aggregator

platform-releases/
├── scripts/
│   ├── aggregate.py
│   └── notify.py
├── manifests/
│   └── 2024/01/
└── changelogs/
    └── 2024/01/

聚合 20 个服务的变更

🔗 双向链接实现

┌─────────────────────────────────────────────────────────────────┐
│  Linear Issue (ENG-123)  ◀───────────▶  GitLab Commit/MR       │
├─────────────────────────────────────────────────────────────────┤
│  正向: Issue → 查看关联的 Commits/MRs → 代码变更详情               │
│  反向: Commit → 查看关联的 Issues → 原始需求/Bug描述              │
└─────────────────────────────────────────────────────────────────┘

🏷️ Type 类型定义 举例

Type 说明 SemVer
feat ✨ 新功能 MINOR
fix 🐛 Bug修复 PATCH
perf ⚡ 性能优化 PATCH
refactor 🔨 重构 -
docs 📝 文档 -
breaking 💥 破坏性 MAJOR

🔑 关联关键词

自动关闭 Issue:

  • Closes: ENG-123
  • Fixes: ENG-123
  • Resolves: ENG-123

引用关联:

  • Related: ENG-12
  • Refs: ENG-456
  • See: ENG-789

🎚️ 发布策略

策略 场景 实现
Rolling 日常发布 K8s Deployment
Blue-Green 快速回滚 Argo Rollouts
Canary 渐进验证 Argo Rollouts + Istio
全链路灰度 A/B测试 Istio VirtualService

🚦 Quality Gates (晋升条件)

  • ✅ 所有自动化测试通过
  • ✅ Staging 运行 ≥2h 无告警
  • ✅ 错误率 < 0.1%, P99延迟 < 500ms
  • ✅ 至少一名 Reviewer 审批

🚀 Production (AWS)

触发: 手动审批
用途: 生产环境
验证: 质量门禁通过
回滚: ArgoCD一键回滚

🐛 Bug

缺陷单

  • 问题追踪
  • 严重等级
  • 复现步骤

ENG-456

✅ Task

技术任务

  • 具体开发任务
  • 1-3天工作量
  • 可分配给个人

ENG-123

📊 工具对比

工具 GitLab集成 适合规模 推荐
Linear ✅ 原生 5-50人 ⭐⭐⭐⭐⭐
GitLab Issues ✅ 原生 任意 ⭐⭐⭐⭐
Jira ✅ 插件 50+人 ⭐⭐⭐
Notion ⚠️ 有限 5-20人 ⭐⭐⭐

🎯 需求分层结构

业务需求 → 产品需求 → 技术任务 → Bug单

🔄 Issue 状态自动流转

BacklogTodoIn Progress (Branch Created) → In Review (MR Created) → Done (MR Merged) → Deployed (ArgoCD Sync)

🎁 Feature

产品需求

  • 可交付的功能
  • Sprint规划
  • 用户故事

ENG-12

🎯 推荐工具: Linear

为什么选择 Linear:

  • ✅ 现代化 UI,键盘优先
  • ✅ 原生 GitLab 集成
  • ✅ 自动状态流转
  • ✅ 内置 Cycle Analytics
  • ✅ 10人团队 ~$80/月

linear.app

📢 通知渠道

渠道 用途 时机
Slack/飞书 即时通知 每次部署完成
Email 周报/汇总 每周一上午
Linear Issue状态更新 MR Merge / Deploy
GitLab Release Note Tag 创建
自动人工卡点审批x分钟内可完成执行文字版需要x小时,委托ai agent完成