| 作者 |
| [美]路易斯·安德烈·巴罗索 (Luiz André Barroso) 乌尔斯·霍尔兹勒(Urs H&ouml lzle) 帕塔萨拉蒂·兰加纳坦(Parthasarathy Ranganathan)刘俊海 |
| 丛书名 |
| 数据科学与工程技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782002122185 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------数据中心一体化最佳实践:设计仓储级计算机(原书第3版)--------------------------- 本书将介绍仓储级计算机(WSC)。这种计算平台是云计算的核心,支撑着我们每天都在使用的各种强大的互联网服务。本书讨论了此类新型系统如何将数据中心本身当作一台超大规模仓储级的计算机来使用,同时又能使软硬件充分协同并提供高性能的互联网服务。书中还详细讲述了WSC的架构设计,其中不仅涵盖影响其设计、运行和成本结构的主要因素,还包括相应的基础软件的各种特性。每一章都介绍了多个真实世界的案例,其中包括详尽的分析在线服务的基础设施信息。本书主要面向当今WSC系统的架构师和程序开发人员,希望能为有志于在此重要领域发展的人才打下一个坚实的基础,同时相关的内容也适用于那些仅想了解互联网基础设施信息的人群。 ---------------------------Service Mesh微服务架构设计--------------------------- 全书分为3部分:第一部分是基础篇,首先从微服务架构的挑战讲起,接下来剖析service mesh产生的背景,service mesh当前的现状以及主流的一些开源项目。第二部分是实战篇,深入讲解如何从零开始构建一个生产环境可用的service mesh系统,包含技术选型、架构设计和技术难度深入分析等。其中高性能、高可用、高扩展性方面的一些设计和考量都会深入阐述。第三部分是应用篇,实例分析service mesh对服务治理带来的便利和影响。 通过阅读本书,读者不仅能深入了解service mesh对微服务领域的影响,而且还可以了解service mesh架构和设计的全过程,全书也包含高性能、高可用、高扩展性、服务治理等多个重要主题。 |
| 目录 |
---------------------------数据中心一体化最佳实践:设计仓储级计算机(原书第3版)--------------------------- 译者序 致谢 作者简介 译者简介 第1章 绪论 1 1.1 仓储级计算机 2 1.2 规模化下的成本效益 3 1.3 不仅是服务器的简单堆砌 4 1.4 单个数据中心与多个数据中心 4 1.5 为什么WSC对你至关重要 5 1.6 WSC架构概述 6 1.6.1 服务器 6 1.6.2 存储 7 1.6.3 网络结构 8 1.6.4 建筑与基础设施 9 1.6.5 电力使用 11 1.6.6 故障与维修处理 12 1.7 本书概述 12 第2章 工作负载与基础软件 15 2.1 WSC系统栈 15 2.2 平台层软件 16 2.3 集群层基础软件 17 2.3.1 资源管理 17 2.3.2 集群基础软件 18 2.3.3 应用框架 18 2.4 应用层软件 19 2.4.1 工作负载多样性 19 2.4.2 网页搜索 20 2.4.3 视频服务 22 2.4.4 学术文章相似度搜索 23 2.4.5 机器学习 24 2.5 监控基础设施 27 2.5.1 服务层仪表盘 27 2.5.2 性能诊断工具 27 2.5.3 平台层健康监控 28 2.6 WSC软件的权衡 29 2.6.1 数据中心和台式机 29 2.6.2 性能与可用性工具箱 30 2.6.3 购买还是自建 32 2.6.4 长尾容忍 33 2.6.5 工程师应该知道的延迟数据 33 2.7 云计算 35 2.7.1 面向公有云服务的WSC和对内服务的WSC 36 2.7.2 云原生软件 36 2.8 仓储级信息安全 37 第3章 WSC硬件组件 39 3.1 服务器硬件 39 3.1.1 服务器和机架概述 40 3.1.2 大型SMP通信效率的影响 43 3.1.3 高性能服务器和低性能服务器 45 3.2 计算加速器 48 3.2.1 图形处理器 49 3.2.2 张量处理器 50 3.3 网络 52 3.3.1 集群网络 52 3.3.2 主机网络 56 3.4 存储 57 3.4.1 硬盘托盘与无盘服务器 57 3.4.2 WSC非结构化存储 58 3.4.3 WSC结构化存储 59 3.4.4 存储与网络技术相互作用 60 3.5 平衡的设计 61 3.5.1 系统平衡:存储层次结构 62 3.5.2 量化延迟、带宽及容量 62 第4章 数据中心基础:建筑、电力与冷却 65 4.1 数据中心概述 65 4.1.1 等级分类与规格 65 4.1.2 建筑基础知识 66 4.2 数据中心电力系统 68 4.2.1 不间断电源系统 68 4.2.2 配电单元 69 4.2.3 交流与直流配电架构对比 70 4.3 应用实例:冗余径向配电 71 4.4 应用实例:中压电源层 72 4.5 数据中心冷却系统 74 4.5.1 机房空调系统 76 4.5.2 冷水机组 77 4.5.3 冷却塔 77 4.5.4 自然冷却 79 4.5.5 对气流的考量 79 4.5.6 机架内冷却、行级冷却和液体冷却 81 4.5.7 基于集装箱的数据中心 82 4.6 应用实例:谷歌数据中心顶部冷却系统 84 4.7 本章小结 84 第5章 能耗与能效 85 5.1 数据中心能效 85 5.1.1 PUE指标 86 5.1.2 PUE指标的问题 88 5.1.3 数据中心能效损失来源 89 5.1.4 提升数据中心能效 90 5.1.5 基础设施之外的因素 91 5.2 计算能效 92 5.2.1 能效的测量 92 5.2.2 服务器能效 92 5.2.3 WSC使用画像 93 5.3 能耗成比例计算 95 5.3.1 能耗成比例程度低的原因 96 5.3.2 提升能耗成比例的能力 97 5.3.3 系统其他部分的能耗成比例 98 5.3.4 低功耗模式的相对有效性 99 5.3.5 软件在能耗成比例中的作用 100 5.4 通过专用定制提高能效 103 5.5 数据中心供电 105 5.5.1 部署适量的设备 105 5.5.2 数据中心超额用电 105 5.6 服务器能量使用趋势 107 5.7 本章小结 109 第6章 成本建模 111 6.1 资本成本 111 6.2 运营成本 113 6.3 案例分析 114 6.4 实际数据中心成本 116 6.5 建模部分使用的数据中心 117 6.6 公有云成本 118 第7章 故障处理与维修 119 7.1 软件容错 120 7.2 故障分类 121 7.2.1 故障严重性分级 122 7.2.2 导致服务级故障的原因 123 7.3 机器级故障 124 7.3.1 导致机器级故障的原因 127 7.3.2 故障预测 128 7.4 维修 129 7.5 容错不是隐藏错误 130 7.6 集群系统设计的故障统计 131 第8章 结束语 135 8.1 硬件 136 8.2 软件 137 8.3 经济性与能效 138 8.4 打造响应快速的大规模系统 139 8.4.1 不断演进的工作负载 139 8.4.2 残酷的阿姆达尔定律 139 8.4.3 为微秒级系统优化 140 8.4.4 长尾 140 8.5 展望 141 8.5.1 摩尔定律的终结 141 8.5.2 加速器与全局系统设计 141 8.5.3 软件定义基础设施 142 8.5.4 计算机体系结构和WSC的新纪元 143 8.6 总结 144 参考文献 145 ---------------------------Service Mesh微服务架构设计--------------------------- 前言 第一篇 基 础 篇 第1章 微服务架构 …… 2 1.1 为什么需要微服务 …… 2 1.1.1 传统单体服务的问题 …… 2 1.1.2 微服务的定义 …… 3 1.1.3 微服务与康威定律 …… 3 1.1.4 微服务的收益 …… 4 1.2 微服务架构的挑战 …… 4 1.2.1 服务拆分 …… 4 1.2.2 开发挑战 …… 5 1.2.3 测试挑战 …… 5 1.2.4 运维挑战 …… 6 1.3 微服务化的具体时机 …… 6 1.4 微服务化开展前的准备工作 …… 8 1.4.1 微服务开发框架 …… 8 1.4.2 微服务标准化 …… 15 1.4.3 持续集成与发布 …… 17 1.5 微服务实施 …… 17 1.5.1 微服务拆分 …… 17 1.5.2 微服务通信 …… 19 1.5.3 微服务稳定性保障 …… 20 1.6 本章小结 …… 25 第2章 微服务治理 …… 26 2.1 微服务治理基础 …… 26 2.1.1 服务治理由来 …… 26 2.1.2 服务治理的目标与愿景 …… 27 2.1.3 服务治理的工作范畴 …… 28 2.1.4 服务治理闭环体系 …… 29 2.2 正向服务治理 …… 29 2.2.1 效率治理 …… 30 2.2.2 稳定性治理 …… 31 2.3 效果治理 …… 34 2.4 可见可观测 …… 35 2.4.1 服务可见性 …… 35 2.4.2 变更可见性 …… 36 2.4.3 可观测性 …… 36 2.5 量化分析体系 …… 41 2.5.1 稳定性风险度量 …… 41 2.5.2 基于多维度监控的故障定位 …… 42 2.5.3 风险分析 …… 43 2.6 线上治理 …… 43 2.6.1 线上预案体系 …… 43 2.6.2 基于Metric的预案自动触发 …… 44 2.6.3 治理参数动态调整 …… 44 2.7 线下治理 …… 47 2.7.1 链路稳定性治理 …… 47 2.7.2 架构与资源治理 …… 50 2.8 服务治理演进 …… 50 2.8.1 远程Proxy方式 …… 51 2.8.2 基于智能客户端的服务框架 …… 52 2.8.3 本地Proxy …… 52 2.9 理想的服务治理架构 …… 53 2.10 本章小结 …… 54 第3章 下一代微服务框架Service Mesh概要 …… 55 3.1 Service Mesh基础 …… 55 3.1.1 什么是Service Mesh …… 55 3.1.2 Service Mesh的基本模式 …… 56 3.2 Service Mesh的发展历程 …… 58 3.3 Service Mesh项目Linkerd …… 60 3.3.1 Linkerd演进 …… 60 3.3.2 Linkerd路由机制 …… 62 3.3.3 Linkerd 2.0核心架构 …… 63 3.4 Service Mesh项目Istio …… 64 3.4.1 Envoy …… 64 3.4.2 Istio …… 66 3.5 Service Mesh其他解决方案 …… 67 3.5.1 国外其他Service Mesh项目 …… 67 3.5.2 Service Mesh在中国的发展 …… 68 3.6 Service Mesh云上产品 …… 69 3.6.1 AWS App Mesh …… 69 3.6.2 Azure Service Fabric Mesh …… 69 3.6.3 Google Cloud Service Mesh …… 70 3.6.4 SuperGloo …… 70 3.7 Service Mesh标准化 …… 71 3.8 本章小结 …… 71 第二篇 架 构 篇 第4章 Envoy架构剖析 …… 74 4.1 Envoy整体架构 …… 74 4.1.1 关键设计约束 …… 74 4.1.2 设计原则 …… 75 4.1.3 整体架构 …… 76 4.2 Envoy网络模型 …… 78 4.2.1 Envoy事件调度模型 …… 78 4.2.2 Envoy线程模型 …… 81 4.2.3 线程本地存储机制 …… 81 4.3 Envoy扩展模型 …… 84 4.3.1 插件扩展机制 …… 84 4.3.2 网络相关插件 …… 86 4.3.3 其他扩展插件 …… 88 4.4 Envoy数据平面API …… 88 4.4.1 XDS协议语义 …… 88 4.4.2 XDS协议通信 …… 90 4.5 Envoy启动管理 …… 91 4.5.1 正常启动 …… 92 4.5.2 热重启 …… 94 4.6 Envoy与Nginx架构层面的对比 …… 95 4.6.1 功能与定位 …… 96 4.6.2 网络模型 …… 96 4.6.3 连接处理 …… 97 4.6.4 插件机制 …… 98 4.6.5 配置管理 …… 99 4.6.6 内存管理 …… 99 4.6.7 部署与运维 …… 100 4.6.8 观测与诊断 …… 100 4.7 本章小结 …… 100 第5章 Istio架构剖析 …… 101 5.1 Istio整体架构 …… 101 5.1.1 数据平面组件 …… 102 5.1.2 控制平面组件 …… 103 5.2 Istio的Kubernetes基础 …… 104 5.2.1 Kubernetes综述 …… 104 5.2.2 Kubernetes网络访问模型 …… 107 5.2.3 Kubernetes API管理 …… 110 5.2.4 Istio与Kubernetes的相互关系 …… 111 5.3 Istio流量控制模型 …… 112 5.3.1 流量管理API …… 112 5.3.2 Istio Mesh模型 …… 116 5.4 Mixer模型 …… 118 5.4.1 Mixer基本概念 …… 119 5.4.2 Mixer通用配置模型 …… 119 5.4.3 Mixer架构演进以及对性能的影响 …… 121 5.5 Istio安全 …… 122 5.5.1 Istio安全基础 …… 122 5.5.2 Istio认证架构 …… 123 5.6 Istio配置处理框架 …… 124 5.6.1 配置验证 …… 125 5.6.2 配置变更处理和分发 …… 125 5.7 本章小结 …… 125 第6章 Istio控制流设计 …… 126 6.1 Envoy生命周期管理 …… 126 6.1.1 Envoy注入 …… 126 6.1.2 Envoy启动管理 …… 128 6.1.3 Envoy配置和运行状态监控 …… 131 6.2 Istio配置变更管理 …… 133 6.2.1 通用模型和机制 …… 133 6.2.2 Kubernetes具体实现 …… 137 6.3 控制平面和数据平面的XDS交互 …… 138 6.3.1 控制平面的gRPC Server启动 …… 139 6.3.2 Envoy的XDS请求 …… 140 6.3.3 Istio XDS配置下发 …… 140 6.3.4 Envoy的XDS消息接收 …… 143 6.4 XDS配置生成 …… 143 6.4.1 可见性 …… 143 6.4.2 配置生成机制 …… 145 6.4.3 XDS配置生成实现 …… 147 6.5 XDS配置的Envoy处理 …… 149 6.5.1 XDS配置变更的判断 …… 149 6.5.2 CDS配置的延迟处理 …… 150 6.5.3 集群和节点配置处理 …… 152 6.5.4 路由配置处理 …… 153 6.5.5 监听器配置处理 …… 153 6.6 本章小结 …… 155 第7章 Istio数据流设计 …… 156 7.1 Iptables …… 156 7.1.1 Iptables的基本原理 …… 156 7.1.2 Iptables在Istio中的使用 …… 158 7.2 监听管理 …… 158 7.2.1 监听器建立 …… 158 7.2.2 监听器和工作线程绑定 …… 159 7.3 连接管理 …… 160 7.3.1 监听器匹配 …… 160 7.3.2 协议过滤器匹配 …… 161 7.3.3 创建新连接 …… 161 7.4 网络I/O和缓冲区管理 …… 162 7.4.1 传输层数据读取 …… 162 7.4.2 插件处理 …… 163 7.5 Thrift协议处理 …… 164 7.5.1 Thrift插件的整体架构 …… 164 7.5.2 协议解析 …… 165 7.5.3 协议相关的插件机制 …… 166 7.6 HTTP请求处理 …… 168 7.6.1 HTTP请求处理流程 …… 168 7.6.2 协议解析 …… 169 7.6.3 路由管理 …… 171 7.6.4 HTTP过滤链处理 …… 174 7.6.5 负载均衡 …… 176 7.6.6 连接池实现 …… 179 7.7 本章小结 …… 182 第8章 Istio微服务治理 …… 183 8.1 链路稳定性治理 …… 183 8.1.1 超时机制 …… 183 8.1.2 重试机制和重试策略 …… 185 8.1.3 节点熔断和健康检查机制 …… 188 8.1.4 资源限制机制 …… 189 8.1.5 全局限流机制 …… 190 8.2 链路可观测性 …… 190 8.2.1 Envoy分布式跟踪支持 …… 190 8.2.2 Envoy Metric支持 …… 194 8.2.3 Envoy Log支持 …… 198 8.3 本章小结 …… 200 第9章 Service Mesh架构的工程化设计 …… 201 9.1 复用和解耦 …… 201 9.2 架构扩展机制 …… 203 9.2.1 服务注册中心插件机制 …… 203 9.2.2 Envoy Filter插件机制 …… 203 9.3 性能设计 …… 204 9.3.1 基于TLS的无锁设计 …… 204 9.3.2 多级缓存机制 …… 205 9.3.3 批量更新机制 …… 205 9.4 架构设计的权衡 …… 206 9.5 API和SDK设计 …… 207 9.5.1 声明式API设计 …… 207 9.5.2 代码自动生成机制 …… 207 9.6 配置管理 …… 208 9.6.1 基于Protobuf 3的配置Scheme描述 …… 208 9.6.2 配置动态加载机制 …… 210 9.7 本章小结 …… 210 第10章 Service Mesh与云原生架构 …… 211 10.1 Service Mesh和Serverless …… 211 10.1.1 Serverless基础 …… 211 10.1.2 Knative …… 213 10.2 东西向和南北向通信的统一 …… 215 10.3 云原生时代的Service Mesh …… 216 10.4 Service Mesh现状和展望 …… 217 10.5 本章小结 …… 218 附录 Service Mesh迁移的要点与原则 …… 219 |