AIoT 后端系统稳定性保障方案

云原生 + AI-native + 大厂 SRE 级别

版本: v3.0 | 日期: 2026-05-13 | 作者: 架构团队 定位: 行业最前沿稳定性工程实践,从 AI 能力出发重新设计每个环节


目录


总览与设计哲学

当前现状

| 维度 | 现状 | 目标 | |------|------|------| | 规模 | 百万级设备 | 3 年内千万级 | | 云平台 | AWS + 腾讯云,已有 K8s 基础 | 多云统一管理,GitOps 驱动 | | 团队 | 数十人 | 可扩到百人 | | 痛点 | 排查慢、质量差、流程不完善 | SLO 驱动、AI 辅助、工程化 |

设计原则

  1. AI-native first:不是传统方案 + AI 点缀,而是从 AI 能力出发重新设计每个环节
  2. SLO 驱动:所有决策围绕 SLI/SLO 展开,Error Budget 是第一优先级
  3. 渐进演进:不推倒重来,每阶段可独立交付价值
  4. 多云中立:避免厂商锁定,统一管理平面
  5. 安全左移:从设计阶段就考虑安全

架构全景图

┌─────────────────────────────────────────────────────────────────────┐
│                        第 9 层:组织与文化                             │
│  SRE 团队定位 │ Blameless 文化 │ 知识管理 │ 培训演练                   │
├─────────────────────────────────────────────────────────────────────┤
│                     第 8 层:需求与研发流程                             │
│  PRD → 技术方案 → AI 评审 → 开发 → AI 测试 → 发布                     │
├─────────────────────────────────────────────────────────────────────┤
│                      第 7 层:AI 智能运维                              │
│  LLM 根因分析 │ 自愈 Agent │ 智能告警 │ 预测性维护                      │
├─────────────────────────────────────────────────────────────────────┤
│                      第 6 层:SRE 稳定性工程                           │
│  SLI/SLO/SLA │ Error Budget │ On-call │ Post-mortem                  │
├─────────────────────────────────────────────────────────────────────┤
│                 第 5 层:可观测性 + 安全(AI-native)                   │
│  OpenTelemetry │ 日志/指标/链路 │ AIOps │ DevSecOps                   │
├─────────────────────────────────────────────────────────────────────┤
│                    第 4 层:研发效能(AI-native)                       │
│  CI/CD │ AI Review │ AI 测试 │ Feature Flag │ 制品管理                 │
├─────────────────────────────────────────────────────────────────────┤
│                       第 3 层:大数据平台                               │
│  数据采集 │ 实时计算 │ 数据湖 │ OLAP │ BI │ 数据治理                    │
├─────────────────────────────────────────────────────────────────────┤
│                        第 2 层:应用架构                               │
│  微服务 │ API 网关 │ 消息队列 │ MQTT │ 设备管理 │ 规则引擎              │
├─────────────────────────────────────────────────────────────────────┤
│                     第 1 层:云原生基础设施底座                        │
│  K8s 多集群 │ 多云 │ IaC │ GitOps │ FinOps │ 边缘                     │
└─────────────────────────────────────────────────────────────────────┘

第 1 层:云原生基础设施底座

1.1 K8s 集群架构

推荐方案:EKS + TKE + Karmada 联邦

Karmada(Kubernetes Armada) 是 CNCF 孵化项目,提供统一控制平面管理多集群。AWS 官方已发布 Karmada + EKS 的架构指南,是目前多云 K8s 管理的事实标准。

架构设计

                    ┌─────────────────────┐
                    │  Karmada Control     │
                    │  Plane (独立集群)     │
                    │  - Policy Engine     │
                    │  - Scheduler         │
                    └──────┬──────┬───────┘
                           │      │
              ┌────────────┘      └────────────┐
              │                                │
    ┌─────────▼─────────┐          ┌──────────▼──────────┐
    │  AWS EKS 集群组    │          │  腾讯云 TKE 集群组   │
    │  - us-east-1 (主)  │          │  - ap-guangzhou (主) │
    │  - us-west-2 (备)  │          │  - ap-shanghai (备)  │
    └───────────────────┘          └──────────────────────┘

关键决策

| 决策项 | 推荐方案 | 理由 | |--------|---------|------| | 集群联邦 | Karmada v1.12+ | CNCF 项目,AWS 官方支持,策略驱动的应用分发 | | 控制平面 | 独立小型集群 | 不与业务集群耦合,3 节点 etcd HA | | 调度策略 | PropagationPolicy | 按权重、亲和性、故障域分发工作负载 | | 故障转移 | 自动 failover | 集群不可用时自动迁移工作负载 |

EKS + TKE 适配要点

  • EKS:使用 EKS Managed Node Groups + Karpenter 自动伸缩
  • TKE:使用 TKE 原生节点池 + Cluster Autoscaler
  • 统一认证:通过 IAM Role 映射 + 腾讯云 CAM 实现统一身份
  • 网络互通:Tailscale / AWS Transit Gateway + 腾讯云 CCN 打通

集群规划

| 集群类型 | 用途 | 节点规模 | 多可用区 | |---------|------|---------|---------| | 生产-主 | 核心服务 | 50-100 节点 | 3 AZ | | 生产-备 | DR + 读写分离 | 30-50 节点 | 3 AZ | | 预发布 | Staging + 灰度 | 10-20 节点 | 2 AZ | | 数据 | 大数据组件 | 30-50 节点 | 3 AZ | | 边缘 | K3s 设备接入 | 按需 | - |

1.2 容器运行时与网络

| 组件 | 推荐方案 | 理由 | |------|---------|------| | 容器运行时 | containerd 2.0 | K8s 默认,性能好,安全 | | CNI | Cilium 1.16+ | eBPF 高性能,支持 NetworkPolicy,可观测性强,服务网格集成 | | CSI | AWS EBS CSI + 腾讯云 CBS CSI | 云厂商原生支持 | | DNS | CoreDNS + NodeLocal DNSCache | 减少 DNS 查询延迟 |

Cilium 选型理由

  • eBPF 数据面,性能优于 iptables
  • 内置 Hubble 可观测性
  • 支持 Cluster Mesh(跨集群服务发现)
  • 兼容 Istio/Linkerd 服务网格
  • 2025 年已成为 CNCF 毕业项目,生态成熟

1.3 IaC:基础设施即代码

推荐方案:Terraform + Terragrunt

| 维度 | Terraform | Pulumi | |------|-----------|--------| | 学习曲线 | HCL 简单,运维友好 | 需要编程语言能力 | | 多云支持 | Provider 生态最成熟 | 桥接 TF Provider | | 团队适配 | 运维主导团队更合适 | 开发主导团队更合适 | | 状态管理 | S3/COS 远程状态 | Pulumi Cloud / 自管理 |

推荐 Terraform,原因:

  1. 运维团队更易上手,HCL 声明式语法
  2. AWS + 腾讯云 Provider 最成熟
  3. 社区 Module 最多(Terraform Registry)
  4. 企业已有 K8s 基础,Terraform 与 K8s 生态集成好

组织方式

infra/
├── modules/           # 可复用模块
│   ├── eks/
│   ├── tke/
│   ├── vpc/
│   ├── emqx/
│   └── monitoring/
├── environments/      # 环境配置
│   ├── production/
│   ├── staging/
│   └── dev/
└── terragrunt.hcl    # DRY 配置

1.4 GitOps:持续交付

推荐方案:ArgoCD

根据 2025 CNCF 终端用户调查,Argo CD 已成为 K8s GitOps 领域采用率最高的解决方案,超过 Flux。

多集群 GitOps 架构

                    ┌──────────────────┐
                    │  Git Repository  │
                    │  (单一真相源)     │
                    └────────┬─────────┘
                             │
                    ┌────────▼─────────┐
                    │  ArgoCD Hub      │
                    │  (中心集群)       │
                    │  - Application   │
                    │  - AppSet        │
                    └────┬──────┬──────┘
                         │      │
            ┌────────────┘      └────────────┐
            │                                │
    ┌───────▼────────┐          ┌───────────▼──────┐
    │  EKS Spoke     │          │  TKE Spoke       │
    │  (via Secret)  │          │  (via Secret)    │
    └────────────────┘          └──────────────────┘

关键实践

  • ApplicationSet:按集群/环境自动生成 Application,避免重复配置
  • Sync Policy:Auto Sync + Self Heal,确保集群状态与 Git 一致
  • Progressive Delivery:配合 Argo Rollouts 实现金丝雀发布
  • 多租户:ArgoCD Projects 隔离团队权限

1.5 成本优化与 FinOps

推荐方案:Kubecost + FinOps 流程

2025 FinOps 关键趋势(FinOps X 2025 大会):

  • FOCUS 标准:FinOps Open Cost and Usage Specification,统一多云账单格式
  • AI 驱动成本优化:AWS Q for Cost Optimization、GCP AI 推荐
  • 自动化 FinOps:从观察 → 归因 → 自动化的六阶段成熟度模型

