华为云海量规模下故障定界实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 华为云海量规模下
故障快速定界实践
华为云 / 吴振华
2.
3. 目录
•
•
•
•
可观测性的定义与挑战
华为云可观测性平台设计
华为云故障快速定界实践
可观测性未来与展望
4. 00
好书推荐
Working on legacy
对于一个软件工程师来讲,写代码最痛苦的事情莫过于coding on legacy,但同时又给了
工程师们各种说辞:
* 这些代码太烂了,改起来太费劲【需要更多人】
* 这事做不到,因为以前系统架构问题导致的【责任不在我】
* 经过我的修改,现在已经好很多了,工单数量大批下降【我功劳显著】
* 问题在于:下一个接手这些“你”改过的代码的人其实也在重复说上述3件事情
重构的价值
那么什么时候我们开始讨论需要把现有系统重构:
* 代码确实腐化到无法正常维护,或者新加一个需求代价很大
* 目前代码的技术架构满足不了下一步业务的发展
* 很多特性已经下线作废,却跟有用的代码藕断丝连
* 业务逻辑随着发展分散到不同的应用里,界限不清
* 专家级的未雨绸缪,着眼未来的规划和新技术的应用
* 换老大了,需要立新的flag
5. 可观测性的定义与挑战
6. 01
从监控到可观测性
开发模式
系统架构
部署模式
基础设施
效率要求更高
系统更加复杂
环境动态性更强
上下游依赖更多
可观测性为应对复杂的云上环境及分布式系统的复杂性和动态性
监控:
• 指标和日志来了解系统的状态
• 检测已知的故障模式(故障现象)
可观测性:
• 理解和衡量系统的内部,在由微服务构成复
杂的云体系中,轻松快速从故障定位到原因
仪表盘(监控)
设备运行监测(可观测性)
可观测性平台能力层次模型
数据展示层:按照不同层次模型自定义视图展示能力和监控数据探索能力
主动发现
排错(Degugging),即运用数据和信息
去诊断故障出现的原因;
剖析(Profiling),即运用数据和信息进
行性能分析;
依赖分析(Dependency Analysis),即
运用数据信息厘清系统之前的模块,并进
行关联分析。
业界主流玩家均积极跟进,已支持或即
将支持该开源标准
智能分析层:实时异常检测和智能故障根因分析(AI+规则)
数据关联分析层:构筑模型化数据关联查询和统计分析能力
高维度时序数据实时计算&存储层:高维度时序数据计算、存储、查询的性能和成本
数据采集&接入层:关注多源数据接入便利性、采集数据全面性和标准化,聚焦构筑无
侵入式数据采集、开放式数据接入、标准化数据模型和统一监控元数据能力
7. 02
疫情防控回顾
策略:一、保证核酸检测的完整性和关联性;二、优化密接准确性和可操作性;三、降低新冠病毒的重症率和爆炸面;四、管控兼顾成本、民生。
检测频率:1天、3天;
主动检测:流动性人口卡点;
异常症状定义:咳嗽、发烧、呼吸困难
发烧定义:37度;
隔离措施:个人隔离、小区隔离、封城;
风险等级:低风险、中风险、高风险
检测机构
核酸检测点
疫情防控中心
体温检测卡
数据
场所卡点:体温检测
密接风险预警
餐饮/酒店
传染范围分析
场所所码扫描:确定停滞地点
支付宝/微信
公共场合准入规则:体温、X天绿码、行程码
移动设备
影响面分析
机场
基于定位的行程轨迹
火车站
华为云故障处理流程
故障发现
故障定级
WarRoom
故障定界
初步领域切割对比
故障恢复
故障回溯
故障改进
8. 03
三个问题
个体、简单
三个问题 三个挑战
如何准确定义个体异常 个体异常的快速发现
如何准确定义集体异常
向后扩散
向前溯源
如何快速的发现异常并恢复异常
个体与集体的关联关系
系统全面可观测性的应用
集体、复杂
9. 华为云可观测性平台设计
10. 10
华为云监控定义
通过监测软件/硬件运行状态,达到指导技术
运维和商业运营的目的,即监控=监测+控制
监测(可观测性)
以运维为目的的监控业界趋于成
熟,资源层、应用层、依赖关系等各
项场景化能力建设逐渐完善,并结合
AI在探索性进展;
运营数据
运维数据
Logging
Metric
Tracing
以运营为目的的监控业务占比不
足5%,结合云成为基础设施的大背景,
中小企业上云,有巨大潜在商业价值!
控制(价值目的)
监测软件运行数据(可观测性)
采集
计算
控制
存储 分析 消费
配置 扩维计算 聚合计算 数据存储 根因分析 自定义视图
版本一致性
配置即代码 实时扩维
标签管理 实时性能
多维聚合 存储成本
多级存储 依赖链路
爆炸半径 健康度大屏
服务视角拓扑
数据采集 日志转指标 告警计算 数据查询 亚健康诊断 定制化消费
采集标准
采集方法 实时性能
转义解析 极致性能
多维聚合告警 分析算子
后置聚合 故障预测
异常检测 定制Action
场景化预置
监控即发现 监控即定界
监控即定级 监控即恢复
以运维为目的的控制重在保证可
靠性可用性,自动化运维,降低资源
成本和人力看护成本,提升对于异常
情况响应速度;
运营控制
运维控制
购物车
放弃率 自动扩容
审计预警 容器漂移
精准营销 流量调度
以运营为目的的控制本身在创造
利润,基于计算规则产生操作,结合
数字化平台DP能力建设实时商业自动
运营能力。
11. 11
华为云可观测性平台
场景化的监控平台能力
灵活编排
CloudScope全景监控
可观测性
场景化
CloudScope租户监控
CloudScope网络监控
主机监控 容器监控 站点监控 全局预警 租户实例监控 站点监控 指标告警 服务监控 黑盒拨测监控 网络硬件监控 路由监控 Internet质量
监控
链路监控 SLO 告警汇聚 监控告警 自定义看板 监控定制大屏 多生态接入 数据报表 流监控 网络诊断 监控告警 网络拓扑
全景监控业务底座
租户资源监控业务底座
网络监控业务底座
面向业务本质建立稳定的模型标准,兼容opentelemetry开源生态
可观测性 四大领域模型
模型
指标领域模型
日志领域模型
稳定开放
Metrics Domain
调用链领域模型
Logs Domain
告警领域模型
Traces Domain
Alarm Domain
统一的可观测性底座
配置
采集
监控告警配置即代码
Monitor Alarm As Code
可观测性
底座
指标代码化
告警代码化
视图代码化
标准模型&协议
Standard Model&Protocol
指标 metric
Infrastructure As Code
指标配置
SPI
告警配置
SPI
视图配置
SPI
通用采集管道
Universal collection pipeline
指标计算
Metrics Calculation
调用链 trace
事件 events
指标流式扩维
SDK
Opentelemetry
AGENT
分析
指标日志查询分析
告警计算
Metrics Storage
Alarm Calculation
后置聚合
查询分析
API
指标存储
时间维度
空间维度
开放式SPI
事件/指标/日志/链路时序数据
Metrics Storage
资源拓扑
网络拓扑
日志存储
Log Storage
行为分析
高阶算子
日志流式转指标
根因分析
Root Cause Analysis
服务拓扑
5m/1h/1d
标签
Scripts
存储
指标流式聚合
三方接入
Open Access
聚焦根技术
告警汇聚/告警抑制
端侧预聚合
日志 log
基础设施即代码
计算
GeminiD
B
分布式自研引擎
CSS
Behaviaor Analysis
指标探索
Service On Service 基于弹性伸缩、故障隔离的云服务构建
云服务
Resource Formation
GeminiDB
DII Maas
CSS
服务化
MRS
DWS
异常分析
12. 华为云快速定界实践
13. 21
问题定义:指标、症状、生病/故障
体温<37℃
指标
CPU<90%
血压<120/80mmHg
MEM<70%
血压<120/80mmHg
症状
生病
系统指标
症状 对外可见
故障 对客户可见
80DISK<80
是否咳嗽
接口响应时长
是否流鼻涕
确诊新冠
指标
接口吞吐量
个体、简单
确定服务不可用
对象的定义是面向场景的相对关系
集群是个体对象的聚合新对象
集体、复杂
14. 22
如何准确有效的发现症状
降噪方法:多个数据异常定义为异常
时间窗和连续点关于3个异常点检测对比
单次阈值冲高通常采取降噪
不做告警
CPU90%阈值水位
CPU90%阈值水位
节点A
节点A
0
1
2
3
4
5
6
7
8
0
9
1
2
3
4
5
6
5分钟时间窗首次告警
命中绿色三个点
7
8
9
连续3次首次告警
命中红色三个点
时间窗比连续次数统计在抖动阶段即可发现问题快整个抖动时间
基于单节点异常后聚合的集群异常
多节点实时聚合的集群异常
CPU90%阈值水位
节点A
CPU90%阈值水位
节点A
节点A异常
节点A异常
CPU90%阈值水位
节点B
节点B
节点B异常
CPU90%阈值水位
节点C
节点C异常
0
1
2
CPU90%阈值水位
北京四Region
三个节点异常聚合定义集群异常
3
4
节点B异常
CPU90%阈值水位
节点C
节点C异常
0
1
2
北京四Region
同一窗口三个节点指标异常定义集群异
常
3
相同采集周期下(采集频率即成本)实时空间聚合在集群异常问题发现比基于异常节点异常数据后再聚合快2分钟
4
15. 23
如何基于症状快速定位根因
云服务订阅
统一数据源
指标
链路
日志
统一事件中心
租户/服务/硬件/网络异常、变更等
事件
告警
数据关联模型
SLI/SLO告警或事件
1
4
因果要素图谱生成器
迭代
识别
数据收集
对象链构建
2
影响分析
根因分析引擎
3
新增指标
及因果知识
场景化决策模型
告警指标探索
图谱式探索
通用因果知识
软件故障
图谱生成
CloudMap
服务依赖、资源依赖、网络依赖
环境故障
硬件故障
网络故障
专有因果知识
智能分析模型
HWQL探索
逐步生长的时空多维因果要素图谱
服务依赖+服务Trace指标+租户标签过滤
时间维度生长
资源
依赖
+时
间窗
事件
Service A
VM1
事件
日志
VM2
告警
指标
事件
Service B
VM3
VM4
日志
指标
事件
Service C
VM5
告警
网络1
物理机2
网络2
VM6
指标
告警
告警
重启
物理机1
日志
物理机3
网络3
变更
告警
网络
拓扑
+跟
踪
16. 24
如何基于病况预防关系方的影响
属性(指标)
对象
隐患对象
故障对象
1分钟发现
提前告警
5分钟定界
10分钟自愈
告警即定界
提前告警
时间流
故障影响关系
C应用
B应用
A应用
告警1分钟发
现
边-关系
5分钟恢复
容灾预案
免受影响
基于依赖快速定界
基于依赖预警
基于多维指标快速定界
容灾预案启动
自愈/手动恢复
17. 25
华为云海量实例下立体依赖网中快速定界实践案例
变更
事件
客户端读
写异常
redis.clients.jedis.exceptions.
JedisConnectionException:
****************************
CES Agent
App
租户ECS
流量下跌
Redis
主
AOM Agent
硬件监控
Redis节点
硬件
告警
物理机
Redis
备
AOM Agent
硬件监控
Redis节点
物理机
主备切换
C
A
R
Redis
主
节点
HA
ECS HA
AOM Agent
硬件监控
Redis节点
物理机
硬盘损坏
C
E
S
A
O
M
C
M
C
C
M
S
C
L
S
M
N
E
t
S
M
A
R
T
IT
EventDB
redis.clients.jedis.exceptions.
JedisConnectionException:
**************************** 客户端读
CES Agent
App
写异常
客户侧
租户ECS
流量下跌
华为侧
DCN1
Redis
实例1
AOM Agent
Redis
实例2
AOM Agent
Redis节点
Redis节点
机房间网
络异常
DCN2
Redis
实例3
AOM Agent
Redis节点
Redis
实例4
AOM Agent
Redis节点
18. 可观测性未来与展望
19. 30
监控发展历程
DEV
性能优化
监控设计
问题定位
容量规划
架构依赖
角色 角色场景 监控场景
BOSS/CXO
运维 业务方向决策,绩效评估等 大屏,报表,决策,报警
值班,日常变更,问题解决,风险
评估,例行演练 大屏,值班,变更性能数据对比,
安全风控,故障定位与解决,故障
演练,报表,报警
产品/工具的交付上线和运营 产品体验,活动效果对比,报表
产品交付上线,软件生命周期端到
端,功能性能持续优化 大屏,值班,性能调优,故障定位
与解决,产品体验,报警
开发&测试环境
发
布
软件生命周期
灰度&现网环境
变更风险
故障定位
故障恢复
前提
产品经理/运
营
研发
测试
安全
故障发现
故障定界
SRE
增强
测试全流程活动,故障模拟演练 性能调优,故障复盘,产品体验
安全全流程活动,安全攻防演练 安全风控,安全变更对比,攻防演
练,报警
软件行业的发展
监控对
象
单体系统 集群
单机服务 集群服务
云原生
云计算1.0
微服务
微服务
ServiceMesh
微服务
不确定
ServerLess
?
监控理论的演进
理论
监控方
法
单点监控
单
指
标
告
警
资
源
监
控
个人感冒:单一故障感知
应
用
监
控
一体化监控
多
端
采
集
聚
合
分
析
多
指
标
告
警
日
志
分
析
可观测性
调
用
链
流行性感冒:集体故障感知
全
局
视
图
标
准
化
采
集
链
路
分
析
根
因
定
界
根
因
定
位
行
为
分
析
智能化
自
我
保
护
故
障
预
判
新冠疫情防控:集群细粒度溯源&影响
异
常
检
测
采
集
智
能
化
智
能
阈
值
流
量
预
测
?
亚
健
康
诊
断
20. 31
面向目的可观测性能力探索
通过监测软件/硬件运行状态,达到指导技术
运维和商业运营的目的,即监控=监测+控制
监测(可观测性)
以运维为目的的监控业界趋于成
熟,资源层、应用层、依赖关系等各
项场景化能力建设逐渐完善,并结合
AI在探索性进展;
运营数据
运维数据
Logging
Metric
Tracing
以运营为目的的监控业务占比不
足5%,结合云成为基础设施的大背景,
中小企业上云,有巨大潜在商业价值!
监测软件运行数据(可观测性)
采集
计算
控制(价值目的)
控制
存储 分析 消费
配置 扩维计算 聚合计算 数据存储 根因分析 自定义视图
版本一致性
配置即代码 实时扩维
标签管理 实时性能
多维聚合 存储成本
多级存储 依赖链路
爆炸半径 健康度大屏
服务视角拓扑
数据采集 日志转指标 告警计算 数据查询 亚健康诊断 定制化消费
采集标准
采集方法 实时性能
转义解析 极致性能
多维聚合告警 分析算子
后置聚合 故障预测
异常检测 定制Action
场景化预置
以运维为目的的控制重在保证可
靠性可用性,自动化运维,降低资源
成本和人力看护成本,提升对于异常
情况响应速度;
运营控制
运维控制
购物车
放弃率 自动扩容
审计预警 容器漂移
精准营销 流量调度
以运营为目的的控制本身在创造
利润,基于计算规则产生操作,结合
数字化平台DP能力建设实时商业自动
运营能力。
21.