产品特色
编辑推荐
√ 超级畅销书,国外在线书店长居前列,打标#1 Best Seller
√ 运维高烧不退,谷歌神书问世,继续为这一热潮推波助澜
√ 本书解密全球神秘又让人仰望的技术岗位——谷歌SRE
√ 未出先火,本书原著问世时各大社区火爆异常、人气爆棚
内容简介
大型软件系统生命周期的绝大部分都处于“使用”阶段,而非“设计”或“实现”阶段。那么为什么我们却总是认为软件工程应该首要关注设计和实现呢?在《SRE:Google运维解密》中,Google SRE的关键成员解释了他们是如何对软件进行生命周期的整体性关注的,以及为什么这样做能够帮助Google成功地构建、部署、监控和运维世界上现存的软件系统。通过阅读《SRE:Google运维解密》,读者可以学习到Google工程师在提高系统部署规模、改进可靠性和资源利用效率方面的指导思想与具体实践——这些都是可以立即直接应用的宝贵经验。
任何一个想要创建、扩展大规模集成系统的人都应该阅读《SRE:Google运维解密》。《SRE:Google运维解密》针对如何构建一个可长期维护的系统提供了非常宝贵的实践经验。
作者简介
Betsy Beyer,是Google 纽约负责SRE 的一名技术文档作家。她之前曾为遍布全球的Google 数据中心与Mountain View 硬件运维团队编写文档。在搬到纽约之前,Betsy 是Stanford 大学技术性写作课程的讲师。她曾经学习国际关系与英文文学,并在Stanford和Tulane 获得学历。
Chris Jones,是Google App Engine 的一名SRE。Google App Engine 是一个PaaS 服务,每天处理超过280 亿个请求。他的办公室在旧金山,他之前的工作包括Google 广告统计、数据仓库,以及用户支持系统的维护。在之前,Chris 曾经在学校IT 行业任职,同时参与过竞选数据分析,以及一些BSD 内核的修改。他有计算机工程、经济学,以及技术政策学的学位。同时他也是一名有执照的职业工程师。
Jennifer Petoff,是Google SRE 团队的一名项目经理,工作地点在都柏林,爱尔兰。她曾经负责管理大型全球项目,包括:科学研究、工程、人力资源,以及广告等。Jennifer在加入Google 之前,曾在化工行业任职八年。她获得了Stanford 大学的化学博士与学士学位,同时她还拥有Rochester 大学的心理学学位。
Niall Murphy,是Google 爱尔兰团队广告SRE 的负责人。他拥有20 年互联网行业经验,目前是INEX(爱尔兰网络互联枢纽)的主席。他曾经写作以及参与写作很多科技文章与书籍,包括O’Reilly 出版的IPv6 Network Administration,以及很多RFC。他目前在参与书写爱尔兰互联网发展史。他拥有计算机科学、数学,以及诗歌学的学历(他当时一定是想错了!)。他目前与妻子和两个儿子居住在都柏林。
孙宇聪,前Google SRE(2007-2015),山景城总部,曾参与构建运维Youtube 全球CDN网络,2008年奥运会直播项目,构建维护海量视频编码传输系统。后参与Google内部云平台运维工作,负责运维全球百万级别服务器集群,以及Borg、Omega等大规模集群理系统。2015年加入Coding,任CTO一职。回国后,积极推动国内容器化运维架构升级。目前是开放运维联盟之应用运维规范制定组,高可用运维规范制定者。
精彩书评
我们都知道 Google公司的分布式系统设计和实现在业界遥遥领先,这些分布式系统多年前就已经运行在百万台服务器上,很多公司也都在觊觎这么多服务器是如何运行和管理的。本书揭开了这层神秘的面纱, SRE就是运行和管理这百万台服务器和众多分布式系统的关键。
多年前,Google是通过发布技术论文帮助业界解决分布式难题的,如今各种分布式系统百花齐放,如何管理这些系统对传统的运维技术和理念产生了极大的挑战,现在 Google给我们带来了技术指导和实践。该书汇集了 Google多年生产环境的管理经验,连编写工作都采用了分布式实现的方法,由各个领域的资深专家联合创作而成。可以把本书看作是一座灯塔,很多公司的集群规模还远达不到 Google的规模,但是参照本书中的技术指导和实践,不仅可以加速传统运维向 SRE的进化,更重要的是可以帮助公司高效地运维和管理各种复杂的分布式系统。
——吕宏利,Google Ads SRE
信息技术领域是英文缩写词的高产领域,几乎所有的新概念、新技术和新产品的推出甚至一场市场营销的策划都会伴随着新的英文缩写词的出现。 SRE这个缩写,在公司内部不仅代表了一个全新的运维理念和其伴随的崭新的工程领域、一套完整的系统运维体系和其对应的实践,而且也是我和我的好朋友——本书的译者孙宇聪一起工作了数年的战斗集体。而本书的作者们也都是这个大集体中的师长和伙伴。
系统运维长久以来都依赖实践积累之上的口口相传,经验通常是领域从业者手里掌握的秘诀。本书从实践出发,汇集了众多业内优秀的系统运维人员的实战心得,理论基础和实操指导并重,系统化地阐述了在新一代信息系统架构(大规模、分布式、高并发、多业务、多租户)下系统运维的理念(当前被广泛接受并被大量实践的 DevOps就起源于此)、思路、实践以及对应的组织架构和人员管理的方方面面,是系统运维领域从业人员不可多得的参考和学习资料。本书是对新时代系统运维领域实践的总结和理论升华。
本书的译者孙宇聪在生活中是一个略显粗犷的大男人,但对于本书的翻译,他充分发挥了自己在这个领域中多年的从业经验和对系统运维的深刻理解,细致入微地做到内容和语言两个方面的精准和优美,这在翻译的技术图书中是非常难得的。
——张矩,锋瑞资本执行董事,前 Google SRE
很高兴受译者孙宇聪邀请为该书写推荐序,这本书是 Google的 SRE部门多年实践的总结,孙宇聪本人也在 Google SRE部门工作多年。SRE部门在 Google真正落实了 DevOps。 SRE工程师在 Google不只是维护各种线上服务的稳定性,还要负责保证各项服务的性能,同时负责管理维护数据中心。美国多家互联网公司都在依照 Google的方式来组织和运作 SRE部门,可以说 SRE被 Google发扬光大,Google的 SRE实践正在成为 DevOps的标准。
SRE和传统的 IT运维有很大区别,SRE真正实现了 DevOps:首先, SRE深度参与开发阶段的工作,对应用程序的设计实现方式、依赖库、运行时的资源消耗都有严格的规约;其次,SRE工程师本身也要做不少编程工作,来实现各种工具用以自动解决问题和故障,换句话说,SRE强调的是对问题和故障的自动处理,而非人工干预;再者,按照 SRE的约定,开发人员自行负责程序上线部署更新,毕竟开发人员对自己开发的程序更熟悉,易于处理程序上线过程中遇到的问题。总之,作为 Google的 DevOps实践,SRE非常注重开发和运维职能的结合,极大地加快了业务应用迭代周期,提升了 IT对业务的支撑能力。
随着 DevOps在国内的宣传推广,国内的很多企业客户也逐渐接受了 DevOps的理念,但是在具体落地实践 DevOps的过程中缺乏实际案例作为参照。本书的推出,方便了国内广大 IT人员在落地 DevOps过程中参照 Google的 SRE实践。非常感谢孙宇聪把这么好的一本书翻译成中文。
——王璞,数人云创始人
Google首创了 SRE这个职业,并将其 SRE思想体系和方法论贡献出来汇集成此书。中文版的及时出版,使得国内广大运维从业者可以更高效地赏阅并实践。很荣幸此书在 GOPS全球运维大会首发,高效运维社区将继续作为 Google SRE国内第1传播平台,推进其和《互联网应用运维框架及能力模型》(本书译者孙宇聪先生联合撰写)的融合,促进其在中国运维行业的落地生根、蓬勃发展。
——萧田国,高效运维社区发起人,开放运维联盟联合主席
从接触 Google SRE的概念开始,就感受到它神秘地存在,直到看到英文版的 SRE书籍,才知道它对传统运维的颠覆性。本书的面世,让国内更多的运维人员接触到 Google先进的运维理论与实践。个人坚信这种理论和实践的提升与改变,才是运维人的出路,运维的业务价值、行业价值便也随之而来。运维也可以“高大上”地存在!
——王津银,“精益运维”发起人;优维科技创始人;开放运维联盟发起人之一;开放运维联盟应用标准规范组组长、起草人
大型互联网应用的部署规模从几千台到几十万台不一,随着软件系统的复杂度提升也呈现出越来越庞大的趋势,如何通过少数人力管理好庞大复杂的应用环境?如何在环境极度复杂的情况下确保软件的服务质量?如何在确保质量的情况下优化软件迭代速度?很多问题困扰着项目管理者、产品经理、软件工程师、运维人员。本书从 Google所面临的问题、价值观、解决方案、体系建设、实践等方面理论结合实际,非常具备指导意义,每一个希望提高工作效率、改进工作成果的技术和管理人员都应该认真阅读理解,结合自身工作环境进行实践,找出一条适合自己的持续发展之路。
——莫显峰,Ucloud联合创始人,CTO
Google丰富的产品与服务已成为全球多数网民每天生活的一部分,而支撑这许多应用的是其背后庞大的基础设施。为了更有效地保证用户体验,Google建立了独树一帜的运维体系并称之为 SRE(Site Reliability Engineering)。绝大部分传统 IT公司会雇佣系统管理员( sysadmin)来运维复杂的计算机系统,但由于大部分工作依靠手工操作,所以随着用户增长,Sysadmin的团队也必须相应地增长。Google SRE团队的精华在于研发软件系统,将运维自动化以替代传统模型中的人工操作。这本书详细地描述了 Google SRE的原则与理念,并列举了实际案例来说明如何灵活运用这些准则。
孙宇聪在 Google任职八年。他不仅精通基础设施的各个方面,还热衷于钻研平台架构。他致力于为中文读者解析 Google运维的窍门,于是在繁忙的工作之余,翻译了这本由他的原同事们撰写的书。由于 Google的规模很大,许多人可能认为 Google的做法无法效仿,但书中描述的原则与道理是可以触类旁通的。书中提及许多实用的道理,比如, 100%的可用性是不现实的,需要达到这个目标的成本通常远超于所能获得的价值,所以 Google会针对每种产品设定一个错误预算(容错率),既能保证用户体验又不影响创新和部署的速度。
我希望读者像我一样,通过阅读这本书,能学习到如何更有效地运维自己的产品与平台。
——Joe Zhu,Zenlayer创始人
Google SRE团队通过写作本书为整个运维行业做出了巨大的贡献。通过本书,他们将指导思想、实践和常见的应用架构模式以及团队建设模式共享出来,揭示了 Google如何能够持续不断地建设、部署世界级的工程项目,同时保持世界一流的可靠性标准。每个感兴趣的人都应该通读本书,切身尝试书里提到的一些想法。
Jez Humble,Continuous Delivery和 Lean Enterprise书籍的共同作者
我还记得 Google第1次在运维技术论坛上发表的演讲。感觉就像听了一场野生动物专家针对两栖爬行动物的专题介绍。演讲非常有意思,但是由于演讲的内容和观众的日常工作感觉距离太遥远,因此演讲的效果并不好。
随着 IT行业的不断改变,中小型企业的运维实践逐渐和 Google接轨。突然之间, Google多年打磨、积累形成的运维实践变成了热门的行业焦点。对于一个面临日益严峻的可靠性、可扩展性、可维护性挑战的行业,这本书真是太及时了!
——David N. Blank-Edelman,总监,USENIX董事会成员,以及 SREcon 大会的共同创始人
自从我离开 Google这座充满魔力的城堡,我就一直在等这本书面世,我一直在用书中的思想理念给同事们布道。
——Bjo.. rn Rabenstein,SoundCloud 生产工程团队负责人, Prometheus(开源项目)开发者,前 Google SRE(2013)
Google是 SRE理念的发明者。本书不光介绍了这个职位的技术细节,还包括了其中的思考过程、团队目标、设计理念以及学到的宝贵课程。如果你想从起源上了解 SRE一词的意义,应该从本书开始。
——Russ Allbery,Google SRE,安全工程师
本书的作者们和大家分享了 Google SRE团队的成长经历,包括其中走过的弯路。 Google凭借这些实践经验,将 Google服务部署到全世界,同时保持世界一流的可靠性。我高度建议任何一个想要创建、扩展大规模集成系统的人阅读本书。这本书针对如何构造一个可长期维护的系统提供了非常宝贵的实践经验。
——Rik Farrow,USENIX成员
开发一个 Gmail这样的大型分布式系统已经很难了。如何运营维护这样的一套系统,在保障每天不断更新的同时保障一流的可靠性就更难了。这本书就像一套完备的菜谱,收集了 Google在实践过程中积累的宝贵经验。希望通过阅读本书,读者能够绕开一些 Google曾经走过的弯路。
——Urs Ho..lzle,Google 基础架构组资深副总裁
目录
前言 xxxi
序言 xxxv
第Ⅰ部分 概览
第1 章 介绍 2
系统管理员模式 2
Google 的解决之道:SRE 4
SRE 方法论 6
确保长期关注研发工作 6
在保障服务SLO 的前提下最大化迭代速度 7
监控系统 8
应急事件处理 8
变更管理 9
需求预测和容量规划 9
资源部署 10
效率与性能 10
小结 10
第2 章 Google 生产环境:SRE 视角 11
硬件 11
管理物理服务器的系统管理软件 13
管理物理服务器 13
存储 14
网络 15
其他系统软件 16
分布式锁服务 16
监控与警报系统 16
软件基础设施 17
研发环境 17
莎士比亚搜索:一个示范服务 18
用户请求的处理过程 18
任务和数据的组织方式 19
第Ⅱ部分 指导思想
第3 章 拥抱风险 23
管理风险 23
度量服务的风险 24
服务的风险容忍度 25
辨别消费者服务的风险容忍度 26
基础设施服务的风险容忍度 28
使用错误预算的目的 30
错误预算的构建过程 31
好处 32
第4 章 服务质量目标 34
服务质量术语 34
指标 34
目标 35
协议 36
指标在实践中的应用 37
运维人员和最终用户各关心什么 37
指标的收集 37
汇总 38
指标的标准化 39
目标在实践中的应用 39
目标的定义 40
目标的选择 40
控制手段 42
SLO 可以建立用户预期 42
协议在实践中的应用 43
第5 章 减少琐事 44
琐事的定义 44
为什么琐事越少越好 45
什么算作工程工作 46
琐事繁多是不是一定不好 47
小结 48
第6 章 分布式系统的监控 49
术语定义 49
为什么要监控 50
对监控系统设置合理预期 51
现象与原因 52
黑盒监控与白盒监控 53
4 个黄金指标 53
关于长尾问题 54
度量指标时采用合适的精度 55
简化,直到不能再简化 55
将上述理念整合起来 56
监控系统的长期维护 57
Bigtable SRE :警报过多的案例 57
Gmail :可预知的、可脚本化的人工干预 58
长跑 59
小结 59
第7 章 Google 的自动化系统的演进 60
自动化的价值 60
一致性 60
平台性 61
修复速度更快 61
行动速度更快 62
节省时间 62
自动化对Google SRE 的价值 62
自动化的应用案例 63
Google SRE 的自动化使用案例 63
自动化分类的层次结构 64
让自己脱离工作:自动化所有的东西 66
舒缓疼痛:将自动化应用到集群上线中 67
使用Prodtest 检测不一致情况 68
幂等地解决不一致情况 69
专业化倾向 71
以服务为导向的集群上线流程 72
Borg :仓库规模计算机的诞生 73
可靠性是最基本的功能 74
建议 75
第8 章 发布工程 76
发布工程师的角色 76
发布工程哲学 77
自服务模型 77
追求速度 77
密闭性 77
强调策略和流程 78
持续构建与部署 78
构建 78
分支 79
测试 79
打包 79
Rapid 系统 80
部署 81
配置管理 81
小结 82
不仅仅只对Google 有用 83
一开始就进行发布工程 83
第9 章 简单化 85
系统的稳定性与灵活性 85
乏味是一种美德 86
我绝对不放弃我的代码 86
“负代码行”作为一个指标 87
最小 API 87
模块化 87
发布的简单化 88
小结 88
第Ⅲ部分 具体实践
第10 章 基于时间序列数据进行有效报警 93
Borgmon 的起源 94
应用软件的监控埋点 95
监控指标的收集 96
时间序列数据的存储 97
标签与向量 98
Borg 规则计算 99
报警 104
监控系统的分片机制 105
黑盒监控 106
配置文件的维护 106
十年之后 108
第11 章 on-call 轮值 109
介绍 109
on-call 工程师的一天 110
on-call 工作平衡 111
数量上保持平衡 111
质量上保持平衡 111
补贴措施 112
安全感 112
避免运维压力过大 114
运维压力过大 114
奸诈的敌人—运维压力不够 115
小结 115
第12 章 有效的故障排查手段 116
理论 117
实践 119
故障报告 119
定位 119
检查 120
诊断 122
测试和修复 124
神奇的负面结果 125
治愈 126
案例分析 127
使故障排查更简单 130
小结 130
第13 章 紧急事件响应 131
当系统出现问题时怎么办 131
测试导致的紧急事故 132
细节 132
响应 132
事后总结 132
变更部署带来的紧急事故 133
细节 133
事故响应 134
事后总结 134
流程导致的严重事故 135
细节 135
灾难响应 136
事后总结 136
所有的问题都有解决方案 137
向过去学习,而不是重复它 138
为事故保
SRE:Google运维解密 下载 mobi epub pdf txt 电子书 格式