具体措施

| 措施 | 预期节省 | 实施难度 | |------|---------|---------| | Spot/抢占式实例(无状态服务) | 60-70% 计算成本 | 低 | | Karpenter 自动伸缩(EKS) | 20-30% 资源浪费 | 中 | | Right-sizing(Kubecost 推荐) | 15-25% 资源浪费 | 低 | | 分时调度(非生产环境关机) | 30-40% 非生产成本 | 低 | | 存储分层(热/温/冷) | 40-60% 存储成本 | 中 | | Reserved Instances/Savings Plans | 30-40% 长期负载 | 低 |

Kubecost 部署

  • Helm Chart 部署到管理集群
  • 按命名空间/标签/团队分配成本
  • 与 Prometheus 集成获取实时指标
  • 月度 FinOps 评审会议

1.6 AIoT 场景:EMQX on K8s

百万级 MQTT 连接架构

根据 EMQX 官方测试,EMQX 5.10 单集群已成功支撑 200 万并发 MQTT over WebSocket 连接

EMQX on K8s 生产架构

┌─────────────────────────────────────────────────────────────┐
│                    Load Balancer (NLB/CLB)                    │
│                    TCP 1883 / TLS 8883 / WS 8083             │
└────────────┬────────────────────────┬───────────────────────┘
             │                        │
    ┌────────▼────────┐     ┌────────▼────────┐
    │  EMQX Node 1    │     │  EMQX Node 2    │  ...
    │  (StatefulSet)  │     │  (StatefulSet)  │
    │  - connections  │     │  - connections  │
    │  - session      │     │  - session      │
    └────────┬────────┘     └────────┬────────┘
             │                        │
    ┌────────▼────────────────────────▼────────┐
    │          EMQX Core nodes (奇数)           │
    │          - Raft consensus                │
    │          - Route table                   │
    │          - Rule engine                   │
    └──────────────────────────────────────────┘
             │
    ┌────────▼────────────────────────────────┐
    │  Data Bridge → Kafka / DB / HTTP        │
    └─────────────────────────────────────────┘

调优要点

  • 内核参数fs.file-max=1048576net.core.somaxconn=32768vm.max_map_count=262144
  • EMQX 配置:每个 Pod 支持 10-50 万连接,根据实例规格调整
  • K8s 资源:请求/限制设置合理,避免 OOM Kill
  • 网络:hostNetwork 或 Cilium eBPF 减少网络开销
  • 会话持久化:EMQX Enterprise 持久化会话到 Redis/Disc

边缘 K3s

  • 轻量级 K8s 发行版,适合边缘网关
  • 与 Karmada 联邦管理
  • 边缘 EMQX 桥接云端 EMQX 集群

第 2 层:应用架构

2.1 微服务架构演进

推荐路径:当前架构 → Service Mesh(分阶段)

阶段规划

当前 → K8s 原生 Service + Ingress → Istio Ambient Mode → 全量 Mesh
        (0-3 月)                    (3-6 月)              (6-12 月)

Service Mesh 选型

| 维度 | Istio 1.22+ | Linkerd 2.14+ | |------|-------------|---------------| | Sidecar 代理 | Envoy(50-100MB/pod) | linkerd2-proxy Rust(10-20MB/pod) | | Ambient 模式 | ✅ 无 sidecar | ❌ | | 流量管理 | VirtualService/DestinationRule | 简单配置 | | 可观测性 | 强大 | 够用 | | 运维复杂度 | 较高 | 较低 | | 社区规模 | 最大 | 中等 | | 适用场景 | 复杂流量管理、多集群 | 简单 mTLS + 可观测 |

推荐 Istio Ambient Mode

  1. 无 sidecar 开销,适合大规模部署(500+ pods)
  2. 流量管理能力强大(故障注入、流量镜像、条件重试)
  3. 多集群服务发现(配合 Cilium Cluster Mesh)
  4. AWS EKS + 腾讯云 TKE 都有良好的 Istio 支持

但建议分阶段

  • 0-3 月:先用 K8s 原生 Service + APISIX 网关,不引入 Mesh 复杂性
  • 3-6 月:Istio Ambient Mode 灰度,先覆盖核心服务
  • 6-12 月:全量 Mesh,启用 mTLS、流量管理、可观测性

2.2 API 网关

推荐方案:Apache APISIX

根据 2025-2026 年评估,Apache APISIX 在云原生场景下综合表现最佳:

| 维度 | Apache APISIX | Kong Gateway | |------|--------------|-------------| | 性能 | 23,000+ QPS/节点(etcd) | 略低(PostgreSQL/ Cassandra) | | 动态配置 | etcd 热更新,无需重启 | 部分需重启 | | 插件生态 | 100+ 内置插件 | 丰富,但企业版收费 | | AI Gateway | ✅ 内置 AI 代理 | ✅ AI 插件 | | 多云适配 | 原生支持多云部署 | 企业版支持 | | 成本 | 完全开源 | 企业版 $500/月起 |

双云统一入口架构

                    ┌─────────────────────┐
                    │  DNS (Route53/DNSPod)│
                    │  智能 DNS 解析        │
                    └──────┬──────┬───────┘
                           │      │
              ┌────────────┘      └────────────┐
              │                                │
    ┌─────────▼─────────┐          ┌──────────▼──────────┐
    │  AWS: APISIX NLB  │          │  腾讯云: APISIX CLB │
    │  - 限流/认证       │          │  - 限流/认证         │
    │  - 路由/负载均衡   │          │  - 路由/负载均衡     │
    └───────────────────┘          └──────────────────────┘

APISIX 核心配置

  • 全局速率限制(防 DDoS)
  • JWT/OAuth2 认证
  • 请求/response 转换
  • gRPC 转 REST(grpc-transcode 插件)
  • AI 代理(proxy-ai 插件,支持多 LLM 后端)

2.3 消息队列

推荐方案:Apache Kafka(首选) + 评估 Pulsar

| 维度 | Kafka (KRaft) | Pulsar | |------|--------------|--------| | 吞吐量 | 2x 写入速度(基准测试) | 单数字延迟 | | 架构 | 单层(Broker 本地存储) | 多层(Broker + BookKeeper 分离) | | 运维 | KRaft 去 ZooKeeper,更简单 | 组件多(Broker + BookKeeper + ZooKeeper) | | 生态 | 最成熟(Kafka Connect/Streams/Flink) | 良好 | | 多租户 | Topic 级隔离 | 原生多租户 | | Geo-复制 | MirrorMaker 2 | 内置 |

推荐 Kafka,原因:

  1. IoT 场景需要极致吞吐,Kafka 在原始吞吐上优于 Pulsar
  2. KRaft 模式已稳定(Kafka 3.6+),不再需要 ZooKeeper
  3. EMQX 原生 Kafka Data Bridge,零代码集成
  4. Flink + Kafka 生态最成熟
  5. 团队更熟悉,社区资料最多

千万级 Kafka 集群架构

Kafka Cluster (KRaft mode)
├── Broker × 9-12 (r5.2xlarge / S5.2XLARGE)
│   ├── Partition: 按设备类型分区
│   ├── Replication Factor: 3
│   └── min.insync.replicas: 2
├── Schema Registry (Confluent/Apicurio)
│   └── Avro/Protobuf 统一数据格式
└── Kafka Connect
    ├── EMQX Source Connector
    ├── S3/COS Sink Connector
    └── ClickHouse Sink Connector

Topic 设计

  • device-telemetry-{device-type}:设备遥测数据(高吞吐)
  • device-event:设备事件(状态变更、告警)
  • device-command:下行控制命令
  • ota-progress:OTA 升级进度

2.4 服务通信

| 通信方式 | 场景 | 选型 | |---------|------|------| | 同步-内部 | 服务间调用 | gRPC(Protobuf + 代码生成) | | 同步-外部 | App/第三方调用 | REST + OpenAPI 3.1 | | 异步-事件 | 设备数据流、解耦 | Kafka | | 异步-命令 | 设备控制 | MQTT → Kafka |

2.5 熔断/限流/降级

推荐方案:Istio + Sentinel 双保险

| 层级 | 工具 | 能力 | |------|------|------| | 网关层 | APISIX 限流 | 全局速率限制、IP 限流 | | Mesh 层 | Istio DestinationRule | 连接池、异常检测、熔断 | | 应用层 | Sentinel / Resilience4j | 细粒度流控、热点参数限流、系统保护 |

降级策略

  • 读降级:返回缓存数据(Redis)
  • 写降级:写入本地队列,异步补偿
  • 功能降级:非核心功能关闭(如报表生成、推荐)

2.6 AIoT 核心组件

2.6.1 设备管理

