生产风险管理
$e^x$效应
在生产环境下,所有服务的可用性都不可能是100%,大多数企业都会尽量的向100%靠近,但是在极度接近100%的过程中,成本也会成指数上涨。可以理解为可靠性每提升一个等级,就会指出更多的成本,类似于$e^x$函数。
风险管理
规避风险的成本主要可以分为两部分:
计算资源成本:包括服务器成本和运维成本
机会成本:由某组织承担,构建资源分配和减少风险系统、监控。
风险度量
风险度量的指标主要是服务的可用性,但是可用性通常被分为两种:
基于时间
基于时间的服务可用性主要是衡量服务在整个服务时间内的可用时间,其计算公式为$\frac {T_e} {T_a}$。
基于请求
基于请求的服务可用性主要是衡量正确请求在所有请求中的比例,其计算公式为$\frac {R_e} {R_a}$。
服务风险容忍
可用性目标及可用性容忍
可用性目标和可用性容忍通常是一个服务的最低可用性,如果低于这个可用性就可能导致用户对该服务产生负面的评价,同时也会影响服务的收入和上游甲方的评价下降。所以该部分应该更加专注于消费者。
故障类型
常见的故障主要是宕机故障,但是其他种类的故障也不容忽视。比如用户信息返回错乱,A用户可以免鉴权等操作直接可以查到B用户的个人信息甚至隐私信息,这样的服务就不能满足服务的几个基本特性之一的安全性。所以在用户侧的认知看来,安全故障的权重是高于宕机故障的,因为安全故障在很大程度上可能会损害用户对于该种服务的信任程度。所以在安全面前,质量应该让路。
成本
前面说过,可用性和成本并非是线性的,而是乘方关系。对于常见服务来说,可能99.95%的可用性已经足够了,但是如果想把服务优化到99.99%,可能需要花费100万的成本,如果想进一步提升,将可用性提升到99.999%,就可能会花费1000万甚至更高。通过成本和可用性的衡量可以得出,在用户容忍的范围内,应该做到成本和可靠性平衡。
其他风险容忍
对于其他风险,只要集中在延迟方面。如打开网页速度缓慢等情况。对于普通网页来说,过长的相应周期会导致用户对该网页的评价降低。如广告服务,响应时间过长可能在用户侧的评价变化不会很大,但是在广告主会对服务的评价产生很大的变化、
基础设施风险容忍
可用性目标及可用性容忍
定义和服务风险容忍相同。
故障类型
该部分的故障可能存在偏差。如高消耗低延迟的服务请求,用户想要的是队列中无数据,即处理速度够快。但是对于高IO的请求来说,希望队列中永远都不为空,这样可以最大程度上降低因为CPU空闲导致的效率低。所以对于基础服务来说,是不是故障完全取决于基础设施种类。
成本容忍
权衡低延迟和高IO两种基础设施,可以得出一个这种方案,即按照计算需求进行资源配比,创建两套计算集群,每个集群做与自己性能相匹配的job,这样可以提高资源的合理配置率和计算的质量。