其他分享
首页 > 其他分享> > 读SRE Google运维解密有感(一)

读SRE Google运维解密有感(一)

作者:互联网

读SRE Google运维解密有感(一)

360addops团队 360云计算

作者有话说:

这几天打算利用碎片时间读了一下"SRE Google运维解密"这本书,目前读了前几章,感觉收获颇多,结合自己的工作经历和书中的要点,写一些感悟和思考,希望对大家有一点帮助。
PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!

SRE

有关SRE我就不多介绍了,中文名字叫站点可靠性工程师,它的由来是google想通过软件工程师来解决复杂运维问题。 它里面有很多有意思的点,比如:


运维工作只能占比工作时间50%
另外50%要开发工具解决问题
SRE和开发工程师会轮岗

这些相关概念网上很多都介绍了,我就不赘述了,我说下一些我感兴趣的点

谷歌神话

谷歌一直在技术领域处于世界领先位置,从bigtable的三篇论文,开源的k8s,分布式关系数据库,谷歌的技术在IT领域可以说是标杆。

有个传说是谷歌内部使用的系统一般2-3年以后才会出相关论文或者开源版本实现,出来了以后其它企业开始实践还需要2-3年,等到你把这些实现了,谷歌又不知道实现了什么黑科技。IT界如果是江湖的话,谷歌就像是少林派,有一种天下武功出少林的气派。

所以SRE这本书自带光环,很多人都觉得这是运维圣经,觉得这是拯救运维领域的不二法宝。

或许你也在读这本书,你也想在内部尝试SRE的一些方法和思想。

那么首先我劝你先冷静一下,它并不是一个万能的解药,要先考虑下你的公司现状,问题,结合实际国情,找到切实可行的方法。
我为什么这么说呢?请往下看

谷歌的肌肉

首先本书一开始简单说了下SRE的思想和方法论,然后介绍了谷歌的基础设施,就好像一个人一样,谷歌的基础设施就是这个人的肌肉,有了强劲的肌肉才能跑得快,跳得高。


Colossus GFS文件系统的改进白本
Bigtable 松散存储的,分布式,有顺序,持久化的NoSQL数据库
Spanner 分布式的关系型数据库

利用地理位置进行负载均衡DNS请求
用户服务层面负载均衡
RPC层面负载均衡

通过各个层面的负载均衡将用户流量导向健康的服务上面。
这些完善的基础设施,给SRE中的方法和思想做了强有力的支撑。

故障不是洪水猛兽

SRE中定义了一个概念叫SLO(服务质量目标),通过SLO合理评判一个服务要达成的服务质量。

首先我先说下”故障“这个词,这个词对运维人员来说,是非常不想听到和遇到的。运维人员有一个重要任务是确保服务的稳定,换句话说就是没有故障。

所以我们或多或少谈到“故障”就会色变,遇到故障马上第一时间解决,为了避免下次还出现,我们可能还会开“事故总结会”,优化流程和工具。

其实我们很多时候对于“故障”的理解是简单粗暴的,从一线员工到老板都认为“故障不能有”,“故障必须消除”,我们耗费很大精力“消除了一切故障”,系统平稳运行了,自己也会萌生成就感,感觉干的还不赖。可是并没有进一步去思考一下,故障存在的意义。

我们常见的所谓“99.9%”,“99.99%”的服务可用性,但是并没有使用科学方法来分析和规划业务到底应该3个9还是4个9。

SRE中说到一句话“100%稳定的系统是不存在的”,它把这个做为一个前提,那也意味着系统是肯定要出故障的。

SLO就是用来解决这个事情的,首先服务的故障不可避免,每个服务的级别不同,不可能所有服务都是99.999999,要针对业务的不通特性制定不同的SLO。

比如: 谷歌的企业服务,针对企业用户是有签署服务中断赔偿协议的,那么稳定性要求很高,所以它的SLO级别必须很高。 谷歌的youtube(当时),针对终端用户且版本迭代很快,业务在不断变化和创新,SLO级别可以放低。

SLO的制定通常是产品经理,开发团队,SRE一起协商完成,大家根据业务的规模,产品特性,产品处于的阶段制定。

SLO的制定,我觉得就是科学的面对“故障”这个问题,故障不可避免,不应该以消灭故障为目的,合理的接受它,确保它在SLO标准的范围内,高于这个标准会浪费人力和成本,低于这个标准就需要进行优化。

SLO的制定很大程度在于各个团队之间的协商,大家都有基于数据的科学评判方法,比如产品预估的用户数,产品发版周期,使用带宽等。
中国的国情更多的是拍脑袋,老板的态度,上面的一句话“不能有事故”,那就是99.999999999999999无限,没有科学的进行评估。

SLO解决的问题

通过这样一个SLO,之前很多令人头疼的问题就迎刃而解了。

标签:Google,服务,运维,SRE,谷歌,故障,SLO
来源: https://blog.51cto.com/15127564/2668515