前面我和你分享了一些关于运维组织架构和协作模式转型的内容,为了便于我们更加全面地了解先进的运维模式,今天我们再来谈一下谷歌的SRE(Site Reliability Engineer)。 同时,也期望你能在我们介绍的这些运维模式中找到一些共通点,只有找到这些共通点,才能更深刻地理解,并借鉴到真正对我们有用的东西。

专栏的第一篇文章我们介绍了Netfix的NoOps模式。这个模式并不意味着不存在任何运维工作,只是Netfix将这些事情更紧密地融入到了日常的开发工作中,又做得非常极致,所 以并没有很明显地体现出来。

但是,谷歌的SRE却是一个真实具体的岗位,也有明晰的岗位职责。从借鉴意义上来讲,SRE可以给我们提供更好的学习思路和样板。 SRE这个概念,我应该是2014年下半年的时候听到的。当时可接触的资料和信息有限,只知道是谷歌对运维岗位的定义,负责稳定性保障,就没有更多其他的认识了。

后来,有越来越多在谷歌工作或接触过这个岗位的专家开始在公开演讲中分享这个概念。同时,《SRE:Google 运维解密》,这本由多名谷歌SRE亲笔撰写的图书也开始在国内广 泛流传,让我们对很多细节有了更加细致的了解。

SRE岗位的定位 首先,SRE关注的目标不是Operation(运维),而是Engineering(工程),是一个“通过软件工程的方式开发自动化系统来替代重复和手工操作”的岗位。我们从SRE这本书的前面几 个章节,可以看到谷歌不断强调SRE的工程能力。我简要摘取几段:

Common to all SREs is the belief in and aptitude for developingsoftware systems to solve complex problems.

所有的SRE团队成员都必须非常愿意,也非常相信用软件工程方法可以解决复杂的运维问题。

By design, it is crucial that SRE teams are focused on engineering.

SRE模型成功的关键在于对工程的关注。

SRE is what happens when you ask a software engineer to design anoperations team.

SRE就是让软件工程师来设计一个新型运维团队的结果。

与之相对应的,还有一个很有意思的地方,整本书中提到Operation的地方并不多,而且大多以这样的词汇出现:Operation load,Operation overload,Traditional/Manual/Toil/Repetitive Operation Works 。你可以仔细体会一下,这些大多就是传统的纯人工操作模式下的一些典型词汇。

我们可以看到,从一开始,谷歌就没把SRE定义为纯操作类运维的岗位,也正是谷歌换了一个思路,从另外一个维度来解决运维问题,才把运维做到了另一个境界。

SRE岗位的职责 书中对SRE的职责定义比较明确,负责可用性、时延、性能、效率、变更管理、监控、应急响应和容量管理等相关的工作。如果站在价值呈现的角度,我觉得可以用两个词来总结,就 是“效率”和“稳定”。

接下来,详细说下我的理解和分析。 SRE的能力模型,不仅仅是技术上的,还有产品设计、标准规范制定、事后复盘总结归纳这些技术运营能力,同时还需要良好的沟通协作能力,这个就属于职场软技能。

SRE,直译过来是网站稳定性工程师。表面看是做稳定的,但是我觉得更好的一种理解方式是,以稳定性为目标,围绕着稳定这个核心,负责可用性、时延、性能、效率、变更管理、监 控、应急响应和容量管理等相关的工作。

分解一下,这里主要有“管理”和“技术”两方面的事情要做。 管理体系上,涉及服务质量指标(SLI、SLA、SLO)、发布规则、变更规则、应急响应机制、On-Call、事后复盘机制等一系列配套的管理规范和标准制定等。

技术体系上,以支持和实现上述标准和规范为目标,涉及自动化、发布、监控、问题定位、容量定位,最终以电子流程串联各个环节,做到事件的闭环。 可以看到技术上的平台和系统是用来支撑管理手段的。谷歌的运维其实并没有单独去提自动化、发布、监控等内容,而是通过稳定性这个核心目标,把这些事情全部串联在一起,同 时又得到了效率上的提升。

我们来看几个主要的系统。

