重读《SRE:Google运维解密》,我有了完全不同的理解。

本文记录我第一次读和重读的不同感受,包括SRE的核心理念、关键实践、我的新理解,以及对运维的重新认识。

一、第一次读的感受

1. 觉得很高大上

第一个:觉得很高大上。

  • 第一次读
  • 觉得Google很厉害
  • SRE很高大上
  • 离自己很远
  • 很震撼

第一次读,觉得高大上。

2. 记了很多概念

第二个:记了很多概念。

  • SLO
  • SLA
  • SLI
  • 错误预算
  • 记了很多概念

第一次读,记概念。

3. 觉得不实用

第三个:觉得不实用。

  • 都是Google的做法
  • 自己公司用不上
  • 觉得不实用
  • 看完就放一边了

第一次读,觉得不实用。

4. 理解不深

第四个:理解不深。

  • 只记住了概念
  • 没有理解背后的理念
  • 理解不深
  • 很表面

第一次读,理解不深。

5. 没有应用

第五个:没有应用。

  • 读完了
  • 没有应用
  • 工作还是老样子
  • 没有改变

第一次读,没有应用。

二、重读的契机

1. 工作中遇到问题

第一个:工作中遇到问题。

  • 运维问题多
  • 总是救火
  • 很累
  • 想改变
  • 想起了这本书

工作问题,是重读的契机。

2. 团队在做DevOps

第二个:团队在做DevOps。

  • 团队在推DevOps
  • 需要理论指导
  • 想起了SRE
  • 想重读
  • 找灵感

DevOps,是重读的契机。

3. 有了实践经验

第三个:有了实践经验。

  • 工作了几年
  • 有了运维经验
  • 有了开发经验
  • 再读理解不同

经验,是重读的基础。

4. 想提升自己

第四个:想提升自己。

  • 想提升运维能力
  • 想提升系统思维
  • 想学习最佳实践
  • 想重读

提升,是重读的动力。

5. 朋友推荐

第五个:朋友推荐。

  • 朋友说这本书很好
  • 建议重读
  • 我就重读了
  • 果然不同

朋友推荐,是契机。

三、SRE的核心理念

1. 理念一:运维是产品

第一个理念:运维是产品。

  • 把运维当产品
  • 不是打杂
  • 有产品思维
  • 很重要
  • 是核心理念

运维是产品,是核心理念。

2. 理念二:自动化

第二个理念:自动化。

  • 能自动化的都自动化
  • 减少人工操作
  • 减少人为错误
  • 是核心理念

自动化,是核心理念。

3. 理念三:拥抱风险

第三个理念:拥抱风险。

  • 不是追求零故障
  • 是管理风险
  • 用错误预算
  • 是核心理念

拥抱风险,是核心理念。

4. 理念四:数据驱动

第四个理念:数据驱动。

  • 用数据说话
  • SLI
  • SLO
  • 数据驱动决策
  • 是核心理念

数据驱动,是核心理念。

5. 理念五:持续改进

第五个理念:持续改进。

  • 事后复盘
  • 持续改进
  • 不追责
  • 找根因
  • 是核心理念

持续改进,是核心理念。

四、关键实践

1. 实践一:SLI/SLO/SLA

第一个实践:SLI/SLO/SLA。

  • SLI:服务等级指标
  • SLO:服务等级目标
  • SLA:服务等级协议
  • 是基础
  • 很重要

SLI/SLO/SLA,是基础。

2. 实践二:错误预算

第二个实践:错误预算。

  • 1 - SLO
  • 可以犯错的空间
  • 用来平衡创新和稳定
  • 很智慧
  • 是关键

错误预算,是关键。

3. 实践三:减少琐事

第三个实践:减少琐事。

  • 琐事占比不超过50%
  • 超过就要自动化
  • 是原则
  • 很重要

减少琐事,是原则。

4. 实践四:事后复盘

第四个实践:事后复盘。

  • 故障后复盘
  • 不追责
  • 找根因
  • 写复盘报告
  • 是关键

事后复盘,是关键。

5. 实践五:发布工程

第五个实践:发布工程。

  • 标准化发布
  • 自动化发布
  • 灰度发布
  • 金丝雀发布
  • 是关键

发布工程,是关键。

五、我的新理解

1. 理解一:SRE不是岗位,是理念

第一个新理解:SRE不是岗位,是理念。

  • 以前以为SRE是岗位
  • 现在明白是理念
  • 是一种工作方式
  • 是一种思维方式
  • 很重要

SRE是理念,不是岗位。

2. 理解二:稳定性不是目标,是手段

