一、服务质量目标
SLI是服务质量指标(indicators):该服务的某项服务质量的一个具体量化指标。例如:请求延迟-处理请求所消耗的时间
SLO是服务质量目标(Objective):服务的某个SLI的目标值,或者目标范围。SLO的定义是SLI<= 目标值,或者范围下限<=SLI<=范围上限
SLA是服务质量协议(Agreement): 指服务和用户之间的一个明确的,或者不明确的协议,描述了在达到或没有达到SLO之后的后果。
二、SRE是什么
SRE(Site Reliability Engineering),站点可靠性工程师
三、SRE干什么
SRE的最重要的能力是“止损”。如何在变更中止损,如何在业务立项到业务终止全流程止损,如何在突发状况下止损,如何在可预见的不可预见的范围内止损,确保我们的服务以一个非常健康的状态提供服务才是SRE的核心需求。
从立项就开始就要参与进来,知道如何配置与调优;随项目进行,做好流量评估、容量评估、应急预案、预案实施;遇到突发情况对服务的主备切换,提升响应速度,缩小影响范围;在全链路全流程的视角跟踪、发现、预警问题;制度上加强监管、规避失误。
四、SRE和DevOps的区别
DevOps的目标是提高业务系统的交付速度,并为之提供相关工具、制度和服务。
SRE关键词是高扩展性和高可用。
高扩展:指服务用户数量暴增时,应用系统以及支撑其服务可以在不调整系统架构,不强化机器性能,仅仅增加实例数量方式进行扩容。
高可用:应用架构中人一个环节出现不可用时,比如应用服务、网关、数据库等系统挂掉,这个系统可以在可预见的时间内恢复并重新提供服务。
五、SLA指标
可用性
可用性指的是系统服务能正常运行所占的时间百分比。
99.99意味着一年约55分钟的中断时间
99.9意味着每天中断86秒7
准确性
准确性指的是我们所设计的系统服务中,是否允许某些数据是不准确的或者是丢失了的。如果允许这样的情况发生,用户可以接受的概率(百分比)是多少?
怎么计算错误率呢?可以用导致系统产生内部错误(Internal Error)的有效请求数,除以这期间的有效请求总数。
采用性能测试和查看系统日志两种方法评估
系统容量
在数据处理中,系统容量通常指的是系统能够支持的预期负载量是多少,一般会以每秒的请求数为单位来表示。
我们常常可以看见,某个系统的架构可以处理的QPS (Queries Per Second)是多少又或者RPS(Requests Per Second)是多少。这里的QPS或者是RPS就是指系统每秒可以响应多少请求数。
第一种,是使用限流(Throttling)的方式
第二种,是在系统交付前进行性能测试(Performance Test)。
第三种,是分析系统在实际使用时产生的日志(Log)。
延迟
延迟指的是系统在收到用户的请求到响应这个请求之间的时间间隔。
在定义延迟的SLA时,我们常常看到系统的SLA会有p95或者是p99这样的延迟声明。这里的p指的是percentile,也就是百分位的意思。如果说一个系统的p95 延迟是1秒的话,那就表示在100个请求里面有95个请求的响应时间会少于1秒,而剩下的5个请求响应时间会大于1秒。
总而言之,当p95或者p99过高时,总会有5%或者1%的用户抱怨产品的用户体验太差,这都是我们要通过优化系统来避免的。