B. Google SRE指导思想
拥抱风险
服务质量目标
服务质量指标
常见指标
错误率
系统吞吐量
可用性
持久性:数据能够完整保存的时间
等等
分类
通用的指标:正确性
用户可见的服务系统:可用性、延迟、吞吐量
存储系统:延迟、可用性和数据持久性
大数据系统:吞吐量、端到端延迟
汇总
平均值:掩盖分布变化和受长尾效应影响
分布(百分位)
标准化:需要形成SLI模板
汇总间隔:每 1 分钟汇总一次
汇总范围:集群中的全部任务
度量频率:每10秒一次
包含哪些请求:从黑盒监控任务发来的 HTTP GET请求
数据如何获取:通过监控系统获取服务器端信息得到
数据访问延迟:从收到请求到最后一个字节被发出
服务质量目标:某个指标的目标值或者目标范围
目标定义
目标的选择
不要仅以目前的状态为基础选择目标:例如系统重构会影响到SLO等
保持简单:质量指标尽可能的简单
避免绝对值:目标以区间为宜,系统在没有延迟增长的情况下无限扩张或许能够做到,但是代价也是巨大的
SLO越少越好
不要追求完美
案例:Chubby:计划内停机。当Chubby的SLO远超预期的时候,会人为地停止服务,从而找出哪些服务对Chubby不合理的依赖。
服务质量协议
分布式系统监控
观点
Google趋向于使用监看和快速的监控系统配合高效的工具进行事后分析。我们会避免任何“魔法”系统 --- 例如试图自动学习阈值或者自动检测故障原因的系统
监控类型
白盒监控
黑盒监控
4个黄金指标
延迟:处理某个请求所需要的时间
流量:HTTP请求数量,或者网络I/O速率,或者并发会话数
错误:有可能是显示错误、隐式错误(返回错误信息)、或者策略性错误(比如说超过1s返回就算错)
饱和度:很多服务在资源占用达到100%之前,性能就已经严重下降了
长尾问题:例如平均响应时间100ms,但是1%的请求会占到5s
分位数统计
分组:比如说0~10ms请求数,30~100ms请求数,等等
不同指标采用不同的精度
比如
CPU 1分钟的平均负载,可能措施峰值
年度可用性在99.9%的服务每分钟检测1~2次可能过于频繁
年度可用性在99.9%的服务每分钟检测磁盘容量可能过于频繁
等等
战术
短期可用性和长期可用性之间的冲突和平衡
自动化系统
琐事
手动性
重复性的
可以被自动化的
战术性的
没有持久价值
与服务同步线性增长
价值
一致性:如果是人工操作,无法保证针对同一个故障每次操作结果都是一致的
平台性
修复速度快
行动速度更快
节省时间
类型
脚本自动化
Borg/Kubernetes
上线自动化
发布工程
B. Google SRE指导思想
猜你喜欢
转载自blog.csdn.net/micklongen/article/details/89739472
今日推荐
周排行