首页 > 其他分享 >SRE心里话:要求100%服务可用性就是老板的无知

SRE心里话:要求100%服务可用性就是老板的无知

时间:2023-05-25 13:11:53浏览次数:35  
标签:服务 SRE 100% 可用性 停机 SLO 终端用户 BigTable

《SRE Google 运维解密》第3章讲了拥抱风险,一些关键的观点,在这里与大家分享,融入了我自己的一些理解,希望对你有些帮助。

服务可用性必须100%?其实完全没必要

一个服务客户的产品,不需要追求极端的可用性,因为实在是没有必要。比如一个论坛服务,用户使用智能手机来访问,手机本身有可能故障,手机的蜂窝网络可能出问题,如果用的 wifi 本地路由器可能出问题,小区宽带可能出问题,运营商的骨干网可能出问题,这些都不是论坛服务能够控制的。简单来说,用户在一个有着 99% 可靠性的智能手机上,是不能分辨出 99.99% 和 99.999% 的服务可靠性的区别的。

高可靠性带来高成本

99.99% 的可用性,每年不可用时长不能超过 53 分钟,如果是 99.999% 的可用性,每年不可用时长不能超过 5.3 分钟。多了一个 9,不可用时长只是缩减了 47.7 分钟,但是付出的成本可能是巨大的,需要衡量 ROI 是否值得。成本通常来自两个方面:

  • 冗余物理服务器/计算资源的成本
  • 机会成本

机会成本是说,我们把过多的人力投入到稳定性建设上了,导致投入到业务功能开发的人力就变少了,这个机会成本是很难估量的,但是很重要。

如何度量可用性

通常的做法是按照计划外停机时间来度量,比如:

可用性 = 系统正常运行时间 / (系统正常运行时间 + 系统计划外停机时间)

这个计划外停机时间,通常是指系统不可用的时间,比如系统崩溃了,或者系统的某个功能不可用了,或者系统的某个功能的性能下降了,都可以算作计划外停机时间。与计划外停机时间相对的,显然是计划内停机时间,偶尔通知用户,说凌晨3点我会做系统升级,计划停机3分钟,这个3分钟就是计划内停机时间,这3分钟内的不可用,不影响SLA。

但是,很多系统都是分布式的,尤其是 Google,一个服务,通常不会完全不可用,可能某个 region 不可用,但是其他 region 还可用,所以,大型互联网公司的服务通常是不会 100% 不可用的,可能会部分不可用,此时这个计划外停机时间就不好计算了。怎么办?使用请求数量来统计,可用性计算公式变成:

可用性 = 成功请求数 / 总的请求数

这是服务可用性的度量方法,一个大型互联网公司可能有几千个微服务,老板问技术团队,咱们今年的可用性如何?显然没法使用服务层面的数据,那就把众多微服务做个加权平均?也不那么说得通!那公司整体业务的 SLO 应该怎么算?一般是看业务指标,分享一下滴滴的做法,滴滴最核心的业务就是打车,核心就看打车的订单量,如果订单量下跌 10%,就开始计算不可用时长,这是整个公司最重要的可用性指标。这种指标称为北极星指标,我们现在创业就专门做了一个北极星指标的产品,对北极星指标做 VIP 级别的保障。详情可以了解这里

谁来制定SLO?

在 Google,对于服务于终端用户的产品,通常有个产品技术团队,是这个服务的「商业所有者」,这个团队明确知道自己的商业目标,可以拍板 SLO。因为:SLO 最终是服务于商业目标的!

通常来讲,线上 70% 的故障是变更导致的,更好的 SLO 意味着线上变更的频率会降低,但是低频的变更,就意味着有些功能 feature 不能尽快发布给终端用户,终端用户的体验就会变差,竞争对手可能有更花哨好用的功能,我们无法及时跟进。那好,那就更快的变更,更快的变更通常意味着稳定性变差,所以就需要权衡了,这本质上是一个商业取舍,所以,需要商业所有者来拍板。而这个商业所有者,对于服务于终端用户的产品,通常就是产品团队,最终可能是这个业务的负责人最终拍板。

服务于内部的基础设施,比如 BigTable 这样的服务,没有终端用户,那谁来拍板?基础设施类服务,通常是服务于内部其他服务的,此时应该是 BigTable 的研发团队和上游服务所有者一起拍板,制定 SLO。

BigTable 可能同时服务两类上游服务,举例:一类上游服务是面向终端用户的,他们需要更低的延迟,另一类上游服务可能是离线任务,在 BigTable 里存储离线分析数据,他们需要更大的吞吐。低延迟的上游服务希望 BigTable 的请求队列(几乎总是)为空,这样系统可以立刻处理每个出现的请求。而离线分析的上游服务,需要更高的吞吐,希望 BigTable 繁忙,希望请求队列永远不为空。如果拿请求队列长度作为 SLO,就尴尬了...

所以,对于差异化要求比较大的基础设施,通常会拆分成不同的集群,提供不同维度的 SLO。

提升 SLO 的时候要注意 ROI

举个例子,假设某个服务每一个请求的价值是一样的:

  • 可用性目标希望从 99.9% 提升至 99.99%
  • 增加的可用性:0.09%
  • 服务收入:100万美金
  • 改进可用性后的价值:100万 * 0.09% = 900 美金

