书籍作者:[美] 纳特韦尔奇 | 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应用程序等很多环节。
√ 作者长期服务于对服务中断非常敏感的大型互联网公司,总结出一套久经考验的方法论,专用于监控现代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