首页>参考读物>计算机科学与技术>综合

云系统管理:大规模分布式系统设计与运营
作者 : [美]托马斯 A.利蒙切利( Thomas A. Limoncelli),斯特拉塔 R. 查卢普(Strata R. Chalup)克里斯蒂娜 J. 霍根(Christina J. Hogan) 著
译者 : 姚军 等译
出版日期 : 2016-07-25
ISBN : 978-7-111-54160-8
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 388
开本 : 16
原书名 : The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

资深云计算专家十余年经验结晶,全方位介绍大规模分布式系统的设计和运营
理论与实践相结合,不仅介绍分布式系统架构、应用和设计原则的理论知识,而且包含Google、Facebook等公司的成功案例分析,以及DevOps等全栈融合思想

“这本书中囊括了大量极具深度和思想的实践,看后令人印象深刻。”
—— Win Treese,《Designing Systems for Internet Commerce》合著者

本书重点关注分布式与云计算,并为系统管理员带来第一手的DevOps/SRE资料。本书全方位地介绍大规模分布式系统的设计和运营,不仅涵盖分布式系统架构、应用和设计原则的理论知识,而且包含Google、Etsy、Twitter、Facebook、Netflix、Amazon等大型技术公司的成功案例分析,能为系统管理员提供有益指导。

设计和构建现代网络与分布式系统
介绍大型系统设计的基础知识
了解云管理的新软件工程影响
使系统能适应失效、增长和动态伸缩
实现DevOps原则和文化变革
选择IaaS/PaaS/SaaS和虚拟平台


通过最新的DevOps/SRE策略运营和运行系统
零停机升级生产系统
自动化的概念与应用
提高正常运行时间的最佳实践
分布式系统应用不同系统管理技术的原因
识别和解决弹性问题


评估和评价团队的运营效能
管理科学的持续改进过程
一个可以立即使用的评估系统


本书是几位供职于全球最大规模技术公司的专家的力作,全方位地介绍了大规模分布式系统的设计和运营,不仅介绍有关分布式系统架构、应用和设计原则的理论知识,更有Google、Facebook等公司的成功案例分析,而且包括DevOps等全栈融合思想。细细阅读,你不仅能够了解许多分布式计算的关键概念和思想,还可以深深体会技术的发展过程,以及大规模网站运营中的经验和教训。
本书分为三部分。第一部分(第1~6章)讨论在大规模、复杂、基于云的分布式计算系统中如何进行设计的问题,从下至上逐层介绍设计的各个要素,内容涉及为实现平稳运营而应该具备的软件功能,如何选择服务平台,如何创建Web和其他应用程序的基本组件,如何通过伸缩性设计模式来扩增服务所使用的基本组件,以及如何应用弹性设计模式等。第二部分(第7~20章)描述如何运营第一部分中介绍的系统,首先介绍分布式系统运行方式以及DevOps文化、历史和实践;其次讨论如何构建服务和准备投产以及如何测试、批准和投产;然后介绍如何创建工具和自动化运营工作,以及设计文档、灾难准备;再次阐释监控的基础知识以及架构与实践;最后提出持续改善的战略。第三部分包括五个附录,涵盖运营团队的评估系统、分布式计算的历史、相关的表单模板、推荐的阅读材料以及其他参考材料。


托马斯 A. 利蒙切利
(Thomas A. Limoncelli)
国际知名作家、演说家和系统管理专家。现任Stack Exchange公司SRE,之前曾在Google NYC担任Blog Search(博客搜索)、Ganeti和各种内部企业IT服务项目的SRE。著有《Time Management for System Administrators》和《The Practice of System and Network Administration》。

 
斯特拉塔 R. 查卢普
  (Strata R. Chalup)
Virtual.Net公司的所有者和高级咨询师,有超过25年的硅谷从业经验,专注于企业的IT战略、最佳实践和可扩展基础设施, 客户包括Apple、Sun、Cisco、McAfee和Palm等。


克里斯蒂娜 J. 霍根
(Christina J. Hogan)
资深系统管理专家、系统架构师、安全顾问,在系统管理和网络工程方面有20余年从业经验。她也参与项目管理、客户管理和人员管理。


图书前言

