分布式系统的SLA如何定义,世界顶级的SLA长什么样?

1. 什么是SLA(服务等级协议)?

SLA(Service-Level Agreement)服务等级协议,是指系统服务提供者(Provider)对客户(Customer)的一个可量化的服务承诺,常见于大型分布式系统中,用于衡量系统服务是否稳定健康的常见方法

2. SLA(服务等级协议)常用的衡量指标有哪些?

SLA是一种服务承诺,因此指标具备多样性, 业界主流常用指标包含:可用性、准确性、系统容量和延迟

2.1 Availability(可用性)

系统服务能正常运行所占的时间百分比,业界对可用性的描述,通常采用年故障时长。比如,数据中心机房划分为不同等级,如 T1~T4 机房,它们的 可用性 及年平均故障时间如下:

网络服务的可用性,通常也会折算为不能提供服务的故障时间长度来衡量,比如典型的 5 个 9 可用性就表示年故障时长为 5 分钟,如下表所示。

对于许多系统而言,四个9的可用性(99.99%),或每年约52.6分钟的系统中断时间,即可以被认为是具备高可用性

2.2 Accuracy(准确性)

准确性是指系统服务中,是否允许某些数据是不准确或者丢失,如果允许这样的情况发生,用户的容忍度(百分比,可以接受的概率)是多少,常见的衡量方式为:基于服务周期内的错误率计算准确性。

例如,我们在一分钟内发送100个有效请求到系统中,其中有5个请求导致系统返回内部错误,那我们可以说这一分钟系统的错误率是 5 / 100 = 5%,准确率为1 – 5% = 95%

对于云服务而言,计算请求错误率时,计算时间范围越长越有利,因为时间越长,总请求数越多,错误率越有可能降得更低,一般有实力得服务商都会 从客户角度计算错误率,按照5分钟的粒度来计算,因为5 分钟是业界典型的机器故障恢复时间,能够快速修复机器,降低系统的错误率。

最终准确率为:

2.3 Capacity(系统容量)

指系统能够支持的负载量,一般会以每秒的请求数为单位来表示,与CPU的消耗、外部接口、IO等等紧密关联,常见衡量指标:

  • QPS(Query Per Second):每秒处理的查询数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,也即是最大吞吐能力。

  • TPS(Transactions Per Second):每秒处理的事务个数,是软件测试结果的测量单位,一个事务是指一个客户机向服务器发送请求到服务器做出反应的全过程,客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,系统整体处理能力取决于处理能力最低模块的TPS值。

  • 并发数: 系统可以同时承载的正常使用系统功能的用户的数量(同一时间处理的请求/事务数),与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标

  • 响应时间: 一般取平均响应时间

常用评估公式:

峰值QPS或峰值TPS计算原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。

示例:公司早上8:00上班,7:30到8:00这30分钟的时间内用户需登录签到系统进行签到,公司员工总数为1000人,平均每一个员上登录签到系统的时长为5分钟。

  • QPS = 1000/(30*60) 事务/秒

  • RT(平均响应时间为) = 5*60秒

  • 并发数= QPS*平均响应时间 = 1000/(30*60) *(5*60)=166.7

2.4 Latency(延迟)

延迟(Latency),指系统收到用户请求到响应请求之间的时间间隔,在定义延迟的SLA时,常用p95和p99这样的延迟声明,这里的p指的是percentile,也就是百分位的意思,如果p95是1秒的话,那就表示在100个请求里面有95个请求的响应时间会少于1秒,而剩下的5个请求响应时间会大于1秒,P99同理

3. 世界顶级SLA“长”什么样?

3.1 世界顶级的SLA评判标准和基本能力

这里以业界领先的分布式系统 – 阿里云对象存储OSS为例,看看一个世界最顶级的SLA长什么样

3.2 阿里云对象存储OSS SLA

http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201803021527_93160.html?spm=ata.13261165.0.0.7fad7315pw7VWV

1. 定义

服务周期一个服务周期为一个自然月。

有效请求:OSS服务器端收到的请求视为有效请求,但不包括以下类型的请求

(1)未通过OSS身份验证和鉴权失败的请求、欠费请求(HTTP状态码403的请求);

(2)跨区域复制(Region Replication)和生命周期管理(Lifecycle)的后端异步处理发起的所有请求;

(3)获取Bucket列表(GetService) 发起的所有请求;

(4)客户的应用程序受到黑客攻击而发起的请求。

失败请求OSS将HTTP状态码为5XX的请求和因为OSS服务故障导致的用户正常请求未能到达OSS服务器端的请求视为失败请求,但不包括以下类型的请求