┌─────────────────────────────────────────────────┐
│                  设备管理服务                      │
├──────────────┬───────────────┬──────────────────┤
│  设备注册     │  设备认证      │  设备影子          │
│  - 预注册     │  - X.509 证书  │  - 期望状态        │
│  - 动态注册   │  - Token       │  - 上报状态        │
│  - 批量导入   │  - MQTT u/p    │  - 状态差异对比     │
└──────────────┴───────────────┴──────────────────┘
  • 认证方式:X.509 双向 TLS(生产推荐) + Token(轻量设备)
  • 设备影子:存储在 Redis/Valkey,设备离线时缓存期望状态
  • 设备状态:时序数据存 TDengine/TimescaleDB

2.6.2 规则引擎

EMQX 规则引擎(内置)+ 自建复杂规则引擎(双引擎策略):

  • EMQX Rule Engine:简单实时规则(数据过滤、转发、告警)
  • Flink CEP:复杂事件处理(多设备关联、时序模式检测)
  • 自建规则引擎:拖拽式配置 + SQL 编辑器,面向运营人员

2.6.3 OTA 升级

OTA 架构:
┌──────────┐    ┌──────────────┐    ┌──────────┐
│ 管理后台  │───▶│ OTA Service  │───▶│ EMQX     │───▶ 设备
│ 创建任务  │    │ 灰度策略      │    │ 下发命令  │
│ 版本管理  │    │ 差分包生成    │    │ 进度上报  │
└──────────┘    └──────────────┘    └──────────┘
                        │
                ┌───────▼───────┐
                │ 对象存储 S3/COS│
                │ 固件包存储     │
                └───────────────┘

灰度策略

  1. 金丝雀:1% → 5% → 10% → 50% → 100%
  2. 按设备分组:内部测试 → Beta 用户 → 全量
  3. 自动回滚:升级失败率 > 阈值自动停止

2.6.4 时序数据库选型

| 维度 | TDengine | TimescaleDB | InfluxDB 3 | |------|----------|-------------|------------| | 写入性能 | 最高(1-16x 竞品) | 中等 | 中等 | | 查询性能 | 最快(某些场景 87-132x 竞品) | 良好 | 良好 | | 压缩比 | 最优(12x 省 vs TimescaleDB) | 中等 | 中等 | | SQL 支持 | 自有 SQL 方言 | 完全 PostgreSQL | DataFusion SQL | | 集群 | 原生集群 | 基于 PG 集群 | 云原生 | | 学习曲线 | 中等 | 低(PG 用户) | 中等 | | 生态 | 中国生态好 | 全球生态好 | 全球生态好 | | 适用场景 | IoT 时序、超大规模 | 混合查询(时序+关系) | 监控指标 |

推荐方案

  • 主选 TDengine:IoT 时序场景写入和查询性能最优,压缩比好,节省存储成本
  • 备选 TimescaleDB:如需复杂 SQL 关联查询(设备数据 + 业务数据),TimescaleDB 的 PostgreSQL 兼容性是优势

第 3 层:大数据平台

这是 AIoT 平台的核心数据能力层。设备埋点上报行为数据,后端通过报表展示设备使用情况。

3.1 整体架构

┌──────────────────────────────────────────────────────────────────────┐
│                        BI & 报表层                                    │
│  Superset/Metabase │ 实时大屏 │ 离线报表 │ 多租户数据隔离              │
├──────────────────────────────────────────────────────────────────────┤
│                      OLAP 查询引擎                                    │
│  StarRocks/ClickHouse │ 物化视图 │ 预计算指标                          │
├──────────────────────────────────────────────────────────────────────┤
│                    数据湖 / 数据仓库                                   │
│  Apache Iceberg │ S3/COS 对象存储 │ 热温冷分层 │ 分区策略               │
├──────────────────────────────────────────────────────────────────────┤
│                     实时计算层                                        │
│  Flink 2.0 on K8s │ 实时聚合 │ CEP │ Flink SQL                       │
├──────────────────────────────────────────────────────────────────────┤
│                     数据采集层                                        │
│  设备埋点 SDK → EMQX → Kafka Data Bridge → Schema Registry            │
└──────────────────────────────────────────────────────────────────────┘

3.2 数据采集层

设备埋点 SDK 设计

协议设计

  • 传输协议:MQTT(轻量设备) / HTTP(高能力设备)
  • 数据格式:Protobuf(首选,体积小、解析快)/ MessagePack(备选)
  • 压缩策略:LZ4(速度优先)/ Zstd(压缩比优先)
  • 批量策略:100 条/批 或 5 秒/批(先到先触发)

埋点事件类型

message DeviceEvent {
  string device_id = 1;
  string event_type = 2;      // telemetry / status / error / usage
  int64  timestamp = 3;
  map<string, string> properties = 4;
  bytes  payload = 5;
}

EMQX → Kafka Data Bridge

EMQX 内置 Kafka Data Bridge,MQTT 消息直接灌入 Kafka,零代码中间层

# EMQX Kafka Bridge 配置示例
bridges:
  kafka:
    my_kafka_bridge:
      enable: true
      bootstrap_hosts: "kafka-1:9092,kafka-2:9092,kafka-3:9092"
      topics:
        - topic: device-telemetry-${device_type}
          template: |
            {"device_id": "${clientid}", "timestamp": ${timestamp}, "payload": ${payload}}
      authentication: sasl_plain
      max_batch_bytes: 896KB
      compression: snappy

优势

  • 设备消息从 EMQX 直达 Kafka,无需中间应用层
  • 支持批量、压缩,优化 Kafka 吞吐
  • EMQX 规则引擎可做实时过滤和转换

Schema Registry + 数据格式统一

推荐 Confluent Schema Registry 或 Apicurio Registry

  • 统一管理 Avro/Protobuf Schema
  • Schema 演进兼容性检查
  • 序列化/反序列化自动处理

数据格式选择

  • Protobuf:首选。二进制格式,体积小,代码生成,强类型
  • Avro:备选。Schema 演进更灵活,与 Kafka 生态更好

百万 TPS Kafka 集群

Partition 设计

  • device_type 分区:同类型设备在同一 partition set,保证局部有序
  • Partition 数量 = 预期峰值 TPS / 单 partition 吞吐(~10K TPS/partition)
  • 100 万 TPS → 100+ partitions(分布到多个 topic)

消费者组设计

  • Flink 消费者组:实时计算
  • Kafka Connect Sink:写入 OLAP/数据湖
  • 归档消费者:写入 S3/COS 冷存储

3.3 实时计算层

Flink 2.0 on Kubernetes

Apache Flink 2.0(2025 年 3 月发布)代表实时计算的新纪元,重点改进:

  • 更高效的资源利用
  • 改进的 checkpoint 和恢复机制
  • 更好的 K8s 原生集成

部署架构

Flink on K8s (Native Kubernetes mode)
├── JobManager (Deployment, HA via ZooKeeper/KRaft)
├── TaskManager (动态伸缩, 对接 K8s HPA/KEDA)
├── Flink Operator (管理 Flink 作业生命周期)
└── Savepoint → S3/COS (状态后端)

Flink SQL vs DataStream API

| 维度 | Flink SQL | DataStream API | |------|-----------|---------------| | 开发效率 | 高,SQL 声明式 | 低,Java/Scala 编程 | | 维护成本 | 低 | 高 | | 灵活性 | 中等 | 最高 | | 适用场景 | 简单聚合、窗口计算 | 复杂 CEP、自定义逻辑 |

推荐策略

  • 80% 场景用 Flink SQL(实时聚合、窗口统计)
  • 20% 场景用 DataStream API(复杂事件处理、自定义算子)

实时场景

  1. 实时在线设备数:滑动窗口统计 MQTT 连接事件
  2. 实时故障率:设备错误事件 / 总事件,滚动窗口
  3. 异常告警:CEP 模式检测异常设备行为序列
  4. 实时数据质量:缺失数据、异常值检测

3.4 数据湖/数据仓库

表格式选型

| 维度 | Apache Iceberg | Apache Hudi | Delta Lake | |------|---------------|-------------|------------| | 核心优势 | 大规模分析、多引擎兼容 | 高频 Upsert、流式写入 | 批处理 MERGE、Databricks 生态 | | Upsert 性能 | 中等 | 最优 | 良好 | | 引擎兼容 | Spark/Flink/Trino/Doris/StarRocks | 主要 Spark | Databricks 为主 | | 社区趋势 | 2025 最热门 | 稳定 | Databricks 推进 | | ACID | ✅ | ✅ | ✅ | | Schema 演进 | 最强 | 良好 | 良好 |

推荐 Apache Iceberg

  1. 2025 年社区最活跃,行业趋势明确
  2. 多引擎兼容(Flink 写入、StarRocks/Trino 查询)
  3. V3 支持数据血缘
  4. IoT 场景 bulk insert 多于 upsert,Iceberg 最适合

存储层设计