下面的表述是否真实?
1)最为可靠的系统是使用廉价、不可靠的组件构建的。
2)Google为数十亿用户服务所用的技术遵循的模式,与你处理数千名用户的系统所遵循的模式相同。
3)某种过程的风险越大,你越应该尝试。
4)某些最重要的软件功能是用户从未发现的。
5)你应该随意选择一些机器,并关闭其电源。
6)Facebook在接下来六个月中所要发布的代码,其功能可能已经在你的浏览器中出现了。
7)每天多次更新软件所需要的人工很少。
8)随时待命并不一定是一种紧张、痛苦的体验。
9)你不应该监控机器是否启动。
10)运营和管理可以通过试验和证明的科学原理进行。
11)Google已经对僵尸攻击时的对策进行了演练。
这些表述都是真实的,当你读完本书,就会知道原因。
本书讲述的是大规模云服务(数百万甚至数十亿用户使用的基于互联网的服务)的构建和运行。每天,都有越来越多的企业采用这些技术,因此,本书是为所有人写的。
本书的目标读者是系统管理员和他们的经理。你无需计算机科学的背景,但是你应该有Unix/Linux系统管理、联网的经验,以及操作系统的概念。
我们重点关注构建和运营组成“云”的服务,而不是指导云服务的使用。
云服务必须是可用的、快速的和安全的。考虑到云的规模,这将是独特而杰出的工程成就。因此,云规模服务设计不同于典型的企业服务。可用性很重要,因为互联网是7×24开放的,用户处于各个时区。快速的重要性在于用户会因为慢速的服务而感到沮丧,所以缓慢的服务会被更快的竞争者所取代。安全的重要性则在于,作为他人数据的托管者,我们义不容辞(而且负有法律责任)地要保护人们的数据。
这些要求是互相交织的。如果网站不安全,当然也就不可能可靠。如果网站速度不快,可用性也就不足。如果网站下线,当然就不可能快速。
最明显的云规模服务是网站。但是,还有一个巨大的无形互联网访问服务生态系统,这些服务不是通过浏览器访问的。例如,智能手机应用通过API调用访问云服务。
在本书余下的部分中,我们倾向于使用“分布式计算”而非“云计算”。云计算是一个营销用语,对不同的人有不同的含义。分布式计算描述了使用许多机器(而非单一机器)提供应用程序和服务的一种架构。
本书介绍的是不受时间影响的基本原理及方法。因此,我们不推荐使用特定的产品或者技术。我们可以提供前5种最流行的Web服务器、NoSQL数据库或者持续构建系统的对比,但是如果这么做,本书就会在出版的那一刻过时。相反,我们讨论的是选择这些系统时应该注意的特质,提供一种工作模式。这种方法的意图是帮助你在技术不断变化的漫长职业生涯中始终做好准备。当然,我们将用具体的技术和产品说明我们的观点,但是不代表我们支持这些产品和服务。
本书有时看似理想化,这是故意为之。我们想为读者提供事物将会如何发展、该坚持什么原则的愿景,目的是更上一层楼。
关于本书
本书分为两个部分—设计和运营。
第一部分捕捉我们在大规模、复杂、基于云的分布式计算系统设计上的想法。在引言之后,我们从下向上逐层介绍设计的每个要素。我们从系统管理员(而非计算机科学家)的角度介绍分布式系统,要运营一个系统就必须理解其内部原理。
第二部分描述如何运营这些系统。前面几章介绍最基本的问题。后面几章深入更为复杂的技术活动,然后是概要规划和将以上要素组合起来的战略。
最后是附加材料,包括运营团队的评估系统、被歪曲的分布式计算历史、正文中提及的表单模板、建议阅读的材料以及其他参考材料。
我们满怀兴奋之情介绍本系列书籍中的一个新特征:运营评估系统。这个系统由一系列评估活动组成,你可以用它们评估自己的运营,找出需要改进的领域。评估问题和“搜索”建议可以在附录A中找到。第20章是该系统的说明。
致谢
没有我们所在社区及来自全球的帮助及反馈,本书就不可能出版。DevOps社区慷慨地提供了帮助。
首先,我们要感谢我们爱人和家人:Christine Polk、Mike Chalup、Eliot和Joanna Lear。他们的爱和耐心成就了一切。
之所以我们能够看得更远,那是因为我们站在巨人的肩上。某些章节在很大程度上得到了下列人士的支持和建议:John Looney 和 Cian Synnott(第1章);Marty Abbott 和 Michael Fisher(第5章);Damon Edwards、Alex Honor和 Jez Humble(第9章和第10章);
John Allspaw(第12章);Brent Chapman(第15章);Caskey Dickson和Theo Schlossnagle(第16章和17章);Arun Kejariwal和Bruce Yan(第18章);Benjamin Treynor Sloss(第19章);Geoff Halprin(第20章和附录A)。
感谢Gene Kim“有策略”的启发和鼓励。有几十位人士帮助过我们—有些人提供奇闻轶事,有些人审核某些部分或者整本书。感谢他们所有人的公平方式是按照字母顺序排列,并预先向我们遗漏的所有人道歉:Thomas Baden、George Beech、Raymond Blum、Kyle Brandt、Mark Burgess、Nick Craver、Geoff Dalgas、Robert P. J. Day、Patrick Debois、Bill Duane、Paul Evans、David Fullerton、Tom Geller、Peter Grace、Elizabeth Hamon Reid、Jim Hickstein、Zachary Hueras、Matt Jones、Jennifer Joy、Jimmy Kaplowitz、Daniel V. Klein、Steven Levine、Cory Lueninghoener、Shane Madden、Jim Maurer、Stephen McHenry、Dinah McNutt、Scott Hazen Mueller、Steve Murawski、Mohit Muthanna、Lenny Rachitsky、Amy Rich、Adele Shakal、Bart Silverstrim、Josh Simon、Joel Spolsky、Desiree Sylvester、Win Treese、Todd Underwood、Nicole Forsgren Velasquez和Dave Zwieback。
最后(但并非不重要),感谢Addison-Wesley的所有人,特别要感谢Debra Williams Cauley将我们引见给Addison-Wesley,并在整个过程中为我们掌舵;感谢Michael Thurston对本书初稿的编辑和改进,使之更加完美;感谢Kim Boedigheimer的协调工作以及在我们惊慌的时候帮助我们保持镇静;感谢我们的LaTeX奇才Lori Hughes;感谢产品经理Julie Nahil;感谢文字编辑Jill Hobbs;还要感谢John Fuller和Mark Taub忍受我们的特殊要求!
第一部分 设计:构建系统
第1章 分布式世界中的设计
  概述分布式系统的设计。