可用性提升一个 9,收益是 900 美金,如果提升一个 9 的成本低于 900 美金,就是划算的,如果高于 900 美金,就是不划算的。

SLO和错误预算构建过程

  • 产品管理层定义一个 SLO,确定一项服务在每个季度预计的正常运行时间
  • 实际在线时间是通过一个中立的第三方来测算的:我们的监控系统
  • 这两个数字之间的差值就是这个季度中剩余的不可靠性预算
  • 只要测算出的正常在线时间高于 SLO,也就是说,只要仍然有剩余的错误预算,就可以发布新的版本

扩展阅读

标签:服务,SRE,100%,可用性,停机,SLO,终端用户,BigTable
From: https://www.cnblogs.com/ulricqin/p/17430858.html

相关文章

  • SRE心里话:要求100%服务可用性就是老板的无知
    《SREGoogle运维解密》第3章讲了拥抱风险,一些关键的观点,在这里与大家分享,融入了我自己的一些理解,希望对你有些帮助。服务可用性必须100%?其实完全没必要一个服务客户的产品,不需要追求极端的可用性,因为实在是没有必要。比如一个论坛服务,用户使用智能手机来访问,手机本身有可能故障,手......
  • Meta 开源语音 AI 模型支持 1,100 多种语言
    自从ChatGPT火爆以来,各种通用的大型模型层出不穷,GPT4、SAM等等,本周一Meta又开源了新的语音模型MMS,这个模型号称支持4000多种语言,并且发布了支持1100种语言的预训练模型权重,最主要的是这个模型不仅支持ASR,还支持TTS,也就是说不仅可以语音转文字,还可以文字转语音。因为以前对语音方......
  • [Error 10048] error while attempting to bind on address (‘127.0.0.1‘, 8000):
    今天运行程序的时候碰到了这么个问题,因为之前也遇到过这种情况,那时找不到原因重启电脑这方法偶尔能解决,今天就不行了,电脑又没有看到明显的占用这个端口的程序。所以查找资料从根源出发解决。解决方法是:1.进入命令行(以管理员身份)2.输入netstat-aon|findstr"8000"查找8000端......
  • ASEMI代理长电可控硅MCR100-8特征,MCR100-8应用
    编辑-Z长电可控硅MCR100-8参数:型号:MCR100-8VDRM/VRRM:600VIT(RMS):0.8A结点温度Tj:-40~125℃储存温度Tstg:-55~150℃通态电压VTM:1.7V栅极触发电压VGT:0.8V正向或反向阻断电流峰值:10µA保持电流IH:5mA栅极触发电流IGT:15µA  MCR100-8封装规格:封装:TO-92总长度:19.2mm......
  • sshpass报错 Permission denied, please try again.和 connect to host localhost po
    最近在做自动化时,自动化脚本用sshpass给远程机器发送命令(sshpass-p"123456"ssh-p10022root@localhost-oStrictHostKeyChecking=no"poweroff")报错:Permissiondenied,pleasetryagain.和 ssh:connecttohostlocalhostport10022:Connectionrefused   1.......
  • git指令连接库失败:OpenSSL SSL_read: Connection was reset, errno 10054
    一、问题描述无论是gitclone还是gitpush之类的需要连接库的指令都会出现`fatal:unabletoaccess'http://github.com/我的库/':OpenSSLSSL_read:Connectionwasreset,errno10054`报错原因:字面意思:服务器的SSL证书灭有经过第三方机构的签署。网上信息也有的说可能......
  • EPRO工业探头MMS6823R 9100-00001-06
    W;① ⑧ 0 ③ 0① ⑦  7 7⑤9EPRO工业探头MMS6823R9100-00001-06,PR6423/010-000-CN+CON021 精密的触摸屏远程面板(RP-3000XT)作为操作员控制面板补充了所有easYgen-3000XT系列产品。easYgen-3200XT-P1-LT专为户外应用设计,可在低至-40°C的温度下运......
  • MCR100-6-ASEMI代理长电原装单向可控硅MCR100-6
    编辑:llMCR100-6-ASEMI代理长电原装单向可控硅MCR100-6型号:MCR100-6品牌:长电\CJ封装:TO-92特性:可控硅正向电流:0.8A反向耐压:400V触发电压:0.62~0.8V引脚数量:3芯片个数:1包装方式:3000pcs/盘浪涌电流:40A特点:单向可控硅工作温度:-55℃~150℃MCR100-6应用范围:逆变焊机控制,相位控制应用,固态继......
  • 用100万的“小报告”扭转老闆的决定——华为蓝军思维的教训
    ​美国社会心理学家通过研究发现:当一个观点对某人来说十分重要的时候,如果他能用这个观点,使得一个“反对者”改变其原有意见,而和他的观点一致,那么他更倾向于喜欢那个“反对者”,而不是一个从始至终的同意者。这其实就是“改宗效应”。对于那些正直的领导,一味拍马屁,并不会换来他们......
  • 迅为2K1000开发板国产处理器操作系统
    1、硬件配置国产龙芯处理器,双核64位系统,板载2GDDR3内存,流畅运行Busybox、Buildroot、Loognix、QT5.12系统!2、接口全板载4路USBHOST、2路千兆以太网、2路UART、2路CAN总线、MiniPCIE、SATA固态盘接口、4G接口、GPS接口WIFI、蓝牙、MiniHDMI、温度传感器、JTAG接口等。3、开发指......