SLA(Service Level Agreement,服务级别协议)是服务提供商与客户之间达成的一种协议,用于定义服务的级别、性能、可用性等方面的具体要求。
SLA 的定义通常会包含服务的可用性指标,例如服务的正常运行时间、停机时间、响应时间等。这些指标用于规定在特定的时间范围内,服务提供商应该保证服务的可用性在一定的水平之上。如果服务在指定的时间内无法达到 SLA 中定义的可用性指标,则认为服务不可用。
不可用(Unavailability)是指在一定的时间内,服务无法提供或不能正常工作的状态。
制定
制定有效的 SLA(Service-Level Agreement,服务级别协议)需要考虑以下几个关键因素:
-
明确服务范围和目标:确定所提供的服务具体内容,包括服务的功能、性能、可用性等方面的要求。明确双方对服务的期望和目标。
-
定义服务级别指标:选择合适的指标来衡量服务的质量和性能,如响应时间、解决问题的时间、可用性百分比等。这些指标应该是具体、可衡量和可追踪的。
-
确定服务级别目标:为每个服务级别指标设定具体的目标值,例如响应时间不超过 X 分钟,可用性达到 Y%等。目标应该是合理、可实现和具有挑战性的。
-
明确责任和义务:确定服务提供商和客户各自的责任和义务,包括服务的提供、监控、报告、问题解决等方面。明确双方的沟通渠道和协作方式。
-
制定监控和报告机制:建立有效的监控机制,定期收集和分析服务级别指标的数据,及时发现问题并采取纠正措施。提供透明的报告,向客户展示服务的绩效和达标情况。
-
考虑风险管理:考虑可能影响服务的风险因素,并制定相应的应对措施和预案,以确保服务的连续性和稳定性。
-
灵活性和可协商性:SLA 应该具有一定的灵活性,以适应业务需求的变化。同时,双方应该保持开放的沟通,以便在需要时进行协商和调整。
-
定期回顾和改进:定期回顾 SLA 的执行情况,根据实际经验和客户反馈进行改进和优化,以确保 SLA 始终保持有效和适应业务的发展。
可用性
对于不同的业务场景,可用性的定义差别很大。一些参考
-
https://www.huaweicloud.com/declaration/sla/modelarts.html
-
https://www.volcengine.com/docs/6664/97372
|
| 服务不可用定义 | 服务可用性 |
| — | — | — |
| 方案一 | 定义:连续10分钟无法访问,低于10分钟的不可用时间不计算在内
错误类型:服务宕机、流量太大打挂了、网络问题等 | (该服务周期总时间 - 该服务周期服务不可用时间)/ 该服务周期总时间 * 100% |
| 方案二 | 定义:以五分钟为单位进行统计,如果在该五分钟内错误率超过百分之五十则视为该五分钟服务不可用
**错误类型:**错误率:错误请求数/该时间段内的有效请求数 | ( (服务周期总分钟数 - 服务不可用时间段个数*5)/服务周期总分钟数 ) × 100% |
方案一常用于云服务,不可用是比较明显的。
方案二常用于网站,比较重要的是错误类型的定义,各家定义不一样
-
有的以http非200、有的以普通的错误码计算错误率。现在大多数网站接口错误并不适用http错误码,所以非200错误产生大概率是系统挂掉了。上线问题导致类似提交失败,永远不会产生非200错误,但这种算不算到不可用呢?
-
根据不同的错误类型选择,可以选择错误率超过多少视为不可用。如果是非200,可以设置的高一点,如95%或99%,如果是普通错误码,可以设置的低一点
有了不可用的定义,就可以定义服务可用性了。不可用一般以时间段来计算,可用性时间通过总时间减去不可用时间段就能计算出来。