出版社: 人民邮电出版社
出品方: 异步图书
出版年: 2023-1
页数: 208
定价: 79.80元
装帧: 平装
ISBN: 9787115605290
内容简介 · · · · · ·
本书着眼于 Serverless 方向,重点介绍 FaaS 的架构和实现原理。本书从 Serverless 的理念和基础知识出发,介绍业内具有代表性的 Serverless 产品,进而引出字节跳动函数计算产品 ByteFaaS,并介绍 ByteFaaS 的定位、特点和生态,以及整体架构等;详细介绍传统 FaaS 架构,包括 FaaS 控制面、FaaS 数据面、FaaS 运行时、FaaS 触发器、FaaS 弹性伸缩等核心组件的设计与实现;阐述 FaaS 助推 PaaS 演进的思路和技术实践,并延伸到 FaaS 轻量级函数与云边一体;介绍 Serverless 在字节跳动的落地实践和对 Serverless 未来的展望。
作者简介 · · · · · ·
ByteFaaS函数计算团队
杨华辉:字节跳动基础架构函数计算团队负责人,主要关注分布式系统、容器化、高可用、可扩展架构设计等领域,具备大规模系统的落地实践经验。
陈辉:就职于字节跳动 Serverless 团队,目前主要负责大规模二进制分发、异步任务、网关服务、控制面系统以及 FaaS 场景下服务网格生态等相关工作。
吴桂勇:就职于字节跳动 Serverless 团队,目前主要负责 FaaS 数据面架构、系统高可用方面的工作。
阔鑫:就职于字节跳动 Serverless 团队,目前主要负责字节跳动内部微服务上的 FaaS 方案推进和火山引擎 FaaS 类型产品的迭代。
李博:就职于字节跳动 Serverless 团队,目前主要负责 FaaS 平台侧、触发器、弹性伸缩方面的工作。
彭璟文:加入字节跳动以来,一直专注于 Serverless 领域,目前...
ByteFaaS函数计算团队
杨华辉:字节跳动基础架构函数计算团队负责人,主要关注分布式系统、容器化、高可用、可扩展架构设计等领域,具备大规模系统的落地实践经验。
陈辉:就职于字节跳动 Serverless 团队,目前主要负责大规模二进制分发、异步任务、网关服务、控制面系统以及 FaaS 场景下服务网格生态等相关工作。
吴桂勇:就职于字节跳动 Serverless 团队,目前主要负责 FaaS 数据面架构、系统高可用方面的工作。
阔鑫:就职于字节跳动 Serverless 团队,目前主要负责字节跳动内部微服务上的 FaaS 方案推进和火山引擎 FaaS 类型产品的迭代。
李博:就职于字节跳动 Serverless 团队,目前主要负责 FaaS 平台侧、触发器、弹性伸缩方面的工作。
彭璟文:加入字节跳动以来,一直专注于 Serverless 领域,目前主要负责 FaaS 数据面架构、轻量级函数和云边一体方面的工作。
于童:入职字节跳动后,负责 CronJob 平台研发和 FaaS 平台研发,目前主要专注于边缘计算云边一体化、轻量级函数方向,负责整体稳定性和可用性相关工作。
目录 · · · · · ·
1.1 Serverless 基础概念 ................................ 1
1.1.1 Serverless 理念 ............................. 1
1.1.2 Serverless 技术特点 ..................... 2
1.2 Serverless 技术能力 ................................ 4
1.3 Serverless 应用场景 ................................ 4
· · · · · · (更多)
1.1 Serverless 基础概念 ................................ 1
1.1.1 Serverless 理念 ............................. 1
1.1.2 Serverless 技术特点 ..................... 2
1.2 Serverless 技术能力 ................................ 4
1.3 Serverless 应用场景 ................................ 4
1.4 本章小结 ................................................. 7
第 2 章 业内概况 ...................................... 9
2.1 业界产品 ................................................. 9
2.1.1 AWS Lambda ................................ 9
2.1.2 Google Cloud Platform ............... 10
2.1.3 Cloudflare Workers ..................... 11
2.1.4 Compute@Edge .......................... 13
2.2 开源项目 ............................................... 13
2.2.1 OpenFaaS.................................... 13
2.2.2 Fission ......................................... 14
2.2.3 Knative ....................................... 15
2.3 字节跳动 ByteFaaS ............................... 15
2.3.1 定位、特点和生态 .................... 15
2.3.2 整体架构 .................................... 16
2.3.3 应用规模 .................................... 18
2.4 本章小结 ............................................... 18
第 3 章 FaaS 控制面............................... 19
3.1 控制面的整体架构 ................................ 19
3.2 多地区多机房部署 ................................ 21
3.2.1 单地区多机房容灾部署 ............ 21
3.2.2 多地区统一控制面 ..................... 22
3.3 构建和发布 ............................................ 24
3.3.1 构建 ............................................. 24
3.3.2 发布 ............................................. 25
3.4 可观测性 ................................................ 27
3.4.1 日志 ............................................. 27
3.4.2 监控 ............................................. 29
3.4.3 链路追踪 ..................................... 31
3.5 开发体验 ................................................ 31
3.5.1 ByteFaaS CLI .............................. 32
3.5.2 本地调试 ..................................... 33
3.5.3 在线调试 ..................................... 34
3.6 本章小结 ................................................ 37
第 4 章 FaaS 数据面 .............................. 39
4.1 数据面整体架构 .................................... 39
4.2 函数实例管理 ........................................ 41
4.2.1 函数实例的服务发现 ................. 41
4.2.2 函数实例的就绪检测 ................. 42
4.3 函数流量调度 ........................................ 44
4.3.1 函数请求并发控制 ..................... 45
4.3.2 函数分片 ..................................... 46
4.3.3 函数实例缓存 ............................. 48
4.3.4 自适应降载 ................................. 49
4.4 函数冷启动优化 .................................... 51
4.4.1 冷启动问题背景 ......................... 51
4.4.2 镜像代码分离 ............................. 52
4.4.3 函数实例预热 ............................. 53
4.4.4 冷启动实例调度 ......................... 54
4.4.5 用户侧优化 ................................ 56
4.5 函数代码分发 ........................................ 57
4.5.1 多级缓存 .................................... 58
4.5.2 下载优化 .................................... 59
4.5.3 大规模分发 ................................ 59
4.6 本章小结 ............................................... 61
第 5 章 FaaS 运行时............................... 63
5.1 函数运行时 ............................................ 63
5.1.1 函数运行时规范 ........................ 64
5.1.2 函数实例生命周期 .................... 67
5.2 函数运行时隔离技术 ............................ 70
5.2.1 基于 Docker 的容器封装隔离 ... 70
5.2.2 从 Docker 到 containerd 的迁移 ............................. 71
5.2.3 轻量级虚拟化:从 runC 到 Kata Containers .................... 73
5.2.4 Unikernel .................................... 76
5.2.5 进程内隔离 ................................ 78
5.3 函数运行时性能优化 ............................ 80
5.3.1 RuntimeAgent 进程和数据面性能损耗 ......................... 81
5.3.2 在 net/http 基础上的优化 .......... 81
5.3.3 更优的 CPU、内存分配策略 .... 84
5.4 本章小结 ............................................... 86
第 6 章 FaaS 触发器............................... 87
6.1 FaaS 平台常见的触发器 ....................... 87
6.1.1 触发器的分类 ............................ 87
6.1.2 HTTP 触发器的设计与实现 ..... 88
6.1.3 服务发现触发器的设计与实现 ................................... 89
6.1.4 定时触发器的设计与实现 ........ 89
6.2 MQ 触发器的设计与实现 .................... 90
6.2.1 MQ 触发器的整体设计 ............. 90
6.2.2 触发函数的并发控制 ................. 92
6.2.3 函数调用的反压控制 ................. 93
6.2.4 触发函数的限流控制 ................. 94
6.3 MQ 触发器在大规模场景下的优化 ..... 96
6.3.1 消息的高效过滤 ......................... 96
6.3.2 触发器的重新平衡优化 ............. 99
6.3.3 超大规模函数的连接数分片优化 ............................. 101
6.4 基于 MQ 触发器的第三方触发器的接入 .......................... 102
6.4.1 基于 Event Gateway 的接入 .... 103
6.4.2 基于 MQ 的接入 ...................... 103
6.5 本章小结 .............................................. 104
第 7 章 FaaS 弹性伸缩 ........................ 105
7.1 弹性伸缩系统的定义和架构 .............. 105
7.1.1 弹性伸缩系统的定义 ............... 105
7.1.2 弹性伸缩系统的架构 ............... 106
7.2 弹性伸缩系统的策略设计 .................. 108
7.2.1 策略的分级和结合 ................... 108
7.2.2 策略的详细设计 ....................... 109
7.2.3 评分和策略反馈机制 ............... 110
7.3 弹性伸缩系统的指标设计 .................. 111
7.3.1 整体的架构设计 ....................... 111
7.3.2 如何对指标数据进行存储 ....... 113
7.3.3 FaaS MAS 自适应云原生分片方案 .......................... 114
7.4 弹性伸缩系统的分片架构 .................. 115
7.4.1 分片架构设计方案 ................... 115
7.4.2 分片架构的容错机制 ............... 116
7.5 本章小结 .............................................. 117
第 8 章 FaaS 助推 PaaS 演进 .............. 119
8.1 FaaS Native:开发原生应用的解决方案 .................. 119
8.1.1 FaaS Native 的目标 .................. 120
8.1.2 运行原生应用代码 .................. 120
8.1.3 自定义镜像 .............................. 121
8.2 多协议支持 .......................................... 124
8.2.1 数据调用与流量调度的解耦 .... 124
8.2.2 HTTP/2 支持 ............................ 126
8.2.3 gRPC 协议支持 ........................ 128
8.2.4 Thrift 协议支持 ........................ 131
8.2.5 客户端流量接入 ...................... 133
8.3 融入字节跳动微服务治理体系ByteMesh ................... 135
8.3.1 ByteMesh: 字节跳动内部 Service Mesh 服务治理体系 ............ 136
8.3.2 上游服务访问下游 FaaS ......... 137
8.3.3 上游 FaaS 访问下游服务 ........ 138
8.3.4 FaaS 接入 ByteMesh 入流量代理 ............................ 139
8.4 异步长时间执行任务支持 .................. 140
8.4.1 架构设计 .................................. 140
8.4.2 任务管理 .................................. 142
8.4.3 适用场景 .................................. 144
8.5 本章小结 ............................................. 144
第 9 章 FaaS 轻量级函数与云边一体 ... 145
9.1 轻量级函数 .......................................... 145
9.2 WebAssembly 轻量级函数运行时 ...... 146
9.2.1 什么是 WebAssembly .............. 146
9.2.2 Hostcall + WASI ....................... 147
9.2.3 运行时架构 .............................. 149
9.2.4 冷启动优化 .............................. 150
9.2.5 代码样例 .................................. 151
9.3 JavaScript 轻量级函数运行时 ............ 152
9.3.1 背景知识 .................................. 153
9.3.2 Host API ................................... 153
9.3.3 运行时架构 .............................. 154
9.3.4 冷启动优化 ............................... 155
9.3.5 代码样例 ................................... 156
9.3.6 两种函数轻量级运行时对比 ............................... 157
9.4 精简架构 .............................................. 158
9.4.1 整体架构 ................................... 158
9.4.2 请求路径 ................................... 160
9.4.3 流量调度 ................................... 161
9.4.4 冷启动优化 ............................... 162
9.4.5 高密度部署 ............................... 164
9.5 云边架构 .............................................. 165
9.5.1 理念介绍 ................................... 165
9.5.2 流量接入 ................................... 166
9.5.3 云边通信 ................................... 167
9.5.4 边缘可用性 ............................... 169
9.6 存储服务 .............................................. 171
9.6.1 存储资源 ................................... 172
9.6.2 Global KV ................................. 172
9.6.3 Local Cache ............................... 174
9.6.4 多层缓存机制 ........................... 176
9.7 开发者工具 .......................................... 177
9.7.1 代码在线预览工具 ................... 177
9.7.2 JavaScript 轻量级函数开发工具 ............................. 179
9.8 本章小结 .............................................. 180
第 10 章 Serverless 在字节跳动的落地实践................... 181
10.1 突破 Serverless 资源和性能的瓶颈 ............................ 181
10.2 基于 Kubernetes 的云原生体系 ........ 183
10.3 触发器和自动扩缩容,承载大规模消费场景 .................... 184
10.3.1 一键配置,支持活动业务的快速迭代 ............... 184
10.3.2 弹性伸缩,潮汐流量的省钱“利器” ................. 185
10.4 通用型 Serverless,多协议支持PaaS 演进 .................... 186
10.4.1 早期尝试:基于 HTTP 的Thrift RPC ............... 186
10.4.2 原生支持:与周边团队深度合作,打通 RPC 生态 ........... 187
10.4.3 进一步发挥 FaaS 优势,RPC 与事件驱动架构结合 ........... 188
10.5 轻量级函数,打造云边一体架构 ...... 188
10.5.1 收敛长尾函数,承载突发流量 ............................ 188
10.5.2 边缘业务上线 ......................... 189
10.6 本章小结 ............................................ 191
第 11 章 Serverless 展望 ...................... 193
11.1 规范标准 ............................................ 193
11.2 通用型 Serverless ............................... 194
11.3 云边一体 ............................................ 196
11.4 本章小结 ............................................ 197
· · · · · · (收起)
Serverless 核心技术和大规模实践的书评 · · · · · · ( 全部 1 条 )
> 更多书评 1篇
论坛 · · · · · ·
在这本书的论坛里发言谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有16人想读,手里有一本闲着?
订阅关于Serverless 核心技术和大规模实践的评论:
feed: rss 2.0
0 有用 Tur 2023-12-20 13:01:48 广东
字节跳动
1 有用 seal 2023-04-22 00:23:52 上海
没有why只有what
0 有用 Tur 2023-12-20 13:01:48 广东
字节跳动
1 有用 seal 2023-04-22 00:23:52 上海
没有why只有what