猜你喜欢
SRE生存指南:系统中断响应与正常运行时间最大化

SRE生存指南:系统中断响应与正常运行时间最大化

书籍作者:[美] 纳特韦尔奇 ISBN:9787121371769
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4409
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

站点可靠性工程(Site Reliability Engineering,简称SRE)是一个令人兴奋的新兴领域,它专注于如何确保系统稳定、可靠地运行。本书基于一个金字塔层次结构模型,深入浅出地介绍了关于SRE的方方面面,涉及监控、事故响应与回顾、测试与发布、容量规划、开发、用户体验设计,以及贯穿其中的沟通技巧。

本书是SRE工程师、DevOps工程师、运维工程师和系统管理员不可或缺的参考资料;软件架构师、软件工程师、用户体验设计师也能从本书中获取关于SRE的相关知识。

作者简介

Nat Welch是一名美国的软件开发人员。自2005年以来,他一直做着网站构建及运维的工作。他热爱网站的基础设施建设,因为这可以支持其他人的创造性努力。2012年,Nat成为谷歌的SRE(Site Reliability Engineering,站点可靠性工程)工程师,并爱上了这个职业。从那时起,他在各种规模的公司工作过,并一直致力于提高网站的可靠性,以帮助开发人员构建可靠的系统。


关于审查者

Pavlos Ratis是HolidayCheck的一名SRE工程师,负责自动化软件和基础设施的可靠性。随着时间的推移,他参与了大量的项目,并参与过从编写软件到自动化,管理基于云的多服务器基础设施,到开发Web应用程序等很多环节。


编辑推荐
适读人群 :《SRE写真》适合需要时常应对网站崩溃问题并有志于提升公司软件稳定性的软件开发者、开始从事网站可靠性工程师工作的起步者阅读。

√ 作者长期服务于对服务中断非常敏感的大型互联网公司,总结出一套久经考验的方法论,专用于监控现代Web服务、设置警报、评估针对生产事件的响应机制,以及短时间内恢复网站宕机事故。

√ 除了别出心裁增设SRE面试一章,精华内容还包括监控灾难性故障|向团队发出紧急宕机警报|分析生产事件应对策略|构建属于自己的自动化测试工具或相关软件|预测瓶颈以改善用户体验。

√ 阿里巴巴高可用架构团队负责人游骥|蘑菇街平台技术总监赵成|《SRE:Google运维解密》译者(谷歌前SRE)作序力荐,ThoughtWorks资深技术专家冯文辉倾情献译。

√ 不仅涵盖对服务中断的反应——揭示安全测试和发布软件所需的工具和策略、制订长期增长计划,还预测了未来的瓶颈所在,完整覆盖网站全线全周期危机。

√ 全书系统呈现由冗余和容灾|容量规划|系统自动保护|失败预案|监控能力|发布与变更管理|故障应急处理等领域核心话题构成的SRE技术蓝图。


前言

总会在某个时候,软件开发人员所开发的站点会遭遇噩梦般的无法访问的故障——客户说他们已经连续几个小时无法访问你的网站了;当你在睡觉时,没有顾客能够购买网站上正在销售的T恤;或者在一年中最重要的销售日里,所有服务器都因承受不了高负载而崩溃了。

这本书适合谁

本书面向希望提高公司软件可靠性的软件开发人员和运维人员。本书将向你介绍一个致力于提高软件可靠性的基本框架,并使你深入了解站点可靠性工程这个领域。对于已经经历过重大系统服务中断的工程师和开发人员来说,这是你希望拥有的书。对于那些幸运地没有经历过服务中断噩梦的工程师和开发人员,现在就买这本书吧!

这本书涵盖了哪些内容

第1章 简介,探讨了SRE领域相对较新的发展状况,并概述了用于本书的可供上手实践的框架。

第2章 监控,讨论了在监控时使用的工具和方法。在本章之后,一个很好的实验就是设置对服务的监控,即使它们只是为测试而编写的虚假服务,你也应该去监控它们随着时间是否有所变化。

第3章 事故响应,解释了该如何应对中断,并让团队为最坏的情况做好准备。本章还专注于围绕团队协作建立即时响应与轮换的最佳实践系统,以及构建流程以尽量减轻由生产事故造成的压力。

第4章 事后回顾,让你能为自己、你的团队和你的组织撰写事后回顾报告,以促进事后回顾。本章还讨论了要收集的数据,以及如何借助通信跟踪未来的工作。

