《4-7 徐新龙-运维数据价值提升-基于SLO健康度体系探索与实践.pdf》由会员分享,可在线阅读,更多相关《4-7 徐新龙-运维数据价值提升-基于SLO健康度体系探索与实践.pdf(63页珍藏版)》请在三个皮匠报告上搜索。
1、基于SLO健康度体系探索与实践演讲人:徐新龙运维数据价值提升个人简介蚂蚁集团基础设施团队SRE技术专家毕业于复旦大学信号处理方向从事关于SLO的健康度体系建设,以及异常检测、故障定位、预案推荐等场景下的AIOps实践曾就职于携程技术保障中心,负责AIOps的实践探索和落地在人工智能技术结合运维场景的实践方面有丰富的经验和深入研究徐新龙SLO介绍为什么需要SLOSLO健康度体系如何利用SLO构建系统的健康度AIOps赋能SLO和智能化的结合实践案例基于SLO的实际运维场景介绍CONTENT目 录SLO介绍似曾相识的经历调度器队列有增长,怀疑请求容量有激增Day 0 17:00增大重试时间间隔Da
2、y 0 18:00重启调度器后仍无好转Day 0 20:00调度器性能分析Day 0 23:00定位到调度器的资源变更Day 1 11:00集群状态:服役中服役中集群规模:11K 节点,450K pods集群用途:核心生产业务调度器资源优化Day-5 17:00排查认为是低优先级的容器Day-4 15:00调度器“带病”工作Day-4 Day 0用户开始反馈Day 0 15:00集群状态:服役中服役中集群规模:11K 节点,450K pods集群用途:核心生产业务交付成功率下跌告警Day 0 20:00交付成功率下跌告警Day-4 14:00经典思路-故障驱动事前变更管控事中应急流程事后监控覆
3、盖#SOP#限流#容量伸缩#沉淀专家经验#混沌攻击#注册#审批#过程式潜在问题:EDAEvent-driven ArchitectureK8S主导的Operator体系正在削弱过程式变更的影响力潜在问题:非云-云多样性多样性掌控力掌控力潜在问题:协同Dev vs SRE or Dev+SRE or 平台工程师SLO驱动改被动为主动改被动为主动常用常用SLI含义含义时效性时效性(Latency)任何因果系统不可避免的具有延时,用来衡量和反映系统提供服务的速度快慢可用率可用率(Availability)在时间片维度上反映系统提供服务的能力成功率成功率(Success Ratio)基于服务次数反映系
4、统提供服务的能力吞吐量吞吐量(QPS)实际系统都存在能力上限,对于能够提供或输出服务次数有所要求正确率正确率(Correctness)系统能够正确提供服务的能力,常用于资金核验校对等Service Level Indicator一个可以连续量化的指标,用来反映一个应用或者服务在某一个维度上提供的服务等级。SLIService Level Objective服务等级目标,是对服务能力预期的声明。明确服务目标一致的客户体验平衡效率与稳定性改善用户沟通SLO可用性目标可用性目标周周月月季季年年99%100 min7.2 hours21.8 hours87.6 hours99.9%10 min43.2
5、 min2.18 hours8.76 hours99.99%1 min4.32 min13.1 min52.6 min99.999%6 sec26 sec1.31 min5.26 min99.9999%0.6 sec2.6 sec7.86 sec31.5 sec以可用性目标为例,意味着可以接受的宕机或者不可用时长必须满足以下承诺Service Level Agreement基于目标达成或失败的奖惩机制SLASLA模版建设高价值数据资产原始数据vs.精加工数据聚焦注意力对齐目标减少告警主动+被动式发现驱动SRE日常简化通晒数据可被借鉴的最佳实践传统的传统的Metric监控监控监控实体太多,难以关
6、注到核心对象Metric太多,注意力容易失焦告警量大、告警频繁,疲于应对、容易麻木通过告警被动式的发现异常和故障SRE和研发缺少基于共同目标的沟通机制缺少相对统一的框架和实践驱动SRE工作不能形成可被借鉴、可复制的治理模式提炼通晒数据困难、费力度高SLO健康度健康度建设高价值数据资产SLO健康度Kubernetes缓存缓存中间件中间件应用网关应用网关PaaS数据平台数据平台基础设施域存在众多的异构系统背景+现状基于SLO健康度的架构体系SLOSLOSLOSLOSLOSLOSLO数据流record:pod_creation_request_total_count:delta1m expr:sum
7、 by(cluster,is_job)(sum_over_time(pod_creation_request_count:delta30s1m)record:pod_creation_request_total_count:delta1hexpr:sum_over_time(pod_creation_request_total_count:delta1m 1h)Recording RulesRecording rule-record:PodCreationSLO30d-expr:1 pod_creation_request_error_count:delta30d/pod_creation_r
8、equest_total_count:delta30dPrometheus 单数值模型Prometheus SLO生成表达式时序模型SLO序列在时间维度铺开Service Level Factor服务水平影响因子 SLI的有效维度 SLO的分解维度 故障定位参考SLFService Level Dependencies服务水平依赖影响SLO的关键链路影响SLO的核心拓扑可以是一个SLO或监控项故障定位参考SLD元数据配置dependencies:slx_id:123456789,category:SLO,name:keycomponent-slo,description:component_f
9、requent_restart,priority:1,trigger:.,SLD一段时间内预估的错误容忍量一次变更 一次冒险用Error Budget来衡量这个冒险值不值得错误预算目标错误率SLO阈值选择较短的时间窗口,并计算该窗口的错误率超过SLO阈值时发出告警。=1=1 例如,30天的SLO为99.9%,则过去10分钟内的错误率0.1%时发出错误-alert:HighErrorRate-expr:job:slo_errors_per_request:ratio_rate10mjob=testjob=0.001错误预算告警消耗速率警报燃烧率 告警窗口/告警时间警报触发时消耗的错误预算为:错误
10、预算/错误量 燃烧率 告警窗口触发告警所需要的时间:错误预算+燃烧速率告警-expr:(job:slo_errors_per_request:ratio_rate1hjob=testjob (14.4*0.001)and job:slo_errors_per_request:ratio_rate5mjob=my test job (14.4*0.001)or(job:slo_errors_per_request:ratio_rate6hjob=mytestjob (6*0.001)and job:slo_errors_per_request:ratio_rate30mjob=testjob (
11、6*0.001)severity:page-expr:(job:slo_errors_per_request:ratio_rate24hjob=testjob (3*0.001)and job:slo_errors_per_request:ratio_rate2hjob=testjob (3*0.001)or(job:slo_errors_per_request:ratio_rate3djob=“testjob”0.001 and job:slo_errors_per_request:ratio_rate6hjob=testjob 0.001)severity:ticket多窗口+多消耗速率告
12、警基础能力基础能力数据采集数据存储数据抽取多维透视数据展示通用能力通用能力生态运营生态运营产品能力产品能力围绕SLO数据的能力建设数据清洗模型抽象数据分析异常检测通用定位模型扩展预案推荐智能决策故障自愈SLA运营平台建设数据鉴权流程标准自动化易用性能力建设AIOps赋能为SLO设置合理的目标值?提升SLO告警的时效性和准确度?SLO预警后如何快速定位根源?针对整体SLO目标设定后,下游服务目标如何分解?专家经验如何事先有效地注入到故障应急流程中?如何将SLO和变更成功与否自动关联?SLO在故障定级中如何发挥效用?SLO实践中遇到哪些问题或改进点AIOps PlatformEnabling Co
13、ntinuousInsightsAcross IT OperationsMonitoring(ITOM)AIOps运维场景算法能力智能运维问题定义数字化领域专家知识输入输出定义建模训练及调优人机回圈驱动和演进决策及执行一些常用数据分析能力 居中度量 均值 中位数 众数 离散度量 极差 四分位差 方差 趋势度量 线性回归 指数平滑 ARIMA RNN、LSTM 周期度量 傅里叶变换 小波变换 序列分解数据分析时间域分析频率域分析SLO阈值分析待分析成功率SLO数据统计特性如下:-一般统计特性一般统计特性-最大值:1.00000000 最小值:0.99786642 平均值:0.99998783 中
14、位数:1.00000000 众数:1.00000000 标准差:0.00010559 80线:1.00000000 85线:1.00000000 90线:0.99999874 95线:0.99998956-基线数据统计特性基线数据统计特性-基线平均值:0.99999994 基线标准差:0.00000011-残差数据统计特性残差数据统计特性-残差均值:0.00000060 残差标准差:0.00010558 残差峰度:201.97573294 残差偏度:-13.18331368 残差异常率:7.04861111%-残差正态性检验残差正态性检验-KstestResult(statistic=0.49
15、999976043925565,pvalue=0.0)-SLO推荐值推荐值-Objective:0.999目标值推荐异常检测模型实际观测 预期目标vs.阈值某种运算逻辑或算法网络基于统计规则或机器学习算法做出的预测基于数据分布或场景的经验数值异常检测异常检测准则xf(x)按照经验对残差数据残差数据集做出假设 =;,2=12()222异常判断准则:PauTa 准则 箱体图法 Tukey 检验 Grubbs 检验 Dixon 检验 检验异常检测时间序列预测常用算法:ARIMA 指数平滑 Hot Winters STL分解 频域分析 RNN LSTM异常检测预测+检测”发现异常(I)动态阈值(II)
16、残差变换时间相关性 2 2 相关性打分通用定位通过数据分析,发现相关性,推导因果性依赖相关性Kubernetes拓扑通用定位依赖相关性 构建SLD 维度清洗和标准化 SLF/SLD下钻 服务自动关联 异常打分 元数据检验 标准化输出通用定位空间相关性基于元数据拓扑结构的关联 图数据库模型 构建实体图谱 关联查询通用定位量化异常时间点和事件时间点之间的相关性 =1 11+0代表异常和告警之间的时间间隔时间点对间的相关性多维错误时序的异常检测结合时间相关性 =1 11+01 =1 11+02,=异常绝对量打分 异常相对量打分 异常打分=21()+1,综合打分时间点对结合复杂场景的相关性案例介绍SL
17、O可视化K8S SLO体系SLO故障应急数据通晒高纬度数据汇总和展示,注意力更加聚焦,基于该数据形成SLO共识可观测性直观地反应各个组件的服务能力,提供优化和改善服务水平、稳定性的有效度量掌上运维基于SLO告警触发的多维下钻、故障定位、预案推荐等一站式应急解决方案SLO部分运营实践SLO质量大盘SLO质量大盘SLO拓扑链路Pod Readi nessG atesEtcdAPI ServerKubel etAuthenti cati onAuthori zati onSchedul er ExtenderKube C ontrol l erSchedul erU ser-definedC ont
18、rol l erM utati ng Adm i ssi onW ebhookVal i dati ng Adm i ssi onW ebhookM ul ti pl e Runti m esC RIG PUI m ageDN SRegi sterTraf f i cC N IC SI云原生SLO体系1PaaS LevelDeployment/WorkloadSuccess RateDelivery Latency2Single-Pod LifecycleCreation,Upgrate,DeletionSuccess RateLatency3Track Existing PodsVariou
19、s UnhealthyStatusPod-level Up time4APIServer AvailabilitySuccess RateLatency云原生SLO体系C om ponent SLODN SN ode H eal th SLOPod H eal th SLOPod U pgrade SLOPod C reati on SLOResource Del i very SLOPod Del eti on SLOU p and Dow nstream System SLON etI m ageStorageKube C ontrol l erKube Schedul erExtende
20、r Schedul erU ser-defined W ebhookU ser-defined C ontrol l erM al f uncti oni ng N odeSel f-heal i ngPod Autom ati cM i grati onO pen API SLOEtcdSRE C aresPD&SRE C ares云原生SLO体系SLOSLO应急能力objectives:-name:Pod Creation Success Ratio 1h interval:30d type:rolling alerts:-name:TooManySLOFailuresInAnHouractive:true severity:p0 trigger:type:ErrorBudgetthreshold:0.99 window:1h windowBudgetRatio:0.03minWindowBudget:15运营商1 12 2:0:00 0 PMPM故障预警testyyyy-m m-dd H H:M M:SSyyyy-m m-dd H H:M M:SS1yyyy-m m-dd H H:M M:SS2运营商1 12 2:0:00 0 PMPM故障定位运营商1 12 2:0:00 0 PMPMSLOSLXSLO应急预案推荐总结回顾实践总结SLO平台产品化THANK YOU!