第2章 为运营而设计
  为了实现平稳运营而应该具备的软件功能。
第3章 选择服务平台
  物理机和虚拟机,私有云和公共云。
第4章 应用程序架构
  创建Web和其他应用程序的基本组件。
第5章 伸缩性设计模式
  扩增服务所用的基本组件。
第6章 弹性设计模式
  创建可幸免于故障的系统的基本组件。
第二部分 运营:运行系统
第7章 分布式世界中的运营
  分布式系统运行方式概述。
第8章 DevOps文化
  DevOps文化、历史和实践简介。
第9章 服务交付:构建阶段
  如何构建服务和准备投产。
第10章 服务交付:部署阶段
  服务如何测试、批准和投产。
第11章 升级运行中的服务
  如何在不停机的情况下升级服务。
第12章 自动化
  创建工具和自动化运营工作。
第13章 设计文档
  书面交流设计和意图。
第14章 随时待命
  处理异常情况。
第15章 灾难准备
  通过规划和实践强化系统。
第16章 监控基础知识
  监控术语和策略。
第17章 监控架构与实践
  监控组件和方法。
第18章 容量规划
  在需要之前规划并提供附加资源。
第19章 建立KPI
  通过计量和反思科学地推动行为。
第20章 卓越运营
  持续改善的战略。
第三部分 附录
附录A 评估
附录B 分布式计算和云的起源及未来
附录C 伸缩性术语和概念
附录D 模板和示例
附录E 推荐读物
后记
  最后的一些想法。
参考文献

上架指导

计算机

封底文字

“这本书中囊括了大量极具深度和思想的实践,看后令人印象深刻。”

——Win Treese,《Designing Systems for Internet Commerce》合著者

本书重点关注分布式与云计算,并为系统管理员带来第一手的DevOps/SRE资料。本书全方位地介绍大规模分布式系统的设计和运营,不仅介绍分布式系统架构、应用和设计原则的理论知识,而且包含Google、Etsy、Twitter、Facebook、Netflix、Amazon等大型技术公司的成功案例分析,能为系统管理员提供有益指导。

