「产品矩阵平台」DevOps 与可观测性

构建 CI/CD、环境分层、配置密钥、监控报警、日志追踪、代码安全、自动伸缩与 K3s 轻量部署体系,让平台交付可重复、故障可定位。

第十章 DevOps 与可观测性

平台化之后,交付不再是“把一个项目发布上去”。它会变成多服务、多环境、多租户、多配置、多团队协同的持续过程。

DevOps 的目标是让发布可重复,可观测性的目标是让问题可解释。两者合在一起,才是真正的工程效率。

10.1 CI/CD 流程

推荐流水线:

graph LR
    A[Pull Request] --> B[Lint]
    B --> C[Test]
    C --> D[Build Image]
    D --> E[Security Scan]
    E --> F[Deploy Staging]
    F --> G[Smoke Test]
    G --> H[Manual Approval]
    H --> I[Deploy Production]

每个阶段要有明确失败条件:

阶段阻断条件
Lint代码风格、静态检查失败
Test单元测试、集成测试失败
Build镜像构建失败
Security Scan高危漏洞
Smoke Test核心接口不可用
Production健康检查失败自动回滚

10.2 环境分层

至少保留三套环境:

环境用途数据
dev开发联调可重置假数据
staging发布前验证脱敏生产样本
prod生产服务真实数据

不要让 staging 长期偏离生产。很多事故不是代码问题,而是生产和测试环境配置不一致。

10.3 配置中心与密钥管理

配置分为普通配置和秘密配置。

类型示例存储
普通配置开关、阈值、URLConfig Center / Git
秘密配置DB 密码、API SecretSecret Manager

密钥管理要求:

  1. 不进入 Git;
  2. 支持轮换;
  3. 访问有审计;
  4. 按环境隔离;
  5. 最小权限。

10.4 监控与报警

监控指标建议遵循 RED 和 USE。

RED 面向服务:

指标含义
Rate请求速率
Errors错误数量和比例
Duration请求耗时

USE 面向资源:

指标含义
Utilization使用率
Saturation饱和度
Errors错误数

报警要有行动意义。不要把所有 500 都直接告警到人,应该按影响范围、持续时间和核心链路分级。

10.5 日志与追踪

日志、指标、追踪三者要能互相跳转。

一次请求应贯穿:

trace_id -> gateway log -> service span -> db query -> event publish -> worker log

结构化日志字段:

字段说明
trace_id链路 ID
request_id请求 ID
tenant_id租户
app_id应用
user_id用户
level日志级别
message信息
error错误

OpenTelemetry 可以统一采集 Trace、Metric 和 Log,后端可接 Jaeger、Tempo、Prometheus、Loki。

10.6 代码质量与安全审计

平台代码质量不只靠人工 Review。建议自动化检查:

检查工具类型
静态分析lint、vet、staticcheck
单元测试go test
覆盖率coverage report
依赖漏洞SCA
密钥泄露secret scan
镜像漏洞image scan
API 安全DAST

安全扫描不是为了生成报告,而是为了在合并前阻断高风险变更。

10.7 自动伸缩与资源编排

Kubernetes / K3s 中常见伸缩方式:

方式依据
HPACPU、内存、自定义指标
KEDA队列长度、事件源
VPA单实例资源建议
定时伸缩已知高峰前扩容

对 Worker 更推荐按队列积压伸缩,而不是 CPU。很多 Worker 是 I/O 密集型,CPU 不高但任务已堆积。

10.8 K3s 本地轻量部署

对中小团队或私有化交付,K3s 是一个现实选择。

适合场景:

场景原因
本地研发集群轻量、接近生产
私有化客户运维成本低
边缘节点资源占用小
小规模 SaaS起步快

基础组件:

组件用途
Traefik / Nginx Ingress入口路由
Cert Manager证书
Prometheus指标
Loki日志
ArgoCDGitOps
Longhorn存储

10.9 发布与回滚策略

发布策略:

策略优点风险
Rolling Update简单平滑问题可能逐步扩散
Blue-Green回滚快资源成本高
Canary风险可控配置复杂

平台服务推荐核心链路使用 Canary,普通后台服务使用 Rolling Update。无论哪种方式,都必须有一键回滚和数据库迁移回滚策略。

10.10 DevOps 清单

检查项标准
CIPR 自动检查
CD发布可追踪、可回滚
环境dev/staging/prod 配置分离
密钥不进仓库、可轮换
监控关键链路有 SLO
日志trace_id 全链路贯通
安全高危问题阻断发布
伸缩API 和 Worker 分别扩缩容

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页