Site Reliability Engineering 中文可译为:网站可靠性工程,在现代互联网中,最早有Google提出,而该岗位对应的工程师工作内容的指导思想是:通过软件工程的方式开发自动化系统来替代重复和手工操作。其理论体系对应的有两本书《SRE:Google运维解密》和《google SRE工作手册》— 在google网站上可以免费查看英文原版电子书。本文就从SRE理念的起源大致给一个入门的认知。

一、最早的SRE

玛格丽特
玛格丽特

在google运维解密里提到了SRE的灵感来源似乎来自于 玛格丽特-汉密尔顿女士,从网上了解到的资料是玛格丽特女士甚至是软件工程师一词最早的提出者,为什么说SRE最早源于这位女士呢?

玛格丽特女士在六十年代为阿波罗登月计划工作其间,其经常把她4岁的小女儿Lauren带到实验室去。劳伦小朋友呢,在实验室玩的时候,不小心在飞船指令舱模拟器计算机DSKY(见下图)上按下了P01键,令人吃惊的一幕发生了,电脑屏幕上出现了一系列错误代码。原来,当模拟器处于飞行状态时,一旦触动预发射键P01,系统就会出现严重错误。遗憾的是,整个软件系统没有对此设置任何防范程序。意识到这个问题潜在的严重性后,玛格丽特女士快速草拟了一份《关于紧急设置意外触动P01键纠错系统的计划》。不过当其将内容提交给上司时,上司认为这么低级的错误在宇航员身上不可能发生。无奈之下,她只好在操作系统中增加了一个备注:“飞行时勿动P01”。另外她还是写了一些应急代码。

DSKY
DSKY

戏剧性的是:1968年圣诞节,阿波罗8号正在执行环绕月球飞行任务,三个宇航员中的罗威尔无意中触动P01键。导致所有导航数据将清零,系统即将崩溃。软件部临时任命她为组长,她带领一支20人的小分队前去“灭火”。她之前编写的程序派上了用处,连续奋战9小时后,错误信息被纠正,系统恢复运行。第二天一早,NASA下发文件,软件部应急组扩大5倍,玛格丽特任部长。

除此之外她还参与挽救了阿波罗11号飞行系统出错的故障。

二、Google SRE

Google的SRE团队是在2003年由本·特雷诺·斯洛斯(Ben Treynor Sloss)— 工程副总裁组建的。

其对应的理念如下:

  • 运维痛点也是软件问题
  • 以服务质量(SLO)为准绳
  • 尽量减少琐事
  • 确定本年度要自动化的工作
  • 故障解决得越快,进度就越快
  • 与开发人员同舟共济
  • 岗位不同,工具可统一

从前上面可以了解到其是面向服务,以软件和自动化的方式解决运维中的问题。

三、google为什么要提出SRE

在SRE提出之前,我们先了解下传统系统管理员(sysadmin)的工作内容:

  • 组装现成的组件,部署为服务
  • 负责应急事件处理与常规更新
  • 团队规模一般随着服务部署规模增长而增长

这里面反应出的问题是:

创新困难,重复执行,抗拒变化,组织结构僵硬。积累困难,提高困难,发展困难。成本压力大,团队规模随着服务规模不断扩大。

针对以上问题,SRE对运维工作职责进行了划分,主要由如下三块内容组成:

SRE-work
SRE-work

这里有人可能会有疑问,google当时为什么不用devops的思想,或者SRE和devops有什么区别呢?是不是抄袭devops?这个我们放在下一讲再总结。

以下链接是有关玛格丽特女士的故事和生平介绍:

https://new.qq.com/omn/20180720/20180720A1AO6X.html

https://www.sohu.com/a/215979129_355137