Loading...
墨滴

李先生

2021/03/31  阅读:80  主题:橙心

别再删库跑路了,快来读《SRE生存指南》

金句集合

1、”故障是常态,正常才是异常”,面对故障,我们更多的应该是从中进行学习和改进,把故障作为提升系统性能的切入点,而不是故障之后的相互指责和推诿扯皮。

2、在Web应用程序中,请求持续时间只是单个HTTP请求的时长。而我们度量服务器处理请求的时间,是指从收到完整请求到发送完整响应的时间。

3、目标是将50%的时间用于编写代码,30%的时间用于与人打交道,20%的时间用于应对紧急情况。

4、首要任务是通过编写代码把自己和其他人从重复的工作中解放出来。

5、测试表明缺陷的存在,而不是不存在。

6、在软件的生命周期里,20%的时间用于创建,80%的时间用于维护。

7、软件世界的测试不同于普通的科学测试的地方在于,你不是试图弄清楚某些东西是如何工作的,而是试图验证这些东西是否在按照你希望的方式工作。

8、事故响应建立在使用监控构建的数据之上,并借助反馈循环,来帮助我们加强对服务的监控。

9、容量规划是预测未来的艺术。它是一个根据过去的经验教训作为度量的标准应对未来并做出规划的过程。

Mikey金字塔

本书围绕着Mikey金字塔的7个主题展开,这个七层金字塔围绕着沟通设计。每一层都建立在前一层的基础上,它被沟通所包围,每一层都需要沟通才能成功。

监控

1、监控5大问

1)监控什么?
2)如何监控?
3)监控数据存储在哪里?
4)谁可以访问历史监控数据?
5)如何查看监控数据

上面这几个问题提供了一个大方向,监控指标永远是重点,主机层指标、业务层指标、web程序指标、数据库指标、日志层、中间件层等等。怎么实现监控则是工具的选型,像现在的zabbix、promethues、自定义脚本等等。对监控数据做分析也是一个非常有意思的事情,可以发现某些隐藏的比较深的问题。

事故响应

事故响应是建立在监控的基础之上,因此告警是至关重要的,监控指标达到什么样的一个阀值,需要告警,告警发送给谁,告警发生后的处理机制等等。

在处理事故的过程中,应该要实时进行进度同步,沟通是至关重要的。

事故回顾

事故回顾的定义

事故回顾又称根本原因分析,Root Cause Analysis 根本原因分析,简称RCA。RCA是一个系统性的识别“根源”的问题或事件和应对的方法,RCA的理念是防火而不是救火。

事故报告的目的

书写事后总结的主要目的是为了保证该事故被记录下来,理清所有的根源性问题,同时最关键的是,确保实施有效的措施使得未来重现的几率和影响得到降低,甚至避免重现。

事故分析

记录为什么会发生事故,从事故现场出发、深入挖掘各个方面。不管是什么样的事故,生产事故,日常问题分析,都可以写成报告,但是不能仅仅是为了写报告而写报告,如果不分析事故并找出发生了什么,写再多的报告也将毫无用处。

测试与发布

测试两大问题

1、测试什么?
2、如何测试?

测试通常在我们的行业,是一个专业的领域,但是对于SRE来说,要对自己写的代码或者自己维护的软件要对测试有了解。通常测试会分为几大类,单元测试、特性测试、集成测试等。 单元测试:用于确保函数和方法正常工作。 特性测试:也称冒烟测试和验收测试。它们验证特性是否正常工作。 集成测试:这些测试用于确保特性和系统正确的协同工作。

容量规划

1.当前的容量是多少?
2.何时达到容量极限?
3.应该如何更改容量?
4.执行规划。

容量规划单独拎出来也可以是一个专业,一般情况下,要根据现有的业务量、财务情况等综合进行容量规划。

开发

这里的项目是指当你在SRE这个领域,你主动的去发现痛点、然后以解决此痛点为目标,开始一个项目。或者说你干一件是连续重复干了三次,那么就该考虑自己写个小工具解放自己的双手了。这些都可以定义为项目,可能我们去一个有了项目之后,需要对此项目进行一个定位,比如看网上是否有开源的工具,如果有开源的工具,是否满足自己的需求,是否可以自己修改满足自己的需求。如果没有如果自己开发这个工具,需要耗时多久,是否需要写设计文档等。设计文档等写好之后,就可以开始项目计划了,制定工作计划以及不断的向前推进。写下功能列表,分解需求,列出待办事项清单。等一切准备好之后,就可以动手写代码了。

检查清单

当我们对自己开发的软件一般可以通过这四个方面来检查。
监控:正在编写的代码有基本指标吗?它们正在被收集和存储吗?
事故响应:你正在编写关于如何对服务进行运维的文档吗?如果发生事故,有没有报警机制?任何人收到报警都知道该怎么做吗?
事后回顾报告:当代码发生故障时,你是否像对待其他发生故障的代码一样编写事后回顾报告呢?
测试和发布:是否写了单元测试和集成测试?是否有文档记录发布流程和回滚流程?
容量规划:是否记录了容量规划将如何影响系统的性能?

对于编写代码的3个建议

1、使用版本控制
2、进行代码评审
3、所有项目都应该有一个指定的所有者

重要的原则

程序应该只关注一个目标并尽可能把它做好,以及让程序能够互相协同工作。

用户体验

对于软件开发人员来说,设计通常是指软件架构设计、另一个是人们如何与软件交互的设计。人们与软件交互的部分通常称为用户界面。
在SRE领域,用户体验通常是指命令行接口(CLI)、网站的界面设计、图形用户界面(GUI)等。

对于用户体验这一块,可以学习一些产品知识,融会贯通。

总结

《SRE生存指南》更像是《Google SRE运维解密》的精简版,适合入门,对SRE有一个大概的了解。这本书更多的是提供一个指南,一个框架,具体的技术实现还得自己去摸索。

写在最后

李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)。

李先生

2021/03/31  阅读:80  主题:橙心

作者介绍

李先生

公众号:运维汪