沃新书屋 - 云系统管理
本书资料更新时间:2025-05-10 04:21:07

云系统管理

云系统管理精美图片

云系统管理书籍详细信息


内容简介:

本书分为两个部分-----设计和运营。 第一部分捕捉我们在大规模、复杂、基于云的分布式计算系统设计上的想法。在引言之后,我们从下向上逐层介绍设计的每个要素。我们从系统管理员(而非计算机科学家)的角度介绍分布式系统,要运营一个系统就必须理解其内部原理。 第二部分描述如何运营这些系统。前面几章介绍最基本的问题。后面几张深入更为负责的技术活动,然后是概要规划和将以上要素组合起来的战略。

书籍目录:

引言 1 第一部分 设计:构建系统 8 第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 分布式系统的MTBF 92 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 第二部分 运营:运行系统 110 第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 什么是DevOps 129 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 企业层面的DevOps 140 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 组织培训:游戏日/DiRT 235 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章 建立KPI 290 19.1 什么是KPI 291 19.2 创建KPI 292 19.2.1 步骤1:想象理想状况 292 19.2.2 步骤2:量化与理想的距离 292 19.2.3 步骤3:想象行为的变化方式 293 19.2.4 步骤4:修订和选择 293 19.2.5 步骤5:部署KPI 294 19.3 KPI示例:机器分配 294 19.3.1 第一遍 295 19.3.2 第二遍 295 19.3.3 评估KPI 297 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 第三部分 附录 314 附录A 评估 314 附录B 分布式计算和云的起源及未来 335 附录C 伸缩性术语和概念 352 附录D 模板和示例 356 附录E 推荐读物 360 后记 363 参考文献 365

作者简介:

托马斯A.利蒙切利 (Thomas A. Limoncelli)是具有国际声誉的作家、演说家和系统管理专家。在Google NYC 的7年中,他曾经担任Blog Search(博客搜索)、Ganeti和各种内部企业IT服务项目的SRE。他现在于Stack Exchange 公司任SRE,该公司主办ServerFault.com和Stack-Overflow.com网站。Thomas的第一份有报酬的系统管理工作是1987年在德鲁大学学习时候获得的,此后在小型和大型公司中任职。目前在新泽西州。 斯特拉塔 R.查卢普(Strata R. Chalup)已经领导和管理复杂IT项目多年,所担任的植物包括项目经理和运营主管。Strata曾经撰写过管理方面的多篇论文,并且与许多团队合作。她住在加州的圣克拉拉县。

其它内容:

暂无其它内容!


下载点评

  • 体验还行(716+)
  • 精校(207+)
  • 必备(793+)
  • 破损(165+)
  • 意识流(480+)
  • 珍藏(360+)
  • 宝藏(574+)
  • 清晰(515+)
  • 可检索(918+)
  • 学生(801+)
  • 加密(217+)
  • 重排(839+)
  • 微信读书(294+)
  • 考证(839+)
  • 多终端(1206+)
  • 可听读(615+)
  • 优质(226+)
  • 考研(909+)
  • 原版(154+)

下载评论

  • 屠***好: ( 2024-07-30 16:15:14 )

    还行吧。

  • 用户1714982006: ( 2024-05-06 15:53:26 )

    完整的报告资源,图文设计提升阅读体验,体验良好。

  • 用户1740737444: ( 2025-02-28 18:10:44 )

    音频版电子书下载流畅,支持AZW3/TXT格式导出,值得收藏。

  • 用户1739848982: ( 2025-02-18 11:23:02 )

    双语版电子书下载极速,支持PDF/AZW3格式导出,体验良好。

  • 用户1741491095: ( 2025-03-09 11:31:35 )

    适合作为工具书,随时查阅。


相关书评

暂时还没有人为这本书评论!


以下书单推荐