(1)因采用不适当的访问模式导致请求超出OSS的规定配额,造成请求被OSS限制的错误请求(HTTP状态码503的请求);

(2)跨区域复制(Region Replication) 和生命周期管理(Lifecycle)的后端异步处理的失败请求;

(3)获取Bucket列表(GetService)产生的失败请求;

(4)慢请求:

1)镜像回源超时的请求(HTTP状态码424的请求);

2)CallBack超时的请求;

3)UDF服务超时的请求;

(5)由OSS服务发起的合理升级、变更、停机而导致的错误请求或服务不可用情况;

(6)客户的应用程序受到黑客攻击而导致被OSS限制的请求。

每5分钟错误根据地域及存储类型分别以每5分钟为单位按照如下方式计算:

每5分钟错误率 = 每5分钟失败请求数/每5分钟有效总请求数*100%

月度服务费用:按一个自然月中客户某一阿里云账号下OSS的地域及存储类型分别统计月度服务费用,如果客户一次性支付了多个月份的服务费用,则将按照所购买的月数或使用量比例分摊计算月度服务费用。

2. 服务可用

2.1 服务可用性计算方式

OSS服务可用性按服务周期统计,根据客户某一阿里云账号下OSS的地域及存储类型(标准型存储、低频访问型存储、归档存储)分别统计服务可用性。若客户某一阿里云账号下存在相同地域、相同存储类型的多个Bucket,将合并计算服务可用性。

服务可用性将根据服务周期内每5分钟错误率之和除以服务周期内5分钟的总个数计算出每5分钟错误率的平均值,按照如下方式计算:

服务可用性=(1-服务周期内∑每5分钟错误率/服务周期内5分钟总个数)*100%  

(注:服务周期内5分钟总个数=12*24*该服务周期的天数)

2.2 服务可用性承诺

存储类型

服务可用性

标准型存储(本地冗余存储)

99.99%

标准型存储(同城冗余存储)

99.995%

低频访问型存储(本地冗余存储)/归档型存储

99.00%

低频访问型存储(同城冗余存储)

99.50%

2.3 如OSS未达到上述服务可用性承诺,客户可以根据本协议第3条约定获得赔偿

赔偿范围不包括以下原因所导致的服务不可用:

(1)阿里云预先通知客户后进行系统维护所引起的,包括割接、维修、升级和模拟故障演练;

(2)任何阿里云所属设备以外的网络、设备故障或配置调整引起的;

(3)客户的应用程序受到黑客攻击而引起的;

(4)客户维护不当或保密不当致使数据、口令、密码等丢失或泄漏所引起的;

(5)客户的疏忽或由客户授权的操作所引起的;

(6)客户未遵循阿里云产品使用文档或使用建议引起的;

(7)不可抗力引起的。

赔偿方案

3.1 赔偿标准

根据客户某一阿里云账号下OSS的地域及存储类型分别统计月度服务可用性,按照下表中的标准计算赔偿金额。赔偿方式仅限于用于支付OSS产品的代金券,且赔偿总额不超过未达到服务可用性承诺的当月该地域下该存储类型所支付月度服务费用总额的50%(不含用代金券抵扣的费用)。

存储类型

服务可用性

赔偿代金券金额

标准型存储(本地冗余存储)

低于99.99%但等于或高于99.90%

月度服务费用的10%

低于99.90%但等于或高于95.00%

月度服务费用的30%

低于95.00%

月度服务费用的50%

标准型存储(同城冗余存储)

低于99.995%但等于或高于99.90%

月度服务费用的10%

低于99.90%但等于或高于95.00%

月度服务费用的30%

低于95.00%

月度服务费用的50%

低频访问型存储(本地冗余存储)/归档型存储

低于99.00%但等于或高于95.00%

月度服务费用的30%

低于95.00%

月度服务费用的50%

低频访问型存储(同城冗余存储)

低于99.50%但等于或高于99.00%

月度服务费用的10%

低于99.00%但等于或高于95.00%

月度服务费用的30%

低于95.00%

月度服务费用的50%

3.2 赔偿申请时限

客户可以在每月第五(5)个工作日后对上个月没有达到可用性的服务提出赔偿申请。赔偿申请必须限于在OSS没有达到可用性的相关月份结束后两(2)个月内提出。超出申请时限的赔偿申请将不被受理。

【添加云技术博主微信】:kinnah333

未经允许不得转载:云技术 » 分布式系统的SLA如何定义,世界顶级的SLA长什么样?

赞 (1)