第5章 测试和发布,回顾了有关测试和发布的常见实践方案。

第6章 容量规划,介绍了一些有关预算的基础知识,并讨论了如何为基础架构的扩容制订计划。

第7章 构建工具,讨论了如何从提高响应力的角度来编写软件,还探讨了如何发现新项目,如何定义这些项目及如何规划它们。然后,讨论了如何实施这些项目并进行软件的长期维护,以及如何反思自己所做的工作。

第8章 用户体验,概述了有关用户体验和用户测试的基础知识,并讨论了安全性和性能预算问题。

第9章 网络基础,帮助你深入了解网络基础知识。

第10章 Linux和云基础,介绍了Linux和常见云服务的基础知识。

本书配套资源

?本书中所有用Go语言编写的代码都基于Go 1.10版本。读者可以到其官网获取最新的版本。

?本书中所有用Ruby语言编写的代码都基于Ruby 2.5版本。读者可以到其官网获取最新的版本。

本书使用的约定

本书中使用了一些文本约定。

代码块示例如下。

"hello world"

end

当希望读者注意代码块中的特定部分时,相关的行或项目将以粗体显示,示例如下。

"hello world"

end

end

粗体:表示第一次出现的新术语、重要单词。例如,会出现如下所示的文本。

服务水平指标 Service Level Indicator(SLI)可能是业务最重要的指标。

目录

1 简介 1

SRE简史 2

SRE是什么 3

关于这本书 7

以SRE作为新项目的框架 9

小结 12


2 监控 13

为什么要监控 13

检测应用程序 16

度量什么 23

SLI、SLO和错误预算简介 26

错误预算 27

收集和保存监控数据 29

轮询应用程序 29

推送应用程序 32

展示监控信息 35

任意查询 35

图表 36

仪表板 37

聊天机器人 38

管理和维护监控数据 38

沟通 39

他们知道有监控吗 39

小结 40

参考资料 40


3 事故响应 42

什么是事故 43

什么是事故响应 45

警报 47

什么时候发起警报 48

怎么发出警报 49

向谁发出警报 54

随时待命 55

沟通 57

事故指挥系统 59

在哪里沟通 61

恢复系统 61

警报解除 63

小结 64


4 事后回顾 65

什么是事后回顾 65

为什么写事后回顾报告 66

何时写事后回顾报告 68

开展事故分析 69

如何写事后回顾报告 71

总结 71

影响 72

时间 73

根本原因 74

行动项 75

附录 77

停止事后指责 77

举行事后回顾会议 79

分析以往的事后回顾报告 80

MTTR与MTBF 81

警报疲劳 81

讨论过去的服务中断 81

小结 82

参考资料 82


5 测试和发布 83

测试 84

测试内容 87

发布 100

何时发布 101

回滚 104

自动化 104

持续 105

小结 106


6 容量规划 107

企业财务简介 108

为什么需要规划 110

风险管理与期望管理 111

定义一个规划 112

当前的容量是多少 113

何时达到容量极限 115

应该如何更改容量 119

执行规划 125

架构——性能变化的根源 126

技术作为利润中心和采购 128

小结 128


7 构建工具 129

寻找项目 131

定义项目 133

RDD 133

设计文档 136

项目计划 138

例子 139

回顾会与站会 141

工作分配 142

构建项目 143

关于编写代码的建议 143

关注点分离 144

长期工作 145

笔记本 148

文档与维护项目 149

小结 150


8 用户体验 151

设计和用户体验简介 155

现实世界的交互设计 157

用户测试 160

挑选一种体验 161

设计测试 162

寻找要测试的人 162

开发者体验 163

工具经验 164

绩效预算 164

安全性 166

身份认证 167

授权 168

风险概况 168

网络钓鱼 169

ACM道德准则 170

小结 171

参考资料 172


9 网络基础 173

互联网 173

发送一个HTTP请求 175

DNS 175

以太网和TCP/IP 179

HTTP 186

curl与wget 189

网络监控工具 194

netstat 194

nc 195

tcpdump 196

小结 197

参考资料 197


10 Linux和云基础 198

Linux基础 198

一切皆是文件 199

进程是什么 206

syscalls 207

构建自己的工具 213

云基础 214

虚拟机 215

容器 216

负载均衡 218

自动伸缩 219

存储 219

队列与发布/订阅 220

伸缩单元 221

架构面试示例 222

小结 226

参考资料 226

标签
运维
产品特色