SLA(Service Level Agreement)服务等级协议

它描述是双方的一种约定,是一种服务可用性的指标。服务可用性也是用百分比表示,但是与TP线含义不同

tp99%表示 满足99%的请求所用的最大响应时间

可用性99%表示一定时间内提供服务的停机时间。

拿一年为例

1年 = 365天 = 8760小时

99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时

99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟

99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟

SLA提供的可用性越高,那么一年内停机的时间越小。高可用的一种量化指标

SLA可用性计算公式:可用性指标 = 正常请求 / 全部请求

 不可用指标统计:接口异常、超时、特定返回值异常。也就是说这些都是不正常请求

 

既然SLA是保证服务的可用性的,那我把服务响应时间调成N高,岂不是美滋滋,可用性大大的升,嘿嘿,想一想都\(≧▽≦)/激动

哼,小样,在SLA的基础有有个SLO (服务等级目标)

准确的说SLA = SLO + 后果

SLO指定了服务所提供功能的一种期望状态。SLO里面应该包含什么呢?所有能够描述服务应该提供什么样功能的信息。服务提供者用它来指定系统的预期状态

上面太官方,说个例子

 

比如以下SLO:

 

  • 每分钟平均qps > 100k/s

  • 99% 访问延迟 < 500ms

  • 99% 每分钟带宽 > 200MB/s

所以现在很清晰了,SLO定义的这个服务要达到的指标,再次基础上定义SLA,服务的可用性。当然还有个指标是SLI,这是服务测量指标的意思,SLO使用SLI定义,按上面的例子,SLI就是qps,延迟,带宽

清楚了SLO,那么既然SLA = SLO + 后果

后果是啥?,后果是一种奖惩措施, 例如Amazon,如果达不到SLA的承诺,Amazon会提供服务补偿,如果达不到 99.9%的服务水平,那么Amazon将减免下个月10%的费用。如果可用性下降到99.0%以下,换算后相当于一个月内至少有将近7个小时无法服务, 那么Amazon将减免25%的费用