设计和构建现代网络与分布式系统
 介绍大型系统设计的基础知识
 了解云管理的新软件工程影响
 使系统能适应失效、增长和动态伸缩
 实现DevOps原则和文化变革
 选择IaaS/PaaS/SaaS和虚拟平台

通过最新的DevOps/行为策略操作和运行系统
 零停机升级生产系统
 自动化的概念与应用
 提高正常运行时间的最佳实践
 分布式系统应用不同系统管理技术的原因
 识别和解决弹性问题
评估和评价团队的运营效能:
 管理科学的持续改进过程
 使用一个40页、无痛的评估系统

作者简介

[美]托马斯 A.利蒙切利( Thomas A. Limoncelli),斯特拉塔 R. 查卢普(Strata R. Chalup)克里斯蒂娜 J. 霍根(Christina J. Hogan) 著:暂无简介

译者简介

姚军 等译:暂无简介

译者序

我们这一代人是幸运的,因为我们生在变革的年代,亲眼见证了蒸汽机发明以来最重要的技术成就—计算机和互联网的兴起。
在我们儿时,连机械化都是一种梦想,仅仅在十年之前,还无法想象一部手机就可以拥有过去大型计算机的能力,过去只有在科幻小说中才能看到的情景,而今已经十分普遍。世界仿佛变得很小,一切都在我们的指尖之下,这就是科技的力量。
科技的发展帮助人类不断创造出更高质量、更低价格的产品,而产品之后的设计思想更为重要。我们今天拥有似乎无穷无尽的网络资源和计算能力,不仅是因为硬件技术的发展,更为关键的是分布式计算的出现,它将非关即开的数字化设备模型化为传统上的“模拟”系统,增进了系统的伸缩性和可靠性。借助这一关键的思路,我们才有了今天7×24运行的各种线上系统,以及引人遐想的“云计算”。
本书是几位供职于全球最大规模技术公司的专家的力作,全方位地介绍了大规模分布式系统的设计和运营,内容十分充实,不仅介绍了有关分布式系统架构、应用和设计原则的理论知识,更有Google、Facebook等公司的成功案例分析,在附录中还介绍了分布式系统的由来以及成熟度模型、设计文档等模板。尽管本书的主题是运营,但是其中系统阐述了运营与开发的关系,包括DevOps等全栈融合思想,对于这种环境下的开发人员也极有教益。细细阅读,不仅能够了解许多分布式计算的关键概念和思想,还可以深深体会技术的发展过程,以及大规模网站运营中的经验和教训。在艰苦的翻译期间,我们的思想也受到了很大的冲击,感受到技术发展对运营思想甚至整个企业经营思想的影响。掩卷之时也有一份担心,我们是否已经捕捉到原书的精髓,并将其准确传达给读者?
本书的翻译工作主要由姚军和陈志勇完成,徐锋、刘建林、吴兰陟、宁懿、姚红斌、白龙、陈美娜、谢志雄、方翊、陈霞、林耀成、管军凯、吴玥、余骆、耿飞等人也为翻译工作做出了贡献。

译 者
2016年3月

图书目录

