请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 191|回复: 0

你知道谁会是世界上第一个SRE吗?

[复制链接]
发表于 2020-12-18 16:22:21 | 显示全部楼层 |阅读模式
本帖最后由 monicazhang 于 2020-12-18 16:23 编辑 # Z3 c1 ~2 |9 k6 V8 B$ T) ^
' {: v( B- S. n* ~# \. i
前言:
  • 谁是世界上第一个SRE?
  • 第一个SRE是在哪一年认定的?(说不定让你大吃一惊)
  • 第一个SRE据说,是位女性?
    / _; z7 v1 L( p+ D1 @7 w' R
* w/ S4 u1 n* `" ]7 ?& o6 B6 ]
一、首先我们来了解一下SRE

. ?2 X8 F4 F2 Y& d! G- l
有一种说法,“一个系统如果已经开发完成,部署在生产环境上,则它就是稳定的,就不需要那么多工程师对其花费精力去优化、维护。”
0 r9 }* o6 g! F8 y3 ~
从当下来看,这个说法显然不对。
2 Z9 U. O' Y' I" U& q
那么,Google 是怎么认为的?

/ K2 ?3 v1 L' E8 M1 v
我们认为如果软件工程主要专注于设计和构建软件系统,那么应该有另一种职业专注于整个系统的生命周期管理。
从其设计一直到部署,历经不断改进,最好到退役。这样一种职业必须具有非常广泛的技能,但是和其他职业的专注点都不同。Google将这个职位称为站点可靠性工程师(SRE,Site Reliability Engineering)
细致的讲一下SRE
4 K1 v5 l+ \! N* V7 ?
  • 首先,也是最重要的一点,SRE 是工程师。SRE使用计算机科学和软件工程手段来设计和研发大型、分布式计算机软件系统。
    有时候,SRE和产品研发团队共同工作,其他时候我们需要开发这些系统的额外组件。如备份系统和负载均衡系统等。理想情况下,同时推进这些组件在多个项目中的复用。
    还有的时候,我们的任务是想出各种各样的办法用现在的组件解决新的问题。
  • 其次,SRE的关注焦点在于可靠性。Ben Treynor Sloss,Google负载724运维的副总裁,SRE名称的发明者,宣称可靠性应该是任何产品设计中最基本的概念:*任何一个系统如果没有人能够稳定地使用,就没有存在意义。
    因此,SRE专注于对其负责的软件系统架构设计、运维流程的不断优化,让这些大型软件系统运行得更可靠,扩展性更好,能更有效的利用资源。
    但SRE比不是无止境地追求完美,当一个系统已经“足够可靠”时,SRE通常将精力投入到研发新的功能和创造新的产品中。
  • 最后,SRE的主要工作是运维在分布式集群管理系统上运行具体业务服务(service)。不论是遍布全球的存储服务,还是亿万用户赖以工作的E-mail服务,还是Google最初的Web搜索服务。
    SRE中“S”最开始指代google.com的运维服务,因为SRE的第一个工作就是维持网站的正常运转。随着时间推移,SRE接管了Google内部绝大部分产品系统,包括Google Cloud Platform 这类开发者平台,也包括内部的一些非网站类的基础设施系统,如Bigtable
  • 3 U# y- t' t: k3 O; L8 b
4 U6 ~$ S  ?$ }9 z7 C2 M+ H
二、据说,她是史上第一个SRE ?

8 n* q, S/ e. ^0 a* n# r
0?wx_fmt=png.jpg

$ M0 a4 r, K/ C0 _$ t
NASA史上著名的女程序员,Margaret Hamilton。
$ X. i/ K- J/ _* I2 ?
在《Google SRE》这本书中,Google 选择了Margaret,MIT教授为史上第一个SRE,她参与了阿波罗计划的软件开发工作。

: L4 e6 J3 k8 O& d
Google 同学说,她具有现代SRE的一切特性。而Margaret又长期供职于NASA.

0 U6 I9 Z, Z5 e" r! m* G
看样子第一个SRE的产生,和NASA的阿波罗(Apollo)计划有关?
6 J2 Z0 F9 R' _* W3 z0 N. a2 p8 i
0?wx_fmt=png.jpg
  O0 P9 i% K8 y
三、事情是这样的……

  C& E& T) t+ F: u! s+ [# }
在Apollo 7 飞船研发期间的某一天(根据历史考证,为1968年某一天),Margaret带着她的小女儿Lauren一起来到公司。
. V3 Y* m+ S& S( p
在Margaret忙着和组员们在大型计算机上运行飞行模拟测试的时候,Lauren偷偷地按下了控制台的 DSKY 键。

6 J% @+ y" Q7 W
整个模拟程序出乎意料地崩溃,导致整个火箭发射程序意外终止。

- B" j) i% m; c: _# V! W! o/ I3 T
Margaret和组员调试后发现,原来Lauren意外触发了P01这段子程序的执行,导致整个模拟过程的失败。
  }- j8 u* C% V% Q
P01程序是起飞前调试程序,执行时会删除现存的导航信息,如果在火箭飞行过程中执行此程序,计算机将无法继续维持火箭航线,后果将是灾难性的。
凭借着SRE的直觉,Margaret为项目组提交了一个软件改动,申请在飞行程序中增加一项特殊状态检查,以避免飞行员在飞行过程中意外出发P01程序。

7 R! z, [) Z7 @# J4 N, h
但不幸的是,NASA管理层认为,这项错误发生的可能性太小了,根本不值得为此添加这项修改。

& w% ^& \- H6 Z# {
于是Margaret没有能够成功提交这项软件修改。只能在火箭飞行手册中添加一段文字,写到:“飞行过程中,请勿触发P01 程序。
1 N2 M2 ?; Z5 o" r2 G% u
此段文字在当时被很多NASA工程师认为是可笑又没必要的,所以人都认为宇航员经过长时间专业训练,绝不会犯这种低级错误。

/ L( H1 L1 \1 W3 O/ m
当在Apollo 8 执行飞行任务时。三名宇航员执行长达四天的飞行任务途中,其中一人意外出触发了P01。 更巧的是,当天正好是圣诞节,大部分工程师都去休假了。可想而知,那时 NASA 一片混乱。
2 |1 X) ^! J, k' V1 \, K
这种人命关天的时刻,如果不能及时解决,三名宇航员将永远无法安全返回了。
6 z- _6 o/ |( ~) j% K: F1 g
所幸,当时Margaret的飞行手册更新中恰恰提到了这种情形,并且提供重新上传数据以及恢复执行的有效办法,在有限的时间内解决了问题,任务可以继续进行。Margaret曾经说过:
$ l$ r; P1 y1 ~2 V5 m
无论对一个软件系统运行原理掌握得多么透彻,也不能阻止人犯意外错误。
) z0 p' G& N' d7 G+ E1 G& o
这句话分明就是SRE的真谛啊。。。怎么实现真正的可靠性?

3 U$ h) L% m8 }- y5 W7 ^& M4 e
明明可以靠脸吃饭,她却要靠才华! z: W1 B( @: A5 h6 S/ O
那个年代并不鼓励女性参与高强度的技术工作。但是她却坚持选择了一条非典型的程序员进化之路。她一半是对科学的如痴如醉,另一半则是作为一个普通女性对于家庭的依恋。
她依旧日复一日地读书、做研究、顺其自然地嫁人,还打算要个孩子。她遵循着一般女性的足迹,虽然比当时的家庭主妇显得更 「高知」了一些。
" B/ ?! |3 E6 F( S) p# U+ q
0?wx_fmt=jpeg.jpg
1 o( V+ P& q5 D) h$ v% v7 v; V
那个时代,晶体管计算机还没发展完善,编程用的是汇编语言,计算机世界缺乏统一和规范。阿波罗飞船上包含着许多不同的计算机模块,为了给不同的模块编程,少说得学三五套汇编语言。玛格丽特作为项目的领导,基本每套汇编语言都需要精通,其复杂程度可想而知。
) g# n0 T" W9 s- w3 G
0?wx_fmt=jpeg.jpg
9 p' F6 n+ X  E% K) a0 L, W5 ?
人类实现的第一个卡尔曼滤波器(线性系统的最优估计观测器)是在阿波罗计划中实现的。作为首席工程师的玛格丽特也参与了讨论和开发,代码一定也在这一摞厚厚的纸当中。
! \' U& _- o1 e  T
0?wx_fmt=jpeg.jpg

7 V: \+ U1 G+ Z) B+ V. }9 \6 Y
Margaret在担任 MIT 仪器实验室软件工程部的主管,帮助该实验室开发阿波罗计划中航天器搭载的飞行软件,其编写的程序都以最大程度防止崩溃为目的,从而防止了阿波罗 11 号登月计划中缀。
3 p9 U! j& m' T! P% z
基于阿波罗计划中这些工作经历,在2003 年,Margaret获得 NASA 杰出太空行动奖,同时也被世人评为最伟大的女程序员。

8 r$ z% s1 E5 _7 p* K+ v/ F
虽然事故已经过去几十年,但是工程师们一定不会对此感到陌生,类似的场景总是在不断重演。

+ V7 [3 |2 [( \% M9 s8 D. D4 a
希望大家以史为鉴,只有靠着对细节不懈关注,做好充足的灾难预案和准备工作,时刻警惕着,不放过一切机会去避免灾难发生。
这就是SRE最重要的理念!
; n$ E) w/ b% C$ z5 t
2 m6 ~8 z9 Z5 `6 s6 f
1.png
4.png
3.png




上一篇:大型电商网站是如何做SRE?
下一篇:为什么DevOps和SRE领域很难有足够多优秀的工程师?

本版积分规则

本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2021-1-22 04:03 , Processed in 0.164559 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表