自动化。是为了减少人为的、频繁的、重复的线上操作,以大大减少因人为失误造成的故障,同时提升效率。比如谷歌内部大名鼎鼎的Borg系统,可以随时随地实现无感知的服务 迁移。现在,它的开源版本,已然成为业界容器编排体系标准的Kubernetes。

持续交付。谷歌非常重视持续交付。由于它的需求迭代速度非常快,再加上是全球最复杂的分布式系统,所以就更加需要完善的发布系统。

问题定位。这块跟监控相关但又有不同。我看到谷歌SRE这本书中并没有提到太多Tracing 的内容,更多的是讲监控和问题管理层面的跟踪机制。其实,关于问题定位,谷歌 的Dapper大名鼎鼎,功能很强大,国内外很多跟踪系统和思路都参考了Dapper的理论。这块也是为了能够快速定位问题,保障稳定而产生的,国内分享的大多关于全链路跟踪和 分析、限流降级、开关和预案系统、强弱依赖等都属于这个范畴,我认为这块应该更准确地定义为分布式服务治理相关的内容。

各类分布式系统。如分布式锁、分布式文件、分布式数据库,我们熟知的谷歌三大分布式论文,就是这些分布式系统的优秀代表,也正是这三大论文,开启了业界分布式架构理念 的落地。

这些系统大都是以稳定性为导向,同时带动了日常运维效率的大幅度提升,有了监控和全链路这样的问题发现和定位手段,也大大提升了我们对故障处理和问题定位的效率。容量管理,不仅仅可以保障容量充足,还能最大程度地保障资源分配的合理性,尽可能减少浪费,对于成本管控也大有好处。所以,围绕着稳定性这个核心目标,不仅达到了稳定的目的,还获得了高效的运维效率。

所以,SRE的理念通过稳定性这个核心点,将整个运维体系要做的事情非常系统紧密地整合起来,而不是一个个孤立的运维系统。所以,SRE是一个岗位,但更是一种运维理念和方法 论。

如何借鉴和落地

在国外,SRE岗位的薪资,和SWE软件开发工程师相比,要平均高出25%。从实际的岗位要求上看,SRE的技能要求也要比SWE更高、更全面,所以这样的人才是比较紧缺的。即 使在国外,除了谷歌、Facebook以及Netfix这样超一流的科技公司能够招聘到,或者内部培养出较多这样的人才,其它公司的SRE、PE或者应用运维也无法完全达到上面的要求。

在国内,就更难一些,那怎么做呢?一个思路就是我们之前讲组织协作模式转型时提到的,就是要依靠团队的力量、发挥团队的力量,如果是单个团队不能完成的事情,就跨团队协 调完成。所以,SRE岗位的要求很高,但是我们可以靠团队中具备不同能力的人协作,共同达成SRE的职责和目标。

最后,还是我反复强调的观点,要想做好运维,就得跳出运维的局限,要站在全局的角度,站在价值呈现的角度,站在如何能够发挥出整体技术架构运维能力的角度,来重新理解和定义运维才 可以。

通过今天的内容,你对于SRE有什么新的理解或者疑问?结合前面的内容,你能够挖掘出哪些共通点呢?欢迎你留言与我讨论。 如果今天的内容对你有帮助,也欢迎你分享给身边的朋友,我们下期见!

