谷歌SRE的7条原则

拥抱合理的风险

最大化系统的稳定性不仅毫无意义,而且会适得其反。不切实际的可靠性目标限制了新功能交付给用户的速度,而且用户通常不会注意到极端的可用性(比如99.99999%),因为他们的体验是由最不稳定的组件决定的。

拥有100%的可用性需求严重限制了团队向系统交付更新和改进的能力。想要交付许多新特性的服务所有者应该选择不那么严格的SLOs,从而让他们在出现无关紧要的bug时可以继续交付。

服务所有者关注可靠性,因此他们可以选择更高的SLO。SRE准则将这种可接受的风险量化为“错误预算”。当错误预算耗尽时,重点就应该从新功能开发转移到提高可靠性。

服务水平目标SLO(Service Level Objectives)

站点可靠性工程(SRE)规程决定系统的可用性目标,并使用来自工程师、项目所有者和客户的输入来度量可用性。

如果没有一致的方式来描述系统的正常运行时间和可用性,团队间的交流和合作将会很有挑战性。运维团队不断地灭火,但是开发人员很少主动地修复错误。如果没有对正常运行时间的清晰度量,产品团队可能不同意可靠性是一个问题。

所以SLO是推动SRE学科发展的主要因素。SRE确保每个人都同意当可用性超出规范时应该做什么,以及如何度量可用性。这个过程包括所有项目相关的人员的领导。SREs与相关人员一起决定Service Level Indicators (SLIs) and Service Level Objectives (SLOs)。

SLIs是作为请求延迟的时间度量,即每秒请求的吞吐量。通常随着时间的推移而聚集,然后转化为一个速率,可以将与一个阈值比较。

SLOs是在相关人员一致同意的时间段内SLIs累积成功的目标。

SLIs、SLOs和SLAs更接近于“度量一切”的DevOps支柱,这也是我们说SRE实现DevOps的原因之一。

消除Toil

Toil不只是指自己不喜欢做的事。例如,下面的任务是费时的,但具体来说不是Toil: 提交费用报告,参加会议,回复电子邮件,通勤上班,等等。相反,Toil是与正式的prod环境服务的运行联系在一起的。这种工作往往是重复性的、手工的、可以自动化的、没有长期的价值。每当操作员需要操作系统时,例如响应页面、处理票据,就可能会出现Toil。

站点可靠性工程(SRE)学科的目标是通过关注SRE的“工程”部分来减少工作量。SRE的工作是设计一个解决方案,减少Toil,实现任务的自动化。

谷歌的目标是确保每个SRE至少有50%的时间花在工程项目上,这些SRE每个人都在季度调查中报告他们的Toil,以确定运营超负荷的团队。话虽如此,Toil并不总是坏事。重复性的和可预测的任务是让新成员加入的好方法,并且通常可以在低风险和低压力的情况下产生一种即时的满足感和成就感。

分布式系统的检测

监视一个复杂的应用程序是相当困难的。即使存在大量用于仪表、显示、收集和警报的现有基础设施,拥有10-12名成员的谷歌站点可靠性工程(SRE)团队通常也只有一到两名成员主要任务是为整个服务构建和维护监视系统。

随着SRE对公共监视基础设施进行泛化和集中,这个数字正在减少,但是每个SRE团队通常至少有一个“监视人员”。为人类生成警报的规则应该简单易懂,并代表明显的失败。

自动化

SRE的主要工作是实现自动化,从而改进系统。例如,集群可以增长,可以引入更多的特性,而不需要增加团队的规模。

发布自动化

发布工程师对源代码管理、构建配置语言、编译器、自动构建工具和安装程序有更好的理解。他们的技能包括对开发、配置管理、测试、系统管理和客户支持等多个领域的深入了解。

运行可靠的服务需要可靠的发布流程。站点可靠性工程师需要知道,他们所使用的配置是以一种可重复的、自动化的方式构建的,因此发布是可重复的,而不是一次性的。对发布过程的任何方面的更改都应该是有意的,而不应该是偶然的。SREs总是关心从源代码到部署的所有这些过程。

简单化

软件系统具有内在的动态性和不稳定性。一个系统只有存在于真空中才能完全稳定。如果我们停止改变代码库,我们就会停止引入新的错误。如果库永远不变,那么这两个组件都不会引入bug。如果我们冻结当前的用户群,我们就永远不需要扩展系统。

事实上,对SRE方法和管理系统的一个很好的总结是: 我们的工作是保持系统与敏捷性和稳定性的平衡

