19.1.8 交付模型与演进路线
交付模型聚焦“可复制、可迭代、可度量”,建议以“最小可用能力 → 平台化能力 → 全链路SRE”的节奏推进,确保每个里程碑可独立产生价值并可复用。以下给出交付原理草图、阶段能力与可执行示例。
原理草图(交付模型与能力演进):
交付模型与阶段目标(含示例)
1) 工具化阶段:建立资产台账与基础监控
- 交付物:CMDB初版、监控基础告警、日志采集模板
- 示例:用 Ansible 同步主机资产到 CMDB API
# inventory.ini
[prod]
10.0.0.11 ansible_user=ops
10.0.0.12 ansible_user=ops
# 同步资产脚本 sync_cmdb.sh
#!/usr/bin/env bash
set -e
HOSTNAME=$(hostname)
IP=$(hostname -I | awk '{print $1}')
curl -s -X POST http://cmdb.local/api/v1/hosts \
-H "Content-Type: application/json" \
-d "{\"hostname\":\"$HOSTNAME\",\"ip\":\"$IP\",\"env\":\"prod\"}"
echo "已提交资产: $HOSTNAME $IP"
# 批量执行
ansible -i inventory.ini prod -m script -a "sync_cmdb.sh"
预期效果:CMDB 中出现对应主机记录。
2) 平台化阶段:统一入口、权限与流程
- 交付物:统一运维门户、RBAC权限、审批流程
- 示例:平台API优先 + 统一入口(Nginx反向代理)
# /etc/nginx/conf.d/ops-portal.conf
server {
listen 80;
server_name ops.local;
location /cmdb/ { proxy_pass http://cmdb.local/; }
location /monitor/ { proxy_pass http://prometheus.local/; }
location /deploy/ { proxy_pass http://jenkins.local/; }
}
nginx -t && systemctl reload nginx
预期效果:通过 ops.local 统一访问各平台模块。
3) 数据化阶段:可观测性与指标体系
- 交付物:指标/日志/链路统一、SLO与MTTR可度量
- 示例:Prometheus 规则与告警
# /etc/prometheus/rules/ops-platform.yml
groups:
- name: ops-platform
rules:
- alert: HighErrorRate
expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
for: 10m
labels:
severity: critical
annotations:
summary: "5xx错误率过高"
curl -s http://prometheus.local/-/reload
预期效果:产生告警并可追踪MTTR。
4) 智能化阶段:预测性运维与成本优化
- 交付物:容量预测、异常检测、自动修复
- 示例:K8s自动伸缩策略(HPA)
# hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
kubectl apply -f hpa.yaml
kubectl get hpa
预期效果:CPU高负载时自动扩容。
交付节奏与里程碑模板(可直接复用)
- 里程碑1:资产准确率 ≥ 95%,基础监控覆盖率 ≥ 80%
- 里程碑2:统一入口接入率 ≥ 70%,权限与流程可审计
- 里程碑3:SLO指标覆盖 ≥ 60%,MTTR下降 ≥ 30%
- 里程碑4:自动化修复覆盖 ≥ 20%,资源利用率提升 ≥ 15%
关键命令与排错
1) 交付脚本排错
# 检查脚本执行日志与返回码
ansible -i inventory.ini prod -m script -a "sync_cmdb.sh" -vv
# 典型错误:API 401/403 -> 检查 token 与权限
curl -i http://cmdb.local/api/v1/hosts
2) 统一入口排错
# 检查Nginx反代与上游状态
nginx -t
curl -I http://ops.local/cmdb/
# 典型错误:502 -> 检查上游服务是否可访问
3) 监控规则排错
# Prometheus规则语法校验
promtool check rules /etc/prometheus/rules/ops-platform.yml
4) HPA排错
kubectl describe hpa web-hpa
# 典型错误:metrics not available -> 检查 metrics-server
练习(带预期结果)
1) 将资产同步脚本扩展为写入“业务线、机房”字段,验证CMDB中字段完整性。
2) 为统一入口新增 /log/ 反向代理,确保返回200。
3) 添加一个“磁盘使用率>85%”的告警规则,并触发测试。
4) 在K8s中模拟负载,观察HPA从2扩到4的过程并记录时间。
通过“平台能力清单 + 交付节奏 + 指标体系”的闭环,形成可复制交付模型,并持续迭代演进。