译者序
前言
作者简介
引言1
第一部分 设计:构建系统
第1章 分布式世界中的设计8
1.1 大规模的可见性9
1.2 简单的重要性10
1.3 构成10
1.3.1 具有多个后端副本的负载平衡器10
1.3.2 具有多个后端的服务器12
1.3.3 服务器树13
1.4 分布状态14
1.5 CAP原则16
1.5.1 一致性16
1.5.2 可用性17
1.5.3 分区可容忍性17
1.6 松散耦合系统19
1.7 速度20
1.8 小结23
练习23
第2章 为运营而设计25
2.1 运营需求25
2.1.1 配置26
2.1.2 启动和关机27
2.1.3 队列排空28
2.1.4 软件升级29
2.1.5 备份和恢复29
2.1.6 冗余性29
2.1.7 数据库副本30
2.1.8 热切换31
2.1.9 单独功能开关31
2.1.10 优雅降级31
2.1.11 访问控制和速率限制32
2.1.12 数据导入控制33
2.1.13 监控33
2.1.14 审计33
2.1.15 调试设施34
2.1.16 异常收集34
2.1.17 运营文档35
2.2 为运营实现设计35
2.2.1 从一开始就构建功能36
2.2.2 在确定功能时提出请求36
2.2.3 自行编写功能37
2.2.4 与第三方供应商合作37
2.3 改善模型38
2.4 小结38
练习39
第3章 选择服务平台40
3.1 服务抽象水平41
3.1.1 基础设施即服务41
3.1.2 平台即服务42
3.1.3 软件即服务43
3.2 机器的类型44
3.2.1 物理机器44
3.2.2 虚拟机44
3.2.3 容器46
3.3 资源共享水平48
3.3.1 依从性49
3.3.2 隐私49
3.3.3 成本49
3.3.4 控制50
3.4 主机托管50
3.5 选择策略51
3.6 小结53
练习53
第4章 应用程序架构54
4.1 单机Web服务器55
4.2 三层Web服务56
4.2.1 负载平衡器种类56
4.2.2 负载平衡方法57
4.2.3 共享状态的负载平衡58
4.2.4 用户身份标识59
4.2.5 伸缩性59
4.3 四层Web服务60
4.3.1 前端60
4.3.2 应用服务器61
4.3.3 配置选项62
4.4 反向代理服务62
4.5 云规模服务62
4.5.1 全局负载平衡器63
4.5.2 全局负载平衡方法63
4.5.3 使用用户特定数据的全局负载平衡64
4.5.4 内部主干网64
4.6 消息总线架构66
4.6.1 消息总线设计67
4.6.2 消息总线可靠性67
4.6.3 例1:链接缩短网站68
4.6.4 例2:员工人力资源数据更新69
4.7 面向服务的架构70
4.7.1 灵活性70
4.7.2 支持70
4.7.3 最佳实践71
4.8 小结71
练习72
第5章 伸缩性设计模式73
5.1 总体战略74
5.1.1 识别瓶颈74
5.1.2 重新设计组件74
5.1.3 计量结果74
5.1.4 保持主动75
5.2 纵向扩展75
5.3 AKF伸缩立方体76
5.3.1 x轴:水平复制76
5.3.2 y轴:功能或者服务分割77
5.3.3 z轴:面向查找的分割79
5.3.4 组合80
5.4 缓存80
5.4.1 缓存效能80
5.4.2 缓存布置81
5.4.3 缓存持久性81
5.4.4 缓存置换算法82
5.4.5 缓存条目失效82
5.4.6 缓存大小83
5.5 数据分片84
5.6 线程处理86
5.7 队列86
5.7.1 优点87
5.7.2 变种87
5.8 内容分发网络87
5.9 小结89
练习89
第6章 弹性设计模式90
6.1 软件弹性胜过硬件可靠性91
6.2 所有东西最终都会失灵92
6.2.1 分布式系统的MTBF92
6.2.2 传统方法92
6.2.3 分布式计算方法93
6.3 通过备用容量实现弹性94
6.3.1 需要多少备用容量95
6.3.2 负载平衡与热备份的对比95
6.4 故障域96
6.5 软件故障97
6.5.1 软件崩溃97
6.5.2 软件挂起98
6.5.3 死查询98
6.6 物理故障99
6.6.1 部件和组件99
6.6.2 机器101
6.6.3 负载平衡器102
6.6.4 机架103
6.6.5 数据中心104
6.7 超载故障104
6.7.1 流量浪涌105
6.7.2 DoS和DDoS攻击106
6.7.3 抓取攻击106
6.8 人为错误107
6.9 小结108
练习108
第二部分 运营:运行系统
第7章 分布式世界中的运营110
7.1 分布式系统运营111
7.1.1 SRE和传统企业IT的对比111
7.1.2 变化和稳定性的对比112
7.1.3 SRE定义113
7.1.4 大规模运营114
7.2 服务生命周期116
7.2.1 服务启动117
7.2.2 服务退役120
7.3 运营团队组织策略120
7.3.1 团队成员的工作日类型122
7.3.2 其他策略124
7.4 虚拟办公室125
7.4.1 沟通机制125
7.4.2 沟通策略125
7.5 小结125
练习126
第8章 DevOps文化128
8.1 什么是DevOps129
8.1.1 传统方法130
8.1.2 DevOps方法131
8.2 DevOps的3条道路131
8.2.1 第一条道路:工作流131
8.2.2 第二条道路:改进反馈132
8.2.3 第三条道路:持续试验和学习133
8.2.4 小批次更好133
8.2.5 策略的采用134
8.3 DevOps的历史134
8.3.1 演变135
8.3.2 网站可靠性工程135
8.4 DevOps价值观和原则136
8.4.1 关系136
8.4.2 整合136
8.4.3 自动化136
8.4.4 持续改进136
8.4.5 常见的非技术性DevOps实践137
8.4.6 常见的技术性DevOps实践138
8.4.7 DevOps发行工程实践139
8.5 向DevOps转化139
8.5.1 准备开始139
8.5.2 企业层面的DevOps140
8.6 敏捷和持续交付141
8.6.1 什么是敏捷141
8.6.2 什么是持续交付141
8.7 小结143
练习144
第9章 服务交付:构建阶段145
9.1 服务交付策略146
9.1.1 模式:现代化的DevOps方法论146
9.1.2 反模式:瀑布方法论148
9.2 高质量的良性循环148
9.3 构建阶段的步骤150
9.3.1 开发150
9.3.2 提交150
9.3.3 构建151
9.3.4 打包152
9.3.5 注册152
9.4 构建控制台152
9.5 持续集成153
9.6 以软件包作为移交接口154
9.7 小结155
练习156
第10章 服务交付:部署阶段157
10.1 部署阶段的步骤157
10.1.1 升级157
10.1.2 安装158
10.1.3 配置158
10.2 测试和批准159
10.2.1 测试160
10.2.2 批准161
10.3 运营控制台161
10.4 基础设施自动化策略161
10.4.1 准备物理机器162
10.4.2 准备虚拟机162
10.4.3 安装OS和服务163
10.5 持续交付164
10.6 基础设施即代码164
10.7 其他平台服务165
10.8 小结165
练习166
第11章 升级运行中的服务167
11.1 卸下服务进行升级167
11.2 滚动升级168
11.3 “金丝雀”169
11.4 分阶段试运行170
11.5 按比例分片171
11.6 蓝-绿部署171
11.7 功能切换171
11.8 在线模式更改174
11.9 在线代码更改175
11.10 持续部署175
11.11 处理失败的代码推送177
11.12 发行原子性178
11.13 小结179
练习180
第12章 自动化181
12.1 自动化方法182
12.1.1 剩余原则182
12.1.2 补偿原则183
12.1.3 互补性原则184
12.1.4 系统管理自动化185
12.1.5 经验教训总结185
12.2 工具建设与自动化的对比186
12.2.1 示例:汽车制造186
12.2.2 示例:机器配置187
12.2.3 示例:账户创建187
12.2.4 工具很好,自动化更好187
12.3 自动化的目标187
12.4 创建自动化系统190
12.4.1 为自动化投入时间190
12.4.2 减少“苦活”191
12.4.3 决定自动化的首要任务191
12.5 如何自动化192
12.6 语言工具192
12.6.1 Shell脚本语言192
12.6.2 脚本语言193
12.6.3 编译型语言194
12.6.4 配置管理语言194
12.7 软件工程工具和技术195
12.7.1 问题跟踪系统196
12.7.2 版本控制系统197
12.7.3 软件打包198
12.7.4 风格指南198
12.7.5 测试驱动开发199
12.7.6 代码评审200
12.7.7 编写刚好足够的代码201
12.8 多租户系统201
12.9 小结202
练习203
第13章 设计文档204
13.1 设计文档概述204
13.1.1 记录更改和依据205
13.1.2 作为过去决策存储库的文档205
13.2 设计文档剖析205
13.3 模板207
13.4 文档存档207
13.5 审核工作流程208
13.5.1 审核人和批准人208
13.5.2 获得签字同意209
13.6 采用设计文档209
13.7 小结210
练习210
第14章 随时待命212
14.1 设计值班212
14.1.1 从SLA开始213
14.1.2 值班人员花名册213
14.1.3 值日214
14.1.4 值班表设计215
14.1.5 值班日程表216
14.1.6 值班频率217
14.1.7 通知类型217
14.1.8 下班时间维护协调219
14.2 当值219
14.2.1 当班前的职责219
14.2.2 常规值班职责219
14.2.3 警报职责220
14.2.4 观察、确认、决策、行动221
14.2.5 值班剧本221
14.2.6 第三方升级222
14.2.7 班次结束时的职责223
14.3 两次当值之间223
14.3.1 长期修复223
14.3.2 事后剖析224
14.4 警报的定期审核226
14.5 收到太多传呼227
14.6 小结228
练习228
第15章 灾难准备229
15.1 心态230
15.1.1 反脆弱系统230
15.1.2 降低风险231
15.2 个人培训:灾祸之轮232
15.3 团队培训:应急演练233
15.3.1 服务测试234
15.3.2 随机测试235
15.4 组织培训:游戏日/DiRT235
15.4.1 开始236
15.4.2 扩大范围237
15.4.3 实施和后勤237
15.4.4 经历DiRT测试239
15.5 事故指挥系统242
15.5.1 工作原理:公共安全领域243
15.5.2 工作原理:IT运营领域243
15.5.3 事故行动计划244
15.5.4 最佳实践245
15.5.5 ICS示例245
15.6 小结246
练习246
第16章 监控基础知识248
16.1 概述249
16.1.1 使用监控250
16.1.2 服务管理250
16.2 监控信息的消费者250
16.3 监控的内容252
16.4 留存期253
16.5 元监控254
16.6 日志255
16.6.1 方法255
16.6.2 时间戳256
16.7 小结256
练习256
第17章 监控架构与实践258
17.1 传感与计量259
17.1.1 黑盒与白盒监控259
17.1.2 直接计量与合成计量259
17.1.3 速率与能力监控260
17.1.4 仪表和计数器260
17.2 收集261
17.2.1 推送与拉取262
17.2.2 协议选择262
17.2.3 服务器组件与代理、轮询器的对比263
17.2.4 中心与区域收集器263
17.3 分析和计算264
17.4 警报和升级管理器265
17.4.1 警报、升级和确认265
17.4.2 静默与抑制266
17.5 可视化267
17.5.1 百分位数268
17.5.2 堆栈排名269
17.5.3 直方图269
17.6 存储270
17.7 配置271
17.8 小结271
练习272
第18章 容量规划273
18.1 标准容量规划274
18.1.1 当前使用量275
18.1.2 正常增长276
18.1.3 计划增长276
18.1.4 余量276
18.1.5 弹性277
18.1.6 时间表277
18.2 高级容量规划278
18.2.1 确定主要资源278
18.2.2 了解容量限制278
18.2.3 确定核心驱动力279
18.2.4 参与度计量280
18.2.5 分析数据280
18.2.6 监控关键指标284
18.2.7 委派容量规划285
18.3 资源回归285
18.4 发布新服务286
18.5 缩短配给时间287
18.6 小结288
练习288
第19章 建立KPI290
19.1 什么是KPI291
19.2 创建KPI292
19.2.1 步骤1:想象理想状况292
19.2.2 步骤2:量化与理想的距离292
19.2.3 步骤3:想象行为的变化方式293
19.2.4 步骤4:修订和选择293
19.2.5 步骤5:部署KPI294
19.3 KPI示例:机器分配294
19.3.1 第一遍295
19.3.2 第二遍295
19.3.3 评估KPI297
19.4 案例研究:错误预算297
19.4.1 相互冲突的目标297
19.4.2 统一的目标298
19.4.3 所有人得益298
19.5 小结299
练习299
第20章 卓越运营301
20.1 卓越运营是什么样子的301
20.2 如何计量卓越的程度302
20.3 评估方法论302
20.3.1 运营职责303
20.3.2 评估级别304
20.3.3 评估问题和匹配属性305
20.4 服务评估306
20.4.1 确定评估的内容306
20.4.2 评估每个服务306
20.4.3 比较不同服务的结果307
20.4.4 根据结果采取行动308
20.4.5 评估和项目计划的频率308
20.5 组织评估308
20.6 提高级别309
20.7 开始着手310
20.8 小结311
练习311
第三部分 附录
附录A 评估314
附录B 分布式计算和云的起源及未来335
附录C 伸缩性术语和概念352
附录D 模板和示例356
附录E 推荐读物360
后记363
参考文献365

教学资源推荐
作者: 刘春燕 高建华 吴黎兵 主编 熊建强 康卓 何宁 黄文斌 熊素萍 黄华 林莉 参编
作者: [美]克利福德·斯坦(Clifford Stein)[美]罗伯特·L.戴斯得尔(Robert L. Drysdale)[美]肯尼斯·博加特(Kenneth Bogart)著
作者: 庞丽萍,郑然
参考读物推荐
作者: (美)John D.Musa
作者: W.Alan Davis, Krishna K.Agarwal
作者: 郑志强 曹来京 孟永 编著