站点可靠性工程(Site Reliability Engineering,简称SRE)是一个令人兴奋的新兴领域,它专注于如何确保系统稳定、可靠地运行。本书基于一个金字塔层次结构模型,深入浅出地介绍了关于SRE 的方方面面,涉及监控、事故响应与回顾、测试与发布、容量规划、开发、用户体验设计,以及贯穿其中的沟通技巧。本书是SRE 工程师、DevOps 工程师、运维工程师和系统管理员不可或缺的参考资料;软件架构师、软件工程师、用户体验设计师也能从本书中获取关于SRE 的相关知识。
Nat Welch是一名美国的软件开发人员。自2005年以来,他一直做着构建网站并保持其运行的工作。他曾先后是谷歌、HFA等各大平台的网站可靠性工程师。多年来,他一直致力于提高网站的可靠性以帮助开发人员构建可靠的系统。
冯文辉,现任ThoughtWorks中国区资深架构咨询师,具有11年的软件行业经验,曾服务于多个世界500强企业,覆盖银行、保险、通信、汽车、物流等行业。为客户提供敏捷开发、DevOps、架构设计与数字化转型等咨询服务。热衷于探索更好的架构设计方法,助力企业的数字化转型。
总会在某个时候,软件开发人员所开发的站点会遭遇噩梦般的无法访问的故障——客户说他们已经连续几个小时无法访问你的网站了;当你在睡觉时,没有顾客能够购买网站上正在销售的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)可能是业务最重要的指标。