S3/COS 对象存储
├── /raw/                    # 原始数据(Bronze)
│   ├── device_type=robot/
│   │   ├── date=2026-05-13/
│   │   └── date=2026-05-12/
│   └── device_type=cleaner/
│       └── ...
├── /processed/              # 清洗后数据(Silver)
│   └── 同上分区
├── /aggregated/             # 聚合数据(Gold)
│   ├── daily_summary/
│   └── hourly_metrics/
└── /archive/                # 冷数据(归档)
    └── 按月归档,生命周期 90 天

分层策略

  • 热数据(最近 7 天):SSD / 内存缓存
  • 温数据(7-90 天):S3 Standard / COS Standard
  • 冷数据(90 天+):S3 Glacier / COS Archive

分区策略device_type + date(二级分区)

  • 按 device_type 分区:查询时过滤特定设备类型
  • 按 date 分区:时间范围查询高效

3.5 OLAP 查询引擎

选型对比

| 维度 | ClickHouse | StarRocks | Apache Doris | |------|-----------|-----------|-------------| | 单表性能 | 最优 | 良好 | 良好 | | Join 性能 | 一般 | 最优 | 良好 | | Upsert | Replace 异步 | Primary Key 同步 | Unique Key | | 数据湖查询 | 支持 | 支持 | 支持 | | 运维复杂度 | 中等 | 中等 | 中等 | | 物化视图 | 最强 | 异步物化视图 | Rollup | | 适用场景 | 日志分析、时序 | 多表关联、实时数仓 | 通用分析 |

推荐 StarRocks

  1. 多表关联性能最优:IoT 报表场景需要设备数据 + 业务数据关联
  2. Upsert 实时性好:设备状态频繁更新
  3. 数据湖直查:支持 Iceberg 外表,无需数据迁移
  4. Shared-data 模式:存储计算分离,S3 作为存储后端

物化视图预计算