谷歌SRE的7条原则的更多相关文章

  1. 防御XSS攻击的七条原则

    本文将会着重介绍防御XSS攻击的一些原则,需要读者对于XSS有所了解,至少知道XSS漏洞的基本原理,如果您对此不是特别清楚,请参考这两篇文章:<Stored and Reflected XSS ...

  2. 还在为CSS布局发愁?你该看看这7条原则

    一.网页结构分析七条原则 这以下7个原则是经过多年网站实战经验之后的总结,只要掌握这7个原则,可以解决大部分在编写网站布局中的问题. 1.先结构后样式. 2.能用CSS表现出来的效果,就尽量少用图像. ...

  3. 防御 XSS 的七条原则

    本文将会着重介绍防御XSS攻击的一些原则,需要读者对于XSS有所了解,至少知道XSS漏洞的基本原理,如果您对此不是特别清楚,请参考这两篇文章:<Stored and Reflected XSS ...

  4. MySQL数据库开发的36条原则【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  5. MySQL数据库开发的36条原则

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),验证通过后,输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动&quo ...

  6. 谷歌SRE运维模式解读

    谷歌SRE运维模式解读 前面我和你分享了一些关于运维组织架构和协作模式转型的内容,为了便于我们更加全面地了解先进的运维模式,今天我们再来谈一下谷歌的SRE(Site Reliability Engin ...

  7. 【php】页面加载优化的14条原则

      1. 尽可能的减少 HTTP 的请求数 [content] 2. 使用 CDN(Content Delivery Network) [server] 3. 添加 Expires 头(或者 Cach ...

  8. mysql优化20条原则

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  9. Web2.0应用程序的7条原则

    个人看好Web的发展潜力,本文字摘自<Collective Intelligence 实战> 网络是平台 使用传统许可模式软件的公司或用户必须运行软件.定期更新至最新版本,以及扩展它来满足 ...

  10. 谷歌大牛 Rob Pike 的 5 个编程原则

    谷歌大牛 Rob Pike 的 5 个编程原则 简介: Rob Pike,目前谷歌公司最著名的软件工程师之一,曾是贝尔实验室Unix开发团队成员,Plan9操作系统开发的主要领导人,Inferno操作 ...

随机推荐

  1. EXCEL VSTO插件开发(一)-FuTools Excel

    Excel VSTO插件开发之旅:我与FuTools Excel的共同成长在踏入Excel VSTO插件开发的领域之前,我不过是一名普通的Excel用户,对数据的处理和分析充满好奇却时常感到力不从心. ...

  2. RockyLinux9编译安装MySQL5.7

    Linux版本: Rocky Linux release 9.5 (Blue Onyx) 1.下载 打开MySQL-Community-Server官方下载页面:https://downloads.m ...

  3. 1. Calcite元数据创建

    1. 简介 Calcite 是一款来自 Apache 的开源动态数据管理框架,核心功能是提供 SQL 查询解析.优化及执行等基础能力,以灵活支持多种数据源,广泛应用于各类数据处理系统.以下从其功能特性 ...

  4. 干掉visio,这个画图神器真的绝了!!!

    前言 看过我以往文章的小伙伴可能会发现,我的大部分文章都有很多配图.我的文章风格是图文相结合,更便于大家理解. 最近有很多小伙伴发私信问我:文章中的图是用什么工具画的.他们觉得我画的图风格挺小清新的, ...

  5. C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  6. Oracle数据快照设置

    1.1 手册目的 该手册主要目的是用于生产环境排查问题及恢复用户误操作删除数据及程序错误导致数据丢失使用. 1.2 查看Undo表空间参数 在命令窗口查询Undo表空间的快照参数 1 show par ...

  7. 从零开始的函数式编程(2) —— Church Boolean 编码

    [!quote] 关于λ表达式-- 详见λ表达式 本文导出自Obsidian,可能存在格式偏差(例如链接.Callout等) 本文地址:https://www.cnblogs.com/oberon-z ...

  8. Vulnhub-kioptix2014靶机getshell及提权

    靶机搭建 点击扫描虚拟机 然后扫描文件夹即可 信息收集 扫描ip nmap扫描得到目标靶机ip nmap -sn 192.168.108.0/24 故 攻击机:192.168.108.130 目标靶机 ...

  9. (抄自己luogu上的博客)莫队总结

    虽然当时文风很2,但是觉得写的蛮好的,就在这里贴一下吧. 最近学了分块(太难想了 \(qwq\) )和莫队(太神奇了 \(0w0\) ),写一个阶段性总结~ 分块 总所周知,分块是一种神奇的暴力,用 ...

  10. 动态能力理论&知识管理理论--商业之所见

    动态能力理论:企业整合,建立和再配置内外部资源以适应快速变化环境的能力. (1)"动态"指的是适应不断变化的环境,企业必须具有不断更新自身能力的能力: (2)"能力&qu ...