描述
开 本: 128开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121422034
√ 以自研分布式内核华为元戎为例,系统介绍设计思路|实现方案|核心技术|创新探索。
√ 提供华为终端云案例,以真实产品剖析云函数、云数据库、云存储、云托管服务原理。
√ 与其他书聚焦原理不同,本书强调用Serverless解决实际问题|用云基础设施高效开发。
√ 沉淀华为AppGallery Connect Serverless平台经验,基于大厂实践实现云原生认知升级。
华为2012实验室自研的分布式内核——华为元戎,作为底座支撑了华为终端云通过Serverless快速开发和上线商业服务的应用场景。本书以此为例,系统地剖析了构建Serverless平台的设计思路和实现方案,帮助读者掌握理论知识和实践方法。本书共分10章,内容涵盖了从微服务到Serverless演进的机遇与挑战、基础知识与组件工具、当前生态与发展方向,以及华为元戎创新构建的有状态函数编程模型、高性能函数运行时、高效对接BaaS服务等一系列Serverless核心技术,并配套介绍了云数据库、云存储、云托管等一系列开箱即用的Serverless后端服务。后,以华为终端云AppGallery Connect平台的翻译服务作为应用案例,完整展示了从技术选型、架构设计、代码示例到实现效果的端到端实践经验,启发读者活学活用Serverless技术。
本书可作为广大开发者、科研人员和信息专业的本科生与研究生等学习Serverless技术的入门读物,也可作为云计算与分布式系统等领域从业人员深入了解Serverless架构的参考书。
1 Serverless综述 1
1.1 微服务面临的挑战 1
1.2 什么是Serverless 4
1.2.1 Serverless的定义 6
1.2.2 Serverless关键技术 8
1.3 Serverless带来的核心变化 10
1.3.1 Serverless的技术创新 10
1.3.2 Serverless的其他优点 13
1.3.3 Serverless和微服务的差异 14
1.4 Serverless生态现状 15
1.4.1 平台 16
1.4.2 框架 31
1.4.3 事件总线 35
1.4.4 函数工作流 38
1.5 Serverless的挑战与机遇 44
1.6 总结 48
2 新一代Serverless技术 50
2.1 设计理念 50
2.2 技术架构 52
2.2.1 概念模型 52
2.2.2 逻辑架构 53
2.2.3 核心技术创新盘点 55
3 有状态函数编程模型 56
3.1 设计原理 56
3.1.1 状态与有状态函数 56
3.1.2 有状态函数编程模型的实现 59
3.1.3 有状态函数的并发一致性模型 73
3.1.4 有状态函数应用场景 75
3.1.5 有状态函数的使用原则 82
3.2 自走棋游戏编程模型设计示例 83
3.2.1 自走棋游戏介绍 83
3.2.2 函数的实现分析及有状态函数重构 85
3.2.3 有状态函数的效果 94
4 高性能函数运行时 96
4.1 函数运行时的设计和实现 96
4.2 函数冷启动 100
4.2.1 问题分析 100
4.2.2 资源池化 101
4.2.3 代码缓存 102
4.2.4 调用链预测 103
4.3 弹性伸缩 105
4.3.1 弹性策略选择 105
4.3.2 华为元戎弹性方案设计 108
4.4 函数调度 111
4.4.1 调度的关键维度 111
4.4.2 调度策略 113
4.4.3 函数调度实践 115
4.5 性能评测 116
5 高效对接BaaS服务 120
5.1 Event Bridge:BaaS服务连接函数的桥梁 120
5.1.1 Event Bridge基本概念 122
5.1.2 Event Bridge架构 123
5.1.3 CloudEvents 126
5.1.4 Event Bridge的应用 126
5.2 Service Bridge:函数访问BaaS服务的桥梁 130
5.2.1 Service Bridge设计目标 131
5.2.2 Service Bridge架构 134
5.2.3 Service Bridge功能 138
5.2.4 Service Bridge其他使用场景 143
6 云数据库服务 154
6.1 云数据库服务介绍 154
6.1.1 Serverless云数据库——Cloud DB 155
6.1.2 云数据库关键能力 156
6.2 云数据库数据模型 158
6.3 云数据库架构 159
6.3.1 弹性伸缩的多租户架构 159
6.3.2 多租户精细化管理 161
6.3.3 云数据库总结与挑战 162
7 云存储服务 163
7.1 云存储服务介绍 163
7.1.1 Serverless云存储服务 164
7.1.2 Serverless云存储服务关键能力 165
7.2 云存储架构 166
7.2.1 总体架构 166
7.2.2 弹性伸缩架构 167
7.2.3 声明式安全规则 168
7.3 云存储服务总结与挑战 170
8 云托管服务 171
8.1 云托管服务架构 172
8.1.1 系统架构 172
8.1.2 核心功能特性 173
8.2 云托管技术原理 174
8.2.1 自定义域名和证书管理 174
8.2.2 证书的自动更新 175
8.2.3 新的CDN接入 176
9 翻译服务的Serverless架构设计 177
9.1 Serverless平台与翻译服务 177
9.1.1 AppGallery Connect Serverless平台 178
9.1.2 云函数 178
9.1.3 云数据库 179
9.1.4 云存储 180
9.1.5 云托管 181
9.1.6 翻译服务 182
9.2 翻译服务架构技术选型 187
9.2.1 业务特点 187
9.2.2 团队特点 189
9.2.3 技术需求 190
9.2.4 成本需求 191
9.2.5 架构选型 192
9.3 翻译服务Serverless架构 195
9.3.1 功能架构 196
9.3.2 函数划分策略 197
9.3.3 技术架构 204
9.3.4 关键架构质量属性设计 205
10 翻译服务实战开发 217
10.1 基于Serverless技术的翻译服务开发 217
10.1.1 翻译服务网站托管 217
10.1.2 基于云函数开发后台逻辑 224
10.1.3 翻译稿件存储 244
10.1.4 使用云数据库管理数据 246
10.1.5 翻译服务上线效果 251
10.2 传统开发模式与Serverless模式对比 252
10.2.1 研发角色和职责变化 253
10.2.2 不同开发模式对比 254
10.2.3 研发效率对比 255
10.3 Serverless技术演进 257
10.3.1 传统中间件的Serverless化 257
10.3.2 Serverless模型化 258
10.3.3 与遗留系统的对接 258
10.3.4 关键技术瓶颈的突破 259
10.3.5 Serverless低代码平台 259
风起云涌的云计算,在以虚拟化和容器化为技术特征的“资源云化”阶段,极大地简化了基础设施运维。如今,在以Serverless新理念标志的“应用云化”阶段,云计算的目标是进一步简化云开发,屏蔽云端分布式系统和中间件等的复杂性。Serverless不但能使开发者聚焦业务逻辑以实现跨越式生产力变革,而且以极致弹性和免运维等优势帮助应用降低成本、开发增效,已成为云计算“下半场”中各大厂商和开源社区竞相拥抱的战略方向和新兴技术。甚至伯克利在《简化云编程:伯克利视角下的Serverless计算》一文中预言:Serverless将会成为云时代默认的计算范式,并取代Serverful(传统云)计算模式,而其商业模式变革也被生动地类比为从传统的“租车”服务发展为真正随用随付的“计程车”服务。
广大开发者、科研人员和信息专业的本科生与研究生应该如何把握快速发展的Serverless技术浪潮呢?为行之有效的方法之一是,通过完整剖析一个有代表性的Serverless平台的设计思路和实现方案,来深入学习和掌握Serverless的技术原理与架构精髓,这亦是本书创作的初衷。本书以华为2012实验室研制的分布式内核——华为元戎在Serverless方向的创新探索为例,详细阐述了新一代Serverless编程模型、高性能运行时、后端服务对接等一系列关键技术,并深入剖析了华为终端云基于Serverless实现快速开发和上线翻译业务的端到端商用案例,帮助读者从理论走向系统实践,身临其境地体会如何灵活运用Serverless高效构建应用。
本书的第1章重点介绍了Serverless的基础知识、关键技术和生态现状。通过对第1章的阅读,读者可以了解Serverless如何解决微服务实施的痛点,了解当前典型的Serverless平台(如Lambda)和开源系统(如OpenWhisk)等的差异化设计,以及Serverless的周边组件,如开发与部署框架、事件总线、函数工作流等,进而通过总结当前Serverless系统的不足之处及下一步技术探索方向,为读者设计Serverless应用架构提供启发和技术参考。
本书的第2~5章详细介绍构建新一代Serverless平台的核心技术。第2章以华为的华为元戎为例介绍新一代Serverless平台的设计理念与技术架构,第3~5章分别对一系列核心技术展开剖析。其中,第3章介绍有状态函数编程模型的设计原理和技术实现,并通过生动的场景案例展示有状态函数编程模型的用法与优势。第4章分析如何在函数运行时中优化冷启动、弹性伸缩和函数调度的性能,并提供具体设计方案和范例性能评测。第5章涉及用函数对接各种BaaS服务的通用框架,以华为元戎的Event Bridge和Service Bridge为例分别详解云上各种服务如何规范化触发函数,以及在函数中如何标准化调用各种后端服务,如云存储和云数据库等。
完备的后端服务如云托管、云数据库和云存储等也是Serverless平台必不可少的组成部分,因此第6~8章介绍了华为终端云为用户和开发者提供的配套服务。其中,云数据库服务是一款Serverless化的数据库,提供简单易用的端/云SDK,适用于移动应用、网页和服务器开发,方便应用数据在各个客户端之间、客户端与服务端之间自动保持同步,帮助应用开发者快速构建安全可靠且多端协同的应用程序,从而让应用开发者聚焦业务逻辑,无须关注后端系统的复杂搭建、用户数据的安全保护、多端数据的同步及服务器部署维护等,可显著提高业务构建、部署和运营效率。云存储服务用于图片、视频、文件等内容的上传、下载、归档和备份等。相比于传统的存储服务,云存储服务具有支持断点续传、网络加速、可靠安全和弹性伸缩等特性,更适合移动应用的文件管理。云托管服务为开发者的网页内容提供快速和安全的全球托管服务,支持自定义域名和证书管理,开发者只需提供申请的域名,无须关注CDN加速和SSL配置,通过控制台一键发布版本即可向全球用户分发网站内容。
虽然Serverless平台为开发者提供了一系列开箱即用的云函数和后端服务,但是开发者在尝试用新模式构建实际业务时难免会面临各种挑战,例如,业务函数的划分粒度和策略、由数据变更触发的业务流程执行及事件驱动编程等。鉴于此,本书的第9~10章以华为的实践为例,从技术选型、架构设计到业务函数的划分,再到云函数、云托管、云数据库和云存储服务的搭配使用和代码示例,对基于Serverless技术构建的翻译服务进行端到端完整解析,让读者能够快速学习和全面掌握如何运用Serverless技术高效构建应用。
“众人拾柴火焰高”,感谢华为公司2012实验室中央软件院分布式与并行软件实验室的大力支持,以及华为元戎团队的不懈投入,感谢华为终端云同仁们的倾力贡献和紧密协作。大家共同践行了“研发一代、应用一代”的务实创新精神,促成了本书中的Serverless架构和技术从原型逐步走向商用,未来更加可期!感谢电子工业出版社的宝贵建议与细致工作,这保证了本书的质量和尽早问世。另外,本书部分内容参考了公开资料和网上调研成果,在此也对相关参考文献的作者及同行致以诚挚的谢意。
由于水平有限,加之Serverless技术日新月异且应用领域广泛,书中难免有疏漏和不足之处,恳请广大读者批评指正,以便我们在后续版本中改进,并共同推动Serverless生态的蓬勃发展
Serverless简化了云计算的开发与运维,为进一步解放开发者生产力带来跨越式变革,已成为众多厂商争相布局的新兴技术。本书以华为自研的分布式内核(华为元戎)为例,系统性介绍构建Serverless平台的设计思路和实现方案,并对如何支持有状态的复杂应用、高性能函数运行时,以及高效对接后端服务等一系列核心技术进行创新性探索,并且提供在华为终端云实战演练的完整应用案例。本书理论与实践相结合,可以帮助广大读者活学活用Serverless的技术原理与架构精髓,值得一看。
华为Fellow | 胡子昂
Serverless被认为是下一个十年的云计算,其核心是FaaS BaaS。基于Serverless开发移动应用,能够大幅降低开发门槛,以及实现免运维、按需付费。本书结合华为多年来对Serverless的研究与实践,以真实产品为例详细剖析了云函数、云数据库、云存储、云托管等服务的原理。
华为应用市场首席架构师、架设负责人 | liulianxi
Serverless因能有效降低开发和运营成本而得到广泛关注,但其发展也遇到很多技术瓶颈。本书是华为多年构建AppGallery Connect Serverless平台的经验沉淀,既有关键技术深刻剖析,又有实际案例详细讲解,图文并茂,深入浅出,对于Serverless平台构建者和使用者都有很高的参考和学习价值。
华为应用市场研发总监 | yewenwu
复杂性是软件开发的永恒话题,将大问题分解是对抗复杂性的主要方案。Serverless则是云时代的探索——将基础设施剥离出去,把关注点集中于业务问题。如何运用Serverless解决实际问题,是摆在很多人面前的真实问题。这本书是先行者的思考,从中可以看到大量使用云基础设施进行开发的尝试。
火币网前首席架构师、极客时间专栏10x 程序员工作法、软件设计之美、代码之丑、程序员的测试课作者 | 郑晔
互联网应用系统架构主要解决的问题就是应对高并发用户访问带来的系统负载压力,而核心的解决思路就是水平伸缩。系统架构的每一次演进都是为了更简单、更快速、更高效、更廉价地获得计算资源及进行软件开发。Serverless架构主要技术原理、架构模式、实践案例都有哪些?这本基于华为终端云Serverless实践的图书将带我们一窥究竟。
《大型网站技术架构:核心原理与案例分析》作者 | 李智慧
从单体架构到分布式架构的演进,给开发和运维带来很大挑战。Serverless作为新型互联网云计算架构,既为开发、运维解决了大量难题,又为业务成长提供了行之有效的提速降本方案。解耦业务,赋能运维,Serverless把握得恰到好处。
Gitee平台负责人 | 红薯
随着云原生技术体系蓬勃发展,Serverless日臻成熟,已从概念成长为架构设计方案新选项,正通过在更多合适场景落地构造未来。
公众号”IT民工闲话” 作者 | 史海峰
每个时代都有与之匹配的新技术和软件研发方法论。Serverless正在改变软件开发的模式和流程。市面上系统性介绍Serverless实现原理的资料比较少,鲜有在讲述理论和大厂实践之上分享完整案例的图书。读者可用本书快速学习Serverless技术,成为该领域的高手。
DevOps与研发效能技术总监、
DevOpsDays大会中国区核心组织者 | 张乐
未来计算机发展的方向,注定是面向云的原生架构。硬件资源、操作系统、数据库、中间件、软件应用,终都将面向云而存在,并沉淀为基础的计算机组件。Serverless正是服务于全面云化的前沿技术,掌握它的设计理念和使用方法,对工程师发掘更加适合自己的职业发展路径有很大益处。本书能助力开发者进一步完成云原生认知升级。
SphereEx CEO、Apache ShardingSphere项目主席 | 张亮
评论
还没有评论。