谷歌SRE运维模式解读相关推荐

  1. GOOGLE SRE 运维模式解读

    最近要整理一些关于应急响应方面的解决方案材料,又重新翻阅了一遍<SRE:Google 运维解密>这本书,非常值得我们借鉴和思考.本文将包括如下内容: SRE核心是什么 SRE工程师具有什么 ...

  2. 恒生与中国信通院联合发布《证券行业分布式核心系统SRE运维白皮书》

    在互联网金融模式的变革和冲击下,金融机构面临着海量客户管理.业务场景快速增长.金融服务和产品多样化等挑战. 为应对不断增加的技术创新需求,证券行业核心系统正逐步从传统IT集约型架构向支持敏捷开发.弹性 ...

  3. 云时代运维转型必读:容器运维模式的五大场景

    来自:DBAplus社群 作者介绍 温峥峰,小鹏汽车互联网中心运维高级经理,专注于运维自动化.DevOps实践.运维服务体系建设与容器运维时代下的价值挖掘.知乎专栏:HiPhone运维之道 其实我挺早 ...

  4. SRE运维工程师笔记-文件查找和压缩

    SRE运维工程师笔记-文件查找和压缩 1. 文件查找 1.1 locate 1.2 find 1.2.1 指定搜索目录层级 1.2.2 对每个目录先处理目录内的文件,再处理目录本身 1.2.3 根据文 ...

  5. 什么是 SRE?一文详解 SRE 运维体系

    可观测性系统 在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中,通常我们会分为如下三个方面: 指标监控:即各种指标监控,比 ...

  6. SRE运维工程师笔记-Linux文件管理和IO重定向

    SRE运维工程师笔记-Linux文件管理和IO重定向 1. 文件系统目录结构 1.1 文件系统的目录结构 1.2 常见的文件系统目录功能 1.3 应用程序的组成部分 1.4 CentOS 7 以后版本 ...

  7. SRE运维工程师笔记-Linux基础入门

    SRE运维工程师笔记-Linux基础入门 1. Linux基础 1.1 用户类型 1.2 终端terminal 1.2.1 终端类型 1.2.2 查看当前的终端设备 1.3 交互式接口 1.3.1 交 ...

  8. SRE运维工程师笔记-Linux用户组和权限管理

    SRE运维工程师笔记-Linux用户组和权限管理 用户.组和权限 内容概述 1. Linux安全模型 1.1 用户 1.2 用户组 1.3 用户和组的关系 1.4 安全上下文 2. 用户和组的配置文件 ...

  9. SRE运维工程师笔记-文本处理工具

    SRE运维工程师笔记-文本处理工具 内容概述 1. 文本编辑工具之神VIM 1.1 vi和vim简介 1.2 使用 vim 初步 1.2.1 vim 命令格式 1.2.2 三种主要模式和转换 1.3 ...

  10. 全球及中国风力发电行业运维模式及十四五投资策略研究报告2021-2027年

    全球及中国风力发电行业运维模式及十四五投资策略研究报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021年1 ...

最新文章

  1. 【Go】Go基础(八):结构体和方法
  2. 图像分割深度学习从零开始学习路线
  3. 某程序员吐槽:面试八股文害死人!公司新来的应届生满口框架,根本不会写代码!网友:八股文只能招到背题家!...
  4. jpa单向多对一关联映射
  5. QT的Q3DScatter类的使用
  6. php网站无法显示,php – 在UTF-8网站上无法正确显示的字符
  7. [Android1.6]横竖屏切换时自动弹出键盘的问题
  8. linux pinctl 分析,Linux驱动架构之pinctrl子系统分析(一)
  9. Innosetup打包自动下载.net framework 动态库及替换卸载程序图标.
  10. 只用最适合的!全面对比主流 .NET 报表控件
  11. java读取邮件超大附件_javamail在收邮件时可以得到邮件大小,但是javamail在发邮件时怎么得到邮件大小?...
  12. 数据结构系列-队列的基本操作
  13. 尚硅谷周阳老师 - Docker课程学习
  14. 手机游戏模型c语言提取,(游戏中模型资源的抓取软件)ninja ripper的使用方法...
  15. 用友 uap NC系统单点登录总结
  16. SaaS软件真的需要客户运营吗?
  17. CF919C Seat Arrangements
  18. 闲聊flask web编程中的cookie
  19. 计算机网络管理存在薄弱环节,计算机网络管理思考
  20. Ajax请求的五大步骤——一看就会

热门文章

  1. 2018产品经理都在入驻的平台——汇新云
  2. Pyecharts 猎聘招聘数据可视化
  3. sqlmap的简单使用(sql注入)
  4. PTA 数据结构与算法分析 7-38 寻找大富翁 (25 分)
  5. 数值计算作业:Guass列选主元消去法解线性方程组
  6. html实心向右三角形,css 如何在html页面上输出一个左三角形或右三角形呢?
  7. sqlserver 无法远程连接到服务器,解决SQLServer远程连接失败的问题
  8. 全网最全 ECMAScript 攻略
  9. JS方式获取浏览器版本
  10. 微信iPad协议-云控系统-微商工具-云发单-微信机器人