-- 清扫成功率物化视图
CREATE MATERIALIZED VIEW mv_clean_success_rate
REFRESH ASYNC EVERY (INTERVAL 5 MINUTE)
AS
SELECT
  device_type,
  region,
  DATE_TRUNC('hour', event_time) AS hour_bucket,
  COUNT(*) AS total_sessions,
  SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) AS success_count,
  SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS fail_count,
  ROUND(SUM(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS success_rate
FROM device_clean_sessions
GROUP BY device_type, region, DATE_TRUNC('hour', event_time);

-- 清扫失败原因分析
CREATE MATERIALIZED VIEW mv_failure_reasons
REFRESH ASYNC EVERY (INTERVAL 10 MINUTE)
AS
SELECT
  device_type,
  failure_reason,
  COUNT(*) AS failure_count,
  DATE_TRUNC('day', event_time) AS day_bucket
FROM device_clean_sessions
WHERE status = 'failed'
GROUP BY device_type, failure_reason, DATE_TRUNC('day', event_time);

典型查询设计

-- 清扫成功率趋势
SELECT hour_bucket, device_type, success_rate
FROM mv_clean_success_rate
WHERE hour_bucket BETWEEN '2026-05-01' AND '2026-05-13'
ORDER BY device_type, hour_bucket;

-- 清扫失败原因 Top10
SELECT failure_reason, SUM(failure_count) AS total
FROM mv_failure_reasons
WHERE day_bucket >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY failure_reason
ORDER BY total DESC
LIMIT 10;

3.6 BI 与报表

选型

| 方案 | 优势 | 劣势 | 推荐 | |------|------|------|------| | Apache Superset | 开源、可视化丰富、SQL 编辑器 | 需要自运维 | ✅ 推荐 | | Metabase | 简单易用、非技术人员友好 | 高级功能收费 | 备选 | | 商业方案(Tableau/PowerBI) | 功能最强 | 成本高、厂商锁定 | 视预算 |

推荐 Apache Superset

  • 开源免费,社区活跃
  • 支持 40+ 数据库(StarRocks/ClickHouse/Druid 等)
  • Dashboard + SQL Lab + 报表导出
  • 嵌入式(iframe 嵌入管理后台)

实时大屏方案

  • Superset + 自定义可视化插件
  • 或 Grafana(实时指标) + Superset(离线报表)

多租户数据隔离

  • 行级安全:StarRocks Row-Level Security
  • 视图隔离:每租户创建视图,限制可见数据
  • Schema 隔离:大客户独立 Schema

3.7 数据治理

数据质量监控

AI-native 数据质量

  • 规则引擎:预定义质量规则(完整性、一致性、时效性)
  • AI 异常检测:基于历史数据训练异常检测模型,自动发现数据漂移
  • 质量评分:每个数据集计算质量分,低于阈值告警

数据血缘

  • Apache Iceberg V3:原生支持数据血缘追踪
  • OpenLineage:跨系统数据血缘标准
  • Marquez:数据血缘可视化平台
  • 全链路追溯:设备 → EMQX → Kafka → Flink → Iceberg → StarRocks → 报表

数据生命周期管理

| 数据类型 | 热存储 | 温存储 | 冷存储 | 归档/删除 | |---------|--------|--------|--------|----------| | 遥测原始数据 | 7 天 | 90 天 | 1 年 | 1 年后删除 | | 聚合数据 | 90 天 | 1 年 | 3 年 | 3 年后归档 | | 事件数据 | 30 天 | 1 年 | 3 年 | 按合规要求 | | 设备日志 | 7 天 | 30 天 | 90 天 | 90 天后删除 |

3.8 AI on Data

故障预测模型

设备数据 → 特征工程 → 模型训练 → 在线推理
              │            │           │
              ▼            ▼           ▼
        统计特征       XGBoost/    Flink + PMML
        时序特征       LSTM/       在线预测
        频域特征       Transformer  写入 Kafka

预测场景

  • 设备故障预警(电池、电机、传感器)
  • 设备寿命预测
  • 异常行为检测

LLM 数据问答

架构:Text-to-SQL Agent

用户自然语言提问
    │
    ▼
LLM Agent (理解意图 + 生成 SQL)
    │
    ├── Schema 检索 (RAG: 数据库表结构文档)
    ├── SQL 生成 (few-shot prompt)
    ├── SQL 校验 (语法 + 安全校验)
    │
    ▼
StarRocks 执行查询
    │
    ▼
结果可视化 (LLM 生成图表描述 + Superset 嵌入)

第 4 层:研发效能(AI-native)

4.1 设计哲学

AI-native CI/CD ≠ 传统 CI/CD + AI 点缀。而是从 AI 能力出发重新设计每个环节:

  • AI 先审查代码 → 人工复审
  • AI 先生成测试 → 人工确认
  • AI 先生成技术方案 → 人工微调
  • AI 先分析问题 → 人工决策

4.2 CI/CD 流水线

推荐方案:GitLab CI + ArgoCD

┌──────────────────────────────────────────────────────────────────┐
│                      GitLab CI Pipeline                         │
│                                                                  │
│  commit → lint → build → test → security → publish → deploy    │
│    │        │        │       │        │          │         │      │
│    │   AI Lint   AI Test  AI Scan  Trivy/Snyk  Helm     ArgoCD  │
│    │   Reviewer  Gen     Reviewer              Chart    Sync    │
│    │        │        │       │                             │      │
│    └──────AI Code Review────────┘                      ArgoCD   │
│                                                       Rollout  │
└──────────────────────────────────────────────────────────────────┘

流水线阶段

| 阶段 | 工具 | AI 增强 | |------|------|---------| | 代码质量 | ESLint/Prettier/golangci-lint | AI 自动修复建议 | | 构建 | Docker Buildkit + Kaniko | AI 优化 Dockerfile | | 单元测试 | Jest/pytest/Go test | AI 自动生成测试用例 | | 集成测试 | Testcontainers | AI 生成集成测试 | | 安全扫描 | Trivy + Snyk + AI Reviewer | AI 发现安全漏洞 | | 代码审查 | GitLab MR + AI Reviewer | AI 发现缺陷 + 修复 PR | | 制品发布 | Helm Chart + Container Registry | 版本自动管理 | | 部署 | ArgoCD + Argo Rollouts | 金丝雀自动分析 |

4.3 代码质量门禁

AI Reviewer 架构

┌─────────────────────────────────────────┐
│          AI Code Review Pipeline        │
│                                         │
│  MR Created                             │
│    │                                    │
│    ├── Diff Extraction                  │
│    │                                    │
│    ├── AI Analysis (GPT-4/Claude)       │
│    │    ├── Bug Detection               │
│    │    ├── Security Issues             │
│    │    ├── Performance Concerns        │
│    │    ├── Best Practice Violations    │
│    │    └── Auto-fix Suggestions        │
│    │                                    │
│    ├── Quality Gate (评分 ≥ B 才通过)     │
│    │                                    │
│    ├── Auto-fix PR (可选)                │
│    │                                    │
│    └── Review Comment on MR             │
└─────────────────────────────────────────┘

工具选择

  • 自建:基于 LLM API + RAG(代码库上下文),最灵活
  • 开源:CodeRabbit(开源 AI Code Review)、Qodo (原 CodiumAI)
  • 商业:SonarQube AI、GitHub Copilot Code Review

推荐渐进方案

  1. 先用 CodeRabbit(开源、GitLab/GitHub 集成好)
  2. 积累数据后自建(基于内部代码规范 + LLM)

4.4 AI 辅助测试

三层测试策略

| 层级 | 覆盖率目标 | AI 生成内容 | |------|-----------|-----------| | 单元测试 | 80%+ | 根据 API/函数签名自动生成用例 | | 集成测试 | 关键路径 100% | 根据 API Spec 生成接口测试 | | E2E 测试 | 核心场景 100% | 根据 User Story 生成端到端测试 |

工具链

  • 单元测试生成:Copilot / CodiumAI / Cover-Agent(基于 LLM)
  • API 契约测试:Pact + OpenAPI Spec 自动生成
  • E2E 测试:Playwright + AI 录制生成

4.5 发布策略

Feature Flag + 金丝雀发布

                    ┌──────────────────┐
                    │  Unleash (自托管) │
                    │  Feature Flag    │
                    │  Service         │
                    └──────┬───────────┘
                           │
    ┌──────────────────────┼──────────────────────┐
    │                      │                      │
    ▼                      ▼                      ▼
v1 (90% traffic)    v2-canary (5%)        v2-canary (5%)
    │                      │                      │
    └──────────────────────┼──────────────────────┘
                           │
                    ┌──────▼───────┐
                    │ Metrics      │
                    │ Analysis     │
                    │ (自动回滚)    │
                    └──────────────┘

推荐 Unleash(开源 Feature Flag 服务):

  • 自托管,数据不外泄
  • 支持渐进式发布(百分比 + 用户组)
  • 与 Argo Rollouts 集成
  • A/B 测试能力

发布策略矩阵

| 发布类型 | 策略 | 适用场景 | |---------|------|---------| | 常规发布 | 滚动更新 | 低风险变更 | | 重要功能 | 金丝雀(Argo Rollouts) | 核心功能变更 | | 重大重构 | 蓝绿部署 | 基础设施变更 | | 实验性功能 | Feature Flag | A/B 测试、灰度验证 |

4.6 制品管理

制品仓库:
├── Container Registry (自建 Harbor / 云厂商 ACR/ECR)
│   ├── 镜像 Tag 策略: {service}-{branch}-{commit}-{timestamp}
│   ├── 镜像扫描: Trivy (CI 阶段) + Harbor 内置扫描
│   └── 镜像签名: Cosign (Sigstore)
├── Helm Chart Museum (自建 / ChartMuseum)
│   ├── Chart 版本: semver 严格管理
│   └── Values 按环境分离
└── 制品元数据 (OCI Registry)
    └── SBOM (Software Bill of Materials)

4.7 代码工程化

代码规范

| 工具 | 作用 | 自动化 | |------|------|--------| | pre-commit hooks | 提交前检查 | 自动 | | ESLint/Prettier/Black | 格式化 + Lint | 自动修复 | | golangci-lint | Go 代码检查 | 自动 | | commitlint | Commit 规范 | 自动 | | Conventional Commits | 提交信息规范 | 自动生成 CHANGELOG |

API 契约

  • OpenAPI 3.1 Spec:所有 API 必须有 Spec
  • Spectral:API Spec Lint(命名规范、安全检查)
  • Pact 契约测试:消费者驱动契约,确保 API 变更不破坏下游
  • API 变更检测:CI 自动对比 API Spec 变更,breaking change 拦截

依赖管理 + 安全扫描

| 工具 | 作用 | |------|------| | Dependabot/Renovate | 自动依赖更新 | | Snyk | 漏洞扫描 + 许可证合规 | | Trivy | 容器镜像扫描 | | OWASP Dependency-Check | 依赖漏洞检查 | | AI 辅助修复 | Snyk AI 自动生成修复 PR |

技术债务管理

  • SonarQube:代码质量度量(Technical Debt Ratio、Code Smell、Duplicated Lines)
  • AI 分析:定期用 LLM 分析代码库,生成技术债务报告
  • 债务看板:Jira/飞书看板追踪技术债务
  • 20% 时间规则:每个 Sprint 预留 20% 时间偿还技术债

第 5 层:可观测性 + 安全(AI-native)

5.1 可观测性

OpenTelemetry 统一采集

OpenTelemetry(OTel)已成为可观测性的事实标准(2025),统一采集 logs/metrics/traces 三大信号。

┌──────────────────────────────────────────────────────────────┐
│                    应用/基础设施                                │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐          │
│  │ OTel SDK     │  │ OTel SDK    │  │ OTel SDK    │          │
│  │ (Java/Go/Py)│  │ (自动注入)   │  │ (JS/TS)    │          │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘          │
│         └────────────────┼────────────────┘                  │
│                          ▼                                   │
│               ┌──────────────────┐                           │
│               │  OTel Collector  │                           │
│               │  (DaemonSet)     │                           │
│               │  - Processing    │                           │
│               │  - Sampling      │                           │
│               │  - Enrichment   │                           │
│               └──────┬───────────┘                           │
└──────────────────────┼───────────────────────────────────────┘
                       │
          ┌────────────┼────────────┐
          │            │            │
          ▼            ▼            ▼
    ┌──────────┐ ┌──────────┐ ┌──────────┐
    │  Logs    │ │ Metrics  │ │ Traces   │
    │  Loki    │ │ Victoria │ │ Tempo/   │
    │          │ │ Metrics  │ │ Jaeger   │
    └──────────┘ └──────────┘ └──────────┘
          │            │            │
          └────────────┼────────────┘
                       ▼
               ┌──────────────┐
               │   Grafana    │
               │   统一面板    │
               └──────────────┘

日志

推荐 Grafana Loki(而非 ELK):

  • 轻量级,与 Grafana 原生集成
  • 不索引日志内容,只索引标签,成本更低
  • 适合 K8s 环境(Promtail 自动采集)

日志规范

  • 结构化日志:JSON 格式,包含 trace_id/span_id
  • 日志级别:DEBUG/INFO/WARN/ERROR/FATAL
  • 关联链路:每条日志携带 trace_id,可跳转到链路追踪

指标

推荐 VictoriaMetrics

  • 与 Prometheus 100% 兼容(PromQL、remote_write)
  • 更低的资源消耗(比 Prometheus 少 3-5x 内存/磁盘)
  • 内置集群模式(水平扩展 + 高可用)
  • 长期存储(适合保留历史指标用于容量规划)

方法论

  • RED 方法(请求类服务):Rate / Error / Duration
  • USE 方法(资源类):Utilization / Saturation / Errors

关键指标

| 类别 | 指标 | |------|------| | 服务 | 请求量、错误率、P50/P95/P99 延迟 | | K8s | CPU/Memory 使用率、Pod 重启次数、OOM Kill | | EMQX | 连接数、消息吞吐、订阅数 | | Kafka | Lag、Throughput、Consumer Group 延迟 | | 设备 | 在线数、离线率、消息延迟 |

链路追踪

推荐 Grafana Tempo

  • 与 Grafana/Loki 原生集成
  • 无需索引(基于 trace_id 查找),成本极低
  • 支持 OTLP 协议

AIOps 核心:LLM 消费可观测性数据

这是 AI-native 的核心:不是用 AI 增强 Alert(传统 AIOps),而是让 LLM 直接消费 logs/metrics/traces,秒级定位根因。

┌────────────────────────────────────────────────────────────┐
│                  AIOps Pipeline                            │
│                                                            │
│  Alert Triggered                                           │
│    │                                                       │
│    ├── 1. 自动收集上下文                                    │
│    │    ├── 相关 Trace (最近 10 分钟)                       │
│    │    ├── 相关 Logs (trace_id 关联)                      │
│    │    ├── 相关 Metrics (异常指标)                        │
│    │    └── 近期变更记录 (Git commits + deployments)        │
│    │                                                       │
│    ├── 2. LLM 分析                                         │
│    │    ├── 时序重建 (构建故障时间线)                       │
│    │    ├── 根因推理 (Chain-of-Thought)                    │
│    │    ├── 影响范围评估                                    │
│    │    └── 修复建议 (基于历史 incident + 知识库)           │
│    │                                                       │
│    ├── 3. 自动输出                                         │
│    │    ├── 事故报告 (Markdown)                            │
│    │    ├── 建议操作 (可执行命令)                           │
│    │    └── 相关文档链接 (RAG)                             │
│    │                                                       │
│    └── 4. 人工确认/执行                                     │
│         ├── 一键执行建议操作                                │
│         └── 或人工干预                                     │
└────────────────────────────────────────────────────────────┘

5.2 智能告警

传统告警问题:告警风暴、误报率高、上下文缺失

AI-native 告警

| 能力 | 实现方式 | |------|---------| | 异常检测 | ML 模型(Isolation Forest/Prophet)替代静态阈值 | | 告警降噪 | LLM 语义理解,合并相关告警 | | 语义去重 | LLM 判断不同告警是否源于同一根因 | | 动态阈值 | 基于历史数据自动调整阈值 | | 预测告警 | 趋势预测,在问题发生前预警 |

5.3 安全

IoT 安全

| 维度 | 方案 | |------|------| | 设备认证 | X.509 双向 TLS(生产)+ Token(轻量设备) | | 数据加密 | TLS 1.3(传输)+ AES-256(存储) | | 固件安全 | 签名验证 + 安全启动 + OTA 加密通道 | | 设备准入 | 设备白名单 + 证书轮换 |

PKI 架构

  • 根 CA(离线保护)→ 中间 CA → 设备证书
  • 证书自动轮换(EMQX TLS 终结 + cert-manager)
  • 证书吊销(CRL/OCSP)

应用安全

  • OWASP Top 10 2025 全覆盖
  • API 安全:速率限制、输入验证、JWT 安全
  • 认证鉴权:OAuth 2.0 / OIDC + RBAC
  • 安全 Headers:CSP、HSTS、X-Frame-Options

DevSecOps

| 阶段 | 工具 | 自动化 | |------|------|--------| | 编码 | AI Security Review | AI 实时检测 | | 构建 | Trivy/Snyk | CI 自动扫描 | | 测试 | DAST (OWASP ZAP) | 自动化安全测试 | | 部署 | OPA/Gatekeeper | 策略即代码 | | 运行时 | Falco | 运行时安全监控 |

零信任架构

  • Identity-based:基于身份(而非网络位置)的访问控制
  • mTLS:服务间所有通信加密
  • 最小权限:RBAC + ABAC 细粒度权限
  • 持续验证:每次请求都验证身份和权限

第 6 层:SRE 稳定性工程

6.1 SLI/SLO/SLA 体系

AIoT 场景 SLO 设计

| 服务 | SLI | SLO | SLA | |------|-----|-----|-----| | 设备接入 | MQTT 连接成功率 | ≥ 99.95% | 99.9% | | 消息传输 | 消息端到端延迟 P99 | ≤ 500ms | ≤ 1s | | 命令下发 | 下行命令到达率 | ≥ 99.9% | 99.5% | | App API | 请求成功率 | ≥ 99.95% | 99.9% | | App API | 请求延迟 P95 | ≤ 200ms | ≤ 500ms | | OTA 升级 | 升级成功率 | ≥ 99% | 98% | | 数据报表 | 数据可用性 | ≥ 99.9% | 99.5% | | 实时大屏 | 数据延迟 | ≤ 5s | ≤ 30s |

6.2 Error Budget 策略

参考 Google SRE Workbook 的 Error Budget Policy:

Error Budget 计算

  • 99.95% SLO → 0.05% Error Budget
  • 30 天窗口 = 43,200 分钟
  • Error Budget = 21.6 分钟/月

自动化策略

| Error Budget 消耗 | 动作 | |------------------|------| | ≤ 50% | 正常发布 | | 50% - 80% | 发布需 SRE 审批 | | 80% - 100% | 仅安全修复 + P0 bug 修复 | | > 100% | 停止所有变更,强制 Post-mortem | | 单次事故 > 20% | 必须 Post-mortem | | 同类事故 > 20%/季 | 下季度必须排 P0 修复 |

Error Budget 看板

  • Grafana Dashboard 实时展示各服务 Error Budget 消耗
  • 每周自动发送 Error Budget 报告给团队
  • 接近阈值时自动通知

6.3 On-call 机制

On-call 轮值

  • 主 On-call + 备 On-call,每周轮换
  • 7×24 覆盖,响应时间 P0: 5 分钟、P1: 15 分钟、P2: 1 小时
  • 飞书/企业微信 + 电话告警(PagerDuty/自建告警系统)

On-call 工具箱

  • Runbook(每个告警都有标准操作手册)
  • 一键诊断脚本(AI 生成 + 人工维护)
  • 快速回滚工具(ArgoCD 一键回滚)

6.4 Incident Management

参考 Google IMAG(Incident Management at Google)体系:

| 阶段 | 动作 | AI 增强 | |------|------|---------| | 检测 | 自动告警 + 异常检测 | AI 主动发现问题 | | 响应 | On-call 确认 + 组建团队 | AI 自动匹配专家 | | 止血 | 执行 Runbook | AI 推荐止血方案 | | 恢复 | 服务恢复 | AI 监控恢复状态 | | 复盘 | Post-mortem | AI 自动生成复盘报告 |

6.5 容量规划

  • 性能基线:每季度基准测试,记录关键指标
  • 容量模型:设备数 × 每设备消息量 × 消息大小 = 总吞吐
  • 预警机制:容量使用率 > 70% 自动告警
  • AI 预测:基于历史数据预测未来 3-6 个月容量需求

6.6 变更管理

变更分类

| 风险等级 | 变更类型 | 审批流程 | |---------|---------|---------| | 低 | 配置变更、Feature Flag | 自动 | | 中 | 常规版本发布 | 自动 + 监控 | | 高 | 架构变更、数据库变更 | SRE 审批 | | 极高 | 核心基础设施变更 | 变更委员会审批 |

变更冻结窗口

  • 重大节假日/促销期间冻结变更
  • Error Budget < 20% 时冻结

第 7 层:AI 智能运维

7.1 LLM 根因分析 Agent

架构设计

┌──────────────────────────────────────────────────────────────┐
│                  Root Cause Analysis Agent                    │
│                                                              │
│  ┌────────────────────────────────────────────────────────┐  │
│  │  Agent Core (LLM + ReAct Loop)                         │  │
│  │                                                        │  │
│  │  输入: Alert Context                                   │  │
│  │    │                                                   │  │
│  │    ├── Thought: 分析告警类型和上下文                     │  │
│  │    ├── Action: 调用工具收集信息                          │  │
│  │    │    ├── 查询 Trace (Tempo API)                      │  │
│  │    │    ├── 查询 Logs (Loki API, trace_id)              │  │
│  │    │    ├── 查询 Metrics (VictoriaMetrics API)          │  │
│  │    │    ├── 查询 K8s Events (kubectl)                   │  │
│  │    │    ├── 查询近期 Deployment (ArgoCD API)            │  │
│  │    │    └── 查询知识库 (RAG: 历史 incident + runbook)   │  │
│  │    │                                                   │  │
│  │    ├── Observation: 分析收集到的数据                     │  │
│  │    ├── Repeated: 循环直到确定根因                        │  │
│  │    │                                                   │  │
│  │    └── 输出:                                           │  │
│  │         ├── 根因描述 (自然语言)                         │  │
│  │         ├── 影响范围                                    │  │
│  │         ├── 建议修复 (可执行命令)                        │  │
│  │         └── 事故报告 (Markdown)                        │  │
│  └────────────────────────────────────────────────────────┘  │
│                                                              │
│  工具层 (MCP Protocol):                                      │
│  ├── Tempo MCP Server (链路查询)                             │
│  ├── Loki MCP Server (日志查询)                              │
│  ├── VictoriaMetrics MCP Server (指标查询)                   │
│  ├── K8s MCP Server (集群状态)                               │
│  └── Knowledge Base MCP Server (RAG)                        │
└──────────────────────────────────────────────────────────────┘

技术选型

  • LLM:Claude 3.5 / GPT-4o(推理能力强)
  • Agent 框架:LangGraph / CrewAI / 自建(基于 MCP)
  • 工具协议:MCP (Model Context Protocol)
  • 知识库:向量数据库(Qdrant/Milvus)+ 历史 Incident 文档

7.2 自愈 Agent

安全边界:自愈 Agent 只能执行预定义的安全操作,所有操作需要审计日志。

| 自愈场景 | 触发条件 | 执行动作 | 审批 | |---------|---------|---------|------| | Pod 重启 | CrashLoopBackOff > 3 次 | 重启 Pod | 自动 | | HPA 扩容 | CPU > 80% 持续 5 分钟 | 手动确认扩容 | 半自动 | | 降级开关 | 错误率 > 5% | 打开 Feature Flag 降级 | 半自动 | | DNS 切换 | 集群不可达 | 切换到 DR 集群 | 人工 | | 回滚 | 发布后错误率飙升 | ArgoCD 回滚 | 半自动 |

7.3 AI 生成 Post-mortem

自动收集信息

  1. 事故时间线(从 Alert 系统)
  2. 影响范围(从 Metrics 系统)
  3. 根因分析(从 RCA Agent)
  4. 处理过程(从 On-call 操作日志)
  5. 历史类似事故(从知识库 RAG)

输出模板

# Post-mortem: {事故标题}
## 基本信息
- 事故时间: {start} - {end}
- 影响时长: {duration}
- 影响: {affected_services} ({affected_users} 用户)
- Error Budget 消耗: {budget_consumed}%

## 时间线
| 时间 | 事件 | 来源 |
|------|------|------|
| ... | ... | ... |

## 根因分析
{AI 生成的根因描述,含 5-Whys 分析}

## 改进措施
| 优先级 | 措施 | 负责人 | 截止日期 |
|--------|------|--------|---------|
| ... | ... | ... | ... |

7.4 预测性维护

基于设备数据的故障预测

  • 数据源:设备遥测数据(传感器读数、运行参数)
  • 特征工程:统计特征、时序特征、频域特征
  • 模型:XGBoost / LSTM / Transformer(根据场景选择)
  • 输出:故障概率 + 预计故障时间 + 维护建议

7.5 工具选型

| 方案 | 优势 | 劣势 | 推荐 | |------|------|------|------| | 自建(RAG + LLM) | 完全定制、数据不离境 | 开发成本高 | ✅ 长期推荐 | | Datadog Bits AI | 功能完整 | 成本高、数据出境 | 评估 | | PagerDuty AIOps | 告警管理强 | 根因分析弱 | 辅助 | | Grafana AI | 与 Grafana 生态集成 | 功能较新 | 评估 |

推荐路径

  1. 短期(0-3 月):Datadog/PagerDuty 的 AIOps 模块(快速起效)
  2. 中期(3-12 月):自建 RCA Agent + MCP 工具链(核心能力)
  3. 长期(12 月+):全栈 AIOps 平台(根因 + 自愈 + 预测)

第 8 层:需求与研发流程

8.1 需求管理

AI-native 需求流程

┌─────────────────────────────────────────────────────────────┐
│                                                             │
│  用户故事/需求                                               │
│    │                                                        │
│    ├── AI 辅助 PRD 生成                                     │
│    │    ├── 用户故事展开                                     │
│    │    ├── 验收标准生成                                     │
│    │    └── 边界条件补充                                     │
│    │                                                        │
│    ├── 需求评审                                             │
│    │    ├── AI 检查需求完整性                                │
│    │    └── AI 检查技术可行性                                │
│    │                                                        │
│    ├── 技术方案                                             │
│    │    ├── AI 生成技术方案初稿                               │
│    │    ├── AI 评估方案风险                                   │
│    │    └── 人工评审 + 微调                                  │
│    │                                                        │
│    ├── 任务拆分                                             │
│    │    ├── AI 拆分开发任务                                   │
│    │    └── AI 估算工时                                      │
│    │                                                        │
│    └── 开发 → 测试 → 发布                                   │
│         └── AI 全程辅助                                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

8.2 评审机制

| 评审类型 | 参与者 | AI 增强 | |---------|--------|---------| | 需求评审 | PM + 技术 Lead + SRE | AI 检查需求完整性、一致性 | | 技术评审 | 技术 Lead + 架构师 + SRE | AI 评估方案风险、性能影响 | | 代码评审 | 开发者 + AI Reviewer | AI 先审,人工复审 | | 安全评审 | 安全工程师 + AI | AI 自动安全扫描 |

8.3 项目管理

推荐混合模式:Scrum 框架 + Kanban 执行

| 维度 | Scrum | Kanban | |------|-------|--------| | 规划 | Sprint 计划(2 周) | 持续流动 | | 执行 | Sprint Backlog | 看板(WIP 限制) | | 交付 | Sprint Review | 持续交付 | | 改进 | Sprint Retrospective | 定期回顾 |

推荐

  • 需求规划用 Scrum(2 周 Sprint,可预测交付)
  • SRE/运维用 Kanban(持续响应)
  • 工具:飞书项目 / Jira / Linear

8.4 质量卡点

| 阶段 | 门禁 | AI 检查 | |------|------|---------| | 需求 | 需求评审通过 | 完整性、一致性检查 | | 设计 | 技术评审通过 | 架构风险、性能评估 | | 开发 | Lint + 单元测试 > 80% | AI 代码审查 | | 测试 | 集成测试 + 安全扫描通过 | AI 测试覆盖率分析 | | 发布 | 金丝雀指标达标 | AI 自动分析发布指标 | | 监控 | 发布后 30 分钟监控 | AI 异常检测 |


第 9 层:组织与文化

9.1 SRE 团队定位

推荐模型:嵌入式 SRE + 平台 SRE 双轨制

┌──────────────────────────────────────────────────────┐
│                  SRE 组织架构                          │
│                                                      │
│  ┌────────────────┐    ┌────────────────────────┐   │
│  │  平台 SRE 团队  │    │  嵌入式 SRE            │   │
│  │  (3-5 人)      │    │  (按业务线分配)         │   │
│  │                │    │                        │   │
│  │  - 基础设施    │    │  - 设备接入 SRE (1-2)  │   │
│  │  - 可观测性    │    │  - 数据平台 SRE (1-2)  │   │
│  │  - CI/CD       │    │  - App SRE (1-2)       │   │
│  │  - 安全        │    │  - AI 运维 SRE (1-2)   │   │
│  │  - AIOps 平台  │    │                        │   │
│  └────────────────┘    └────────────────────────┘   │
│                                                      │
│  SRE 职责边界:                                        │
│  ✅ 可靠性、可扩展性、性能、监控                        │
│  ✅ On-call、Incident Management、Post-mortem        │
│  ✅ 自动化工具、平台能力                               │
│  ❌ 不做业务功能开发                                   │
│  ❌ 不做运维手工操作(必须自动化)                      │
└──────────────────────────────────────────────────────┘

9.2 稳定性文化建设

不是口号,具体怎么做

| 实践 | 频率 | 参与者 | 度量 | |------|------|--------|------| | 事故演练(GameDay) | 每月 | 全体技术 | 演练覆盖率 | | 混沌工程 | 持续 | SRE + 开发 | 发现的弱点数 | | Post-mortem 复盘 | 每次事故 | 相关团队 | 改进措施完成率 | | Error Budget Review | 每周 | 各团队 Lead | SLO 达成率 | | 可靠性周报 | 每周 | 全体技术 | 事故数/MTTR | | SRE 培训 | 每季度 | 新入职 | 培训完成率 |

9.3 知识管理

AI 驱动的文档体系

  • 自动生成:Post-mortem、Runbook、API 文档由 AI 自动生成初稿
  • 持续更新:AI 监控代码变更,自动提示文档更新
  • 智能检索:LLM + RAG,自然语言查询知识库
  • 知识沉淀:每个 Incident 的经验自动归档,供未来参考

9.4 培训与演练体系

| 培训内容 | 对象 | 周期 | 形式 | |---------|------|------|------| | K8s 基础 | 全体开发 | 入职 | 在线 + 实操 | | SRE 实践 | SRE + Tech Lead | 季度 | Workshop | | On-call 培训 | On-call 人员 | 月度 | Runbook 演练 | | 安全意识 | 全体 | 半年 | 在线培训 | | 混沌工程 | SRE + 开发 | 月度 | GameDay | | AI 工具使用 | 全体开发 | 季度 | 分享会 |

9.5 Blameless 文化落地

核心原则

  • 对事不对人:关注系统和流程失败,不是个人错误
  • 心理安全:任何人可以无顾虑地报告问题
  • 学习导向:每次事故都是学习机会

具体落地

  1. Post-mortem 必须无指责语言

    • ❌ "某人操作失误"
    • ✅ "系统缺乏防护机制,导致误操作未被发现"
  2. 奖励报告:主动报告问题的得到认可

  3. 高管示范:CTO/VP 在复盘会上先分享自己犯过的错

  4. 度量文化:不度量谁引发了事故,度量系统改进了多少


四阶段落地路线图

阶段 1:基础夯实(0-3 月)

目标:解决最紧迫的痛点,建立基础能力

| 维度 | 交付物 | 验收标准 | |------|--------|---------| | 基础设施 | EKS + TKE 集群标准化 | 节点自动伸缩就绪 | | IaC | Terraform 管理核心基础设施 | terraform apply 可复现环境 | | GitOps | ArgoCD 部署到生产集群 | 所有服务通过 ArgoCD 部署 | | 可观测性 | OTel + VictoriaMetrics + Loki + Grafana | 核心服务 logs/metrics/traces 可查 | | 告警 | 基础告警规则 | P0 告警 5 分钟内通知到人 | | EMQX | EMQX on K8s 集群 | 支持 50 万连接 | | CI/CD | GitLab CI 标准流水线 | 所有服务 CI 自动化 | | SLO | 定义核心 SLO | 5 个核心服务有 SLO | | On-call | 建立轮值机制 | 7×24 覆盖 | | 安全 | Trivy 镜像扫描 | 所有镜像 CI 自动扫描 |

人力:3-5 人专注 + 业务团队配合 工具成本:~5,000/月

阶段 2:能力建设(3-6 月)

目标:建立核心平台能力,AI 开始介入

| 维度 | 交付物 | 验收标准 | |------|--------|---------| | Karmada | 多集群联邦 | 跨集群应用分发 | | Service Mesh | Istio Ambient 灰度 | 核心服务 mTLS | | API 网关 | APISIX 双云部署 | 统一入口 + 限流 | | Kafka | 生产级 Kafka 集群 | 百万 TPS 吞吐 | | EMQX | Kafka Data Bridge | 设备数据直通 Kafka | | Flink | 实时计算平台 | 实时在线设备数、故障率 | | 数据湖 | Iceberg on S3/COS | 原始数据入湖 | | OLAP | StarRocks 集群 | 核心报表查询秒级 | | AI Code Review | AI Reviewer 接入 CI | 所有 MR 自动审查 | | AI 测试 | AI 生成单元测试 | 核心服务覆盖率 80%+ | | Error Budget | 自动化 Error Budget | 看板 + 自动通知 | | 混沌工程 | Chaos Mesh 部署 | 月度演练 |

人力:5-8 人专注 工具成本:~15,000/月

阶段 3:智能升级(6-12 月)

目标:AI-native 能力全面落地,自动化程度大幅提升

| 维度 | 交付物 | 验收标准 | |------|--------|---------| | 全量 Mesh | Istio 全覆盖 | 所有服务 mTLS + 流量管理 | | EMQX | 百万级连接 | 压测通过 100 万并发 | | Feature Flag | Unleash 部署 | 所有重大功能可灰度 | | BI | Superset 上线 | 核心报表自助查询 | | LLM 数据问答 | Text-to-SQL Agent | 自然语言查数据 | | RCA Agent | 根因分析 Agent v1 | 自动分析 P0 事故 | | 智能告警 | AI 异常检测 + 降噪 | 告警量减少 50%+ | | 自愈 Agent | 预定义自愈场景 | 自动扩容、自动降级 | | AI Post-mortem | 自动生成复盘报告 | 所有 P0+ 自动生成 | | AI 需求辅助 | AI 辅助 PRD + 技术方案 | 团队使用率 > 50% | | DevSecOps | 全链路安全 | 安全左移全覆盖 | | Post-mortem 文化 | 所有 P1+ 必须复盘 | 改进措施完成率 > 80% |

人力:8-12 人 工具成本:~30,000/月

阶段 4:规模化与精细化(12-36 月)

目标:千万级规模,全栈 AIOps,行业领先

| 维度 | 交付物 | 验收标准 | |------|--------|---------| | 千万级 | 全链路千万级能力 | 压测通过 | | 边缘计算 | K3s 边缘集群 | 边缘智能 + 离线 | | 预测性维护 | 故障预测模型 | 设备故障预警准确率 > 85% | | 全栈 AIOps | 自建 AIOps 平台 | 替换商业工具 | | 数据治理 | 全链路数据血缘 | 数据质量评分 | | 多租户 | 数据隔离 + 资源隔离 | 大客户独立资源 | | AI Agent | 全栈 AI Agent | 开发 + 测试 + 运维全链路 AI | | 全球化 | 多区域部署 | 全球就近接入 | | FinOps | 成本优化闭环 | 云成本优化 30%+ |

人力:12-20 人 工具成本:~80,000/月


资源投入估算

人力投入

| 角色 | 阶段 1 | 阶段 2 | 阶段 3 | 阶段 4 | |------|--------|--------|--------|--------| | 平台 SRE | 2 | 3 | 4 | 5 | | 嵌入式 SRE | 1 | 2 | 3 | 5 | | 大数据工程师 | 0 | 1 | 2 | 3 | | AI/ML 工程师 | 0 | 0 | 1 | 2 | | DevOps 工程师 | 1 | 1 | 1 | 1 | | 安全工程师 | 0 | 0.5 | 1 | 1 | | 合计 | 4 | 7.5 | 12 | 17 |

工具成本(月)

| 工具 | 阶段 1 | 阶段 2 | 阶段 3 | 阶段 4 | |------|--------|--------|--------|--------| | Datadog/商业可观测性 | 1,500 | 3,000 | | PagerDuty | 500 | 1,000 | | GitLab (Ultimate) | 500 | 1,000 | | LLM API (AI 能力) | 500 | 5,000 | | 其他工具 | 2,000 | 5,000 | | 合计 | 5,000 | 15,000 |

云资源成本(月)

| 资源 | 阶段 1 | 阶段 2 | 阶段 3 | 阶段 4 | |------|--------|--------|--------|--------| | K8s 集群 | 8,000 | 40,000 | | Kafka 集群 | - | 5,000 | 1,000 | 5,000 | 500 | 3,000 | 500 | 2,000 | 5,000** | 30,000 | $80,000 |

总成本汇总(月)

| 阶段 | 人力成本 | 工具 | 云资源 | 总计 | |------|---------|------|--------|---------| | 1 (0-3 月) | ~2,000 | 47,000** | | 2 (3-6 月) | ~5,000 | 95,000** | | 3 (6-12 月) | ~10,000 | 160,000** | | 4 (12-36 月) | ~15,000 | 265,000** |

人力成本按中国一线城市薪资水平估算(含社保等)


业界案例支撑

Google SRE

  • 实践:SLI/SLO/SLA 体系发源地,Error Budget 概念首创者
  • 参考:《Google SRE Book》《Google SRE Workbook》
  • 最新:2025 SRE 报告显示,采用 SRE 实践的团队宕机时间减少 50%,可靠性提升 40%
  • 对我们的启发:Error Budget 驱动决策,Blameless Post-mortem 文化

Meta (Facebook)

  • 实践:大规模自动化 Incident Management,混沌工程常态化
  • 参考:PubSub + 大规模实时数据处理
  • 对我们的启发:自动化程度极高,人工干预最小化

阿里巴巴

  • 实践:双 11 稳定性保障体系,全链路压测,应急预案
  • 参考:Chaos Blade(混沌工程工具)、ARMS(应用实时监控)
  • 最新:2024-2025 年 AI 运维平台,基于 LLM 的根因分析
  • 对我们的启发:全链路压测方法、应急预案体系

字节跳动

  • 实践:微服务治理平台(Service Mesh 大规模落地)、Bytedance Mesh
  • 参考:大规模 Flink 实时计算,数据平台建设
  • 最新:2024-2025 年内部 AIOps 平台,LLM 辅助运维
  • 对我们的启发:Service Mesh 大规模实践经验、实时数据平台

Amazon/AWS

  • 实践:Well-Architected Framework,Operational Excellence Pillar
  • 参考:2025 re:Invent 发布 AIOps 加速事件响应,Q Developer 集成成本优化
  • 对我们的启发:Operational Review 机制、自动化运维工具

Microsoft Azure

  • 实践:Azure reliability engineering, Chaos Studio
  • 最新:2025 年 AI 辅助运维(Copilot in Azure)
  • 对我们的启发:混沌工程即服务、AI 辅助容量规划

EMQX 用户案例

  • 蔚來汽车:千万级车联网连接,EMQX + Kafka 架构
  • 很多 IoT 企业:百万级设备接入,EMQX on K8s
  • 对我们的启发:MQTT → Kafka 直通架构已验证

附录

A. 技术选型速查表

| 领域 | 首选 | 备选 | |------|------|------| | 容器编排 | K8s (EKS + TKE) | - | | 集群联邦 | Karmada | Liqo | | CNI | Cilium | Calico | | IaC | Terraform + Terragrunt | Pulumi | | GitOps | ArgoCD | Flux | | Service Mesh | Istio Ambient | Linkerd | | API 网关 | Apache APISIX | Kong | | 消息队列 | Apache Kafka (KRaft) | Pulsar | | MQTT Broker | EMQX Enterprise | Mosquitto | | 时序数据库 | TDengine | TimescaleDB | | 实时计算 | Apache Flink 2.0 | Spark Streaming | | 数据湖格式 | Apache Iceberg | Hudi | | OLAP | StarRocks | ClickHouse | | BI | Apache Superset | Metabase | | 监控 | VictoriaMetrics | Prometheus | | 日志 | Grafana Loki | ELK | | 链路追踪 | Grafana Tempo | Jaeger | | Dashboard | Grafana | - | | Feature Flag | Unleash | LaunchDarkly | | 安全扫描 | Trivy + Snyk | - | | 混沌工程 | Chaos Mesh | LitmusChaos | | LLM | Claude 3.5 / GPT-4o | 本地部署模型 |

B. 关键指标(北极星)

| 指标 | 阶段 1 目标 | 阶段 4 目标 | |------|-----------|-----------| | MTTR (平均恢复时间) | < 60 分钟 | < 5 分钟 | | MTBF (平均故障间隔) | > 720 小时 | > 2160 小时 | | 部署频率 | 每周 | 每天 | | 变更失败率 | < 15% | < 5% | | SLO 达成率 | > 95% | > 99.5% | | AI 辅助覆盖率 | 10% | 80% |


文档维护说明:本文档随项目推进持续更新,每季度 Review 一次技术选型和路线图。

下一步行动

  1. 团队 Review 本文档,确认技术选型
  2. 成立 SRE 工作组(3-5 人),启动阶段 1
  3. 2 周内完成核心 SLO 定义
  4. 1 个月内完成可观测性基础建设