最近项目快落地了,为了显得项目很有用,需要制定一些指标来描述项目的可靠性稳定性等,之前没接触过sre的内容,所以先学习一波。
SRE是指Site Reliability Engineer (网站可靠性工程师)。我的理解是,SRE就是运维的进化形态~负责把控web的稳定,并对各种突发情况做出应对。
通过在网上搜的得知,SRE重要理念有:
SLA (service level agreement):服务等级协议 指整个服务可靠性协议,包含SLO和SLI以及不同情况的应对措施
SLO (service level objective):服务等级目标 字面意思,例如响应时间达10ms
SLI(service level indicator):服务等级对象 例如 可用性、延迟、准确性等
Availability:可用性
Reliability:可靠性
Maintainability :可维护性
SRE的稳定性指标是一套MT开头的缩写,分别是:
MTBF,Mean Time Between Failure,平均故障时间间隔
Pre-MTBF 阶段(无故障阶段,故障演练,预案系统)
Post-MTBF 阶段(无故障阶段,事后总结,事件管理)
MTTR,Mean Time To Repair, 故障平均修复时间
MTTI ,Mean Time To ldentify,平均故障发现时间
MTTK ,Mean Time To Know,平均故障认知时间
MTTF ,Mean Time To Fix,平均故障解决时间
MTTV ,Mean Time To Verify,平均故障修复验证时间
根据项目的需求,选择了一些比较合适的指标进行使用:
可用性比例,为了显得项目很好用,Availability的值越大越好,这项指标可以作为每次向服务器请求服务的参考依据,Availability有两种计算方式:
1)Availability = uptime ÷ (uptime + downtime)
2)Availability = Successful request ÷ Total request
由于我们项目每次使用的时间间隔较大且不稳定,更适合使用第二种计算方式。
2.MTBF,如上文,这是衡量平均故障时间间隔的指标,MTBF的值越大越好,这项指标可以作为解析结果的参考依据:
MTBF = ∑ (TOT) / F ——(TOT:Total Operational Time 总运行时间)
TOT = ∑ (Start of Downtime after last Failure – Start of Uptime after last Failure) —— ∑ (自上次Downtime后的总运行时间)
F = Number of Failures
MTBF也可以写作故障率FR,FR为MTBF的倒数,因此FR的值越小越好:
FR = 1 / MTBF
其他的指标也有相应的公式,当有具体需求的时候就可以用上。