第二个新理解:稳定性不是目标,是手段。

  • 以前以为稳定性是目标
  • 现在明白是手段
  • 目标是业务价值
  • 稳定性是为了业务
  • 很重要

稳定性是手段,不是目标。

3. 理解三:故障不是坏事,是学习机会

第三个新理解:故障不是坏事,是学习机会。

  • 以前以为故障是坏事
  • 现在明白是学习机会
  • 每次故障都能改进
  • 不要怕故障
  • 很重要

故障是学习机会,不是坏事。

4. 理解四:自动化不是为了省人,是为了质量

第四个新理解:自动化不是为了省人,是为了质量。

  • 以前以为自动化是为了省人
  • 现在明白是为了质量
  • 减少人为错误
  • 提高一致性
  • 很重要

自动化是为了质量,不是省人。

5. 理解五:运维和开发不是对立,是合作

第五个新理解:运维和开发不是对立,是合作。

  • 以前以为运维和开发对立
  • 现在明白是合作
  • 共同对服务负责
  • 共同对用户负责
  • 很重要

运维和开发是合作,不是对立。

六、对运维的重新认识

1. 认识一:运维不是低端

第一个认识:运维不是低端。

  • 以前觉得运维低端
  • 现在明白运维很重要
  • 运维是技术活
  • 运维是产品思维
  • 很重要

运维不是低端,是技术活。

2. 认识二:运维要懂开发

第二个认识:运维要懂开发。

  • 以前觉得运维不用懂开发
  • 现在明白要懂
  • 要会写代码
  • 要会自动化
  • 很重要

运维要懂开发,是必须的。

3. 认识三:运维要懂业务

第三个认识:运维要懂业务。

  • 以前觉得运维不用懂业务
  • 现在明白要懂
  • 要知道什么重要
  • 要知道优先级
  • 很重要

运维要懂业务,是必须的。

4. 认识四:运维要数据驱动

第四个认识:运维要数据驱动。

  • 以前觉得运维靠经验
  • 现在明白要数据驱动
  • 用SLI/SLO
  • 用数据说话
  • 很重要

运维要数据驱动,是必须的。

5. 认识五:运维要持续学习

第五个认识:运维要持续学习。

  • 技术在变
  • 运维也要变
  • 要持续学习
  • 要持续进步
  • 很重要

运维要持续学习,是必须的。

七、我的改变

1. 改变一:开始用SLO

第一个改变:开始用SLO。

  • 重读后
  • 开始在工作中用SLO
  • 定义服务等级目标
  • 用数据说话
  • 很有效果

用SLO,是改变。

2. 改变二:开始自动化

第二个改变:开始自动化。

  • 重读后
  • 开始自动化运维
  • 写脚本
  • 写工具
  • 减少琐事

自动化,是改变。

3. 改变三:开始复盘

第三个改变:开始复盘。

  • 重读后
  • 开始事后复盘
  • 不追责
  • 找根因
  • 持续改进

复盘,是改变。

4. 改变四:开始和开发合作

第四个改变:开始和开发合作。

  • 重读后
  • 开始和开发紧密合作
  • 共同对服务负责
  • 共同改进
  • 很有效果

合作,是改变。

5. 改变五:开始持续学习

第五个改变:开始持续学习。

  • 重读后
  • 开始持续学习
  • 学习新技术
  • 学习新理念
  • 持续进步

持续学习,是改变。

八、写在最后

重读《SRE:Google运维解密》,我有了完全不同的理解。

第一次读的感受:觉得很高大上、记了很多概念、觉得不实用、理解不深、没有应用。重读的契机:工作中遇到问题、团队在做DevOps、有了实践经验、想提升自己、朋友推荐。SRE的核心理念:运维是产品、自动化、拥抱风险、数据驱动、持续改进。关键实践:SLI/SLO/SLA、错误预算、减少琐事、事后复盘、发布工程。我的新理解:SRE不是岗位是理念、稳定性不是目标是手段、故障不是坏事是学习机会、自动化不是为了省人是为了质量、运维和开发不是对立是合作。

2023年了,重读这本书,我有了完全不同的理解。第一次读只记住了概念,重读理解了理念,并且开始应用到工作中。SRE不是岗位,是理念;稳定性不是目标,是手段;故障不是坏事,是学习机会。

最后,用一句话总结:"重读《SRE》,我有了完全不同的理解。SRE不是岗位,是理念;稳定性不是目标,是手段;故障不是坏事,是学习机会。学以致用,才能真正理解。"

如果你做运维,如果你做DevOps,推荐你重读这本书,每次读都会有新的收获。