华为Serverless核心技术与实践pdf下载pdf下载

华为Serverless核心技术与实践百度网盘pdf下载

作者:
简介:本篇主要提供华为Serverless核心技术与实践pdf下载
出版社:电子工业出版社
出版时间:2021-11
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

√ 以自研分布式内核华为元戎为例,系统介绍设计思路|实现方案|核心技术|创新探索。

√ 提供华为终端云案例,以真实产品剖析云函数、云数据库、云存储、云托管服务原理。

√ 与其他书聚焦原理不同,本书强调用Serverless解决实际问题|用云基础设施高效开发。

√ 沉淀HUAWEI AppGallery Connect Serverless平台经验,基于大厂实践实现云原生认知升级。

内容简介

华为2012实验室自研的分布式内核——华为元戎,作为底座支撑了华为终端云通过Serverless快速开发和上线商业服务的应用场景。本书以此为例,系统地剖析了构建Serverless平台的设计思路和实现方案,帮助读者掌握理论知识和实践方法。本书共分10章,内容涵盖了从微服务到Serverless演进的机遇与挑战、基础知识与组件工具、当前生态与发展方向,以及华为元戎创新构建的有状态函数编程模型、高性能函数运行时、高效对接BaaS服务等一系列Serverless核心技术,并配套介绍了云数据库、云存储、云托管等一系列开箱即用的Serverless后端服务。最后,以华为终端云AppGallery Connect平台的翻译服务作为应用案例,完整展示了从技术选型、架构设计、代码示例到实现效果的端到端实践经验,启发读者活学活用Serverless技术。

本书可作为广大开发者、科研人员和信息专业的本科生与研究生等学习Serverless技术的入门读物,也可作为云计算与分布式系统等领域从业人员深入了解Serverless架构的参考书。


作者简介

刘方明

华中科技大学教授、博导,国家优秀青年科学基金获得者、组织部青年拔尖人才,入选爱思唯尔中国高被引学者;长期从事分布式系统与网络技术的相关研究,包括云计算与边缘计算、数据中心与绿色计算、SDN/NFV与5G等领域;在国内外著名期刊和会议发表百余篇论文并多次获最佳论文奖,有多项专利在美国和中国获批;曾获国家自然科学二等奖和教育部自然科学一等奖,曾任国家自然科学基金委信息学部会评专家及多个CCF的A类顶级国际会议程序委员会委员。


李林锋

华为消费者云服务应用市场高级技术总监,精通平台中间件、云原生、Serverless和移动应用分发相关技术,《Netty权威指南》《Netty进阶之路》《分布式服务框架原理与实践》等书作者,目前在华为应用市场从事云原生、AppGallery Connect等平台的技术架构设计工作。


王 磊

华为Serverless平台高级架构师,在Serverless、微服务架构及DevOps领域有丰富的经验,著有《微服务架构与实践》一书,同时也是《DevOps实践指南》的译者及EXIN DevOps Master认证教练。

精彩书评

Serverless简化了云计算的开发与运维,为进一步解放开发者生产力带来跨越式变革,已成为众多厂商争相布局的新兴技术。本书以华为自研的分布式内核(华为元戎)为例,系统性介绍构建Serverless平台的设计思路和实现方案,并对如何支持有状态的复杂应用、高性能函数运行时,以及高效对接后端服务等一系列核心技术进行创新性探索,并且提供在华为终端云实战演练的完整应用案例。本书理论与实践相结合,可以帮助广大读者活学活用Serverless的技术原理与架构精髓,值得一看。

华为Fellow | 胡子昂


Serverless被认为是下一个十年的云计算,其核心是FaaS+BaaS。基于Serverless开发移动应用,能够大幅降低开发门槛,以及实现免运维、按需付费。本书结合华为多年来对Serverless的研究与实践,以真实产品为例详细剖析了云函数、云数据库、云存储、云托管等服务的原理。

华为应用市场首席架构师、架设负责人 | Liu Lianxi


Serverless因能有效降低开发和运营成本而得到广泛关注,但其发展也遇到很多技术瓶颈。本书是华为多年构建AppGallery Connect Serverless平台的经验沉淀,既有关键技术深刻剖析,又有实际案例详细讲解,图文并茂,深入浅出,对于Serverless平台构建者和使用者都有很高的参考和学习价值。

华为应用市场研发总监 | Ye wenwu


互联网应用面临的首要挑战是计算和数据的可扩展性,Serverless技术的出现有效应对了这一点。本书围绕核心原理,从开发者角度端到端阐述快速开发应用的案例,同时介绍一些高阶技术,如有状态函数的编程,对于Serverless从业人员和开发者具有很高的参考价值。

MindSpore首席架构师、中央软件园架设部部长| 金雪锋


复杂性是软件开发的永恒话题,将大问题分解是对抗复杂性的主要方案。Serverless则是云时代的全新探索——将基础设施剥离出去,把关注点集中于业务问题。如何运用Serverless解决实际问题,是摆在很多人面前的真实问题。这本书是先行者的思考,从中可以看到大量使用云基础设施进行开发的尝试。

火币网前首席架构师、极客时间专栏10x 程序员工作法、软件设计之美、代码之丑、程序员的测试课作者 | 郑晔


互联网应用系统架构主要解决的问题就是应对高并发用户访问带来的系统负载压力,而核心的解决思路就是水平伸缩。系统架构的每一次演进都是为了更简单、更快速、更高效、更廉价地获得计算资源及进行软件开发。Serverless架构主要技术原理、架构模式、实践案例都有哪些?这本基于华为终端云Serverless实践的图书将带我们一窥究竟。

《大型网站技术架构:核心原理与案例分析》作者 | 李智慧


从单体架构到分布式架构的演进,给开发和运维带来很大挑战。Serverless作为新型互联网云计算架构,既为开发、运维解决了大量难题,又为业务成长提供了行之有效的提速降本方案。解耦业务,赋能运维,Serverless把握得恰到好处。

Gitee平台负责人 | 红薯


随着云原生技术体系蓬勃发展,Serverless日臻成熟,已从概念成长为架构设计方案新选项,正通过在更多合适场景落地构造未来。

公众号"IT民工闲话" 作者 | 史海峰


每个时代都有与之匹配的新技术和软件研发方法论。Serverless正在改变软件开发的模式和流程。市面上系统性介绍Serverless实现原理的资料比较少,鲜有在讲述理论和大厂实践之上分享完整案例的图书。读者可用本书快速学习Serverless技术,成为该领域的高手。

京东DevOps与研发效能技术总监、

DevOpsDays大会中国区核心组织者 | 张乐


未来计算机发展的方向,注定是面向云的原生架构。硬件资源、操作系统、数据库、中间件、软件应用,最终都将面向云而存在,并沉淀为最基础的计算机组件。Serverless正是服务于全面云化的前沿技术,掌握它的设计理念和使用方法,对工程师发掘更加适合自己的职业发展路径有很大益处。本书能助力开发者进一步完成云原生认知升级。

SphereEx CEO、Apache ShardingSphere项目主席 | 张亮


目录

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使能应用极简开发和运维

云计算的不断发展,正在快速地改变着传统IT的开发、运维。虚拟机、容器、微服务等技术不断地提升着云计算的能力。

Serverless无服务器计算的出现,为软件开发带来了跨越式的变革。它让开发者只需关注软件产品的功能代码实现,而无须花费精力在计算、存储、网络等基础设施的资源分配与扩缩容上,也不必在软件的部署与运维等领域花精力。这些功能现在由云服务提供商以函数即服务(Function as a Service)和后端即服务(Backend as a Service)的云服务方式提供。Serverless极大地解放了开发者,已成为最有潜力的云计算技术发展方向,也必将成为智能数字化社会的未来开发模式。

随着移动应用、IoT和小程序等的快速发展,Serverless的架构思想和开发方式逐渐被开发者所接受,有望用来支撑应用现代化的新生态。Serverless对开发者的价值主要体现在三个方面:

第一、极简开发实现业务快速上线:在架构层面,函数的粒度相比微服务更小,业务构建更加灵活敏捷;在开发层面,函数计算平台提供了更简单的编程模型,让开发者更聚焦业务逻辑,而BaaS服务有效管理了后端服务的对接与协同。基于Serverless模式,可实现以天为单位完成业务上线。

第二、弹性自运维降低维护成本:对于互联网应用所面临的高可用及突发流量挑战,Serverless可以实现从计算到数据的大规模高并发弹性扩容,帮助开发者屏蔽底层基础设施的运维,降低了开发者的维护负担。

第三、按需收费降低资源使用成本:Serverless按实际使用量付费的特性,不但可以让大中型企业提升资源利用率,而且可以让创业公司降低基础设施投入和减少资源使用成本。

华为公司近年来在Serverless技术方向进行了持续的研发和实践。针对函数计算存在的一系列痛点,如函数缺少有状态支持、冷启动时间长、弹性扩容慢、后端服务及中间件管理复杂等问题,设计、实现了支持函数计算的分布式内核——华为元戎,并将其作为底座支撑华为终端云的云函数服务。在过去的三年中,华为终端云在丰富的业务场景上对函数计算服务进行了大量实践,如搜索、视频、游戏、机器学习、浏览器、全屋智能、运动健康等,并根据业务的反馈对函数计算内核进行了持续优化。截至目前,基于华为元戎的云函数服务在全球华为终端云正式上线,广泛服务于HMS生态的移动应用开发者。

本书系统性地介绍了Serverless的基础知识、关键技术,以及华为元戎在Serverless先进性上的创新探索,提供了华为终端云基于Serverless快速开发和上线翻译业务的端到端完整案例。希望读者通过阅读本书,在深入了解Serverless技术原理和架构的同时,能在业务实践中灵活运用Serverless高效构建应用。

华为云CEO、消费者云服务总裁 张平安

序二:Serverless将成为应用架构发展的未来趋势

纵观计算技术发展的历史长河,计算设施从物理机发展到虚拟机,再从虚拟机发展到容器;计算服务架构从传统单体系统架构演进到微服务架构,再从微服务架构演进到近年来兴起的Serverless架构,其驱动力主要聚焦在提高资源共享和利用效率、方便用户做应用开发、简化计算基础设施运维管理及全方位降低计算基础设施建设和运维成本等方面。

Serverless字面上的解释是“无服务器”,但其真正含义是应用开发者无须考虑服务器的相关问题,可以直接依靠第三方的计算资源。该概念自2012年出现后,得到国内外各大云计算厂商及学术界的高度关注和热情支持,随之涌现出laaS和PaaS等各层次不同形态的基于Serverless理念的服务,以及各种开源的社区和框架。这类衍生技术及产品在丰富Serverless生态的同时,也给用户理解Serverless架构增加了复杂度。

《华为Senerles 核心技术与实践》一书理论与实践相结合, 系统地介绍了构建 Serverless 平台的设计思路和实现方案,对如何支持有状态复杂应用、高性能函数运行时及高效对接后端服务等核心技术进行了有意义地探索,并在云平台上实战演练了完整的应用案例。相信本书能对相关专业领域的学生和软件从业人员掌握Serverless 技术原理和应用方法提供有益的帮助。


中国工程院院士,国防科技大学教授、博士生导师 卢锡城

序三:Serverless将成为微服务架构的终极模式

计算范式演进的最终目标是为开发者提供高阶编程抽象,从而将他们从烦琐的工作中解脱出来,更加专注解决业务本身的问题,进而使得开发者可以方便地使用更高效(往往也更复杂)的算法,或者解决更大规模的问题。在过去的数十年中,为了应对应用快速大规模发展的需要,我们的软件开发模式从客户端/服务器模式(C/S),发展到模型/视图/控制(MVC),再到面向服务的架构(SOA),直至当前的微服务;应用的类型也从单体的企业应用,演化到大规模的分布式微服务应用。每一次这样的演进,都给我们的开发范式带来更大的灵活性,更高的可伸缩性,以及由此带来的性能提升,但是却使得开发范式本身变得更加复杂。相比数十年以前的单体应用,开发、调试、部署和维护大规模分布式微服务要复杂和困难许多。这不仅造成开发者的学习曲线相当陡峭,而且开发、维护一个微服务架构往往需要较高的初始成本。这种情况对于中小型应用是非常不友好的,这些应用的开发者在项目初期就需要面临两难的选择:要么在创业之初就承担昂贵的开发成本,要么在发展到一定规模之后承担痛苦的重构。云计算技术发展之初,尽管通过计算资源的虚拟化和池化,降低了我们部署应用的成本,但并没有从本质上解决上述计算范式演进面临的问题。而当前,伴随着企业数字现代化进程的加快,越来越多的应用“为云而生”,因而旨在简化云开发、方便构建分布式应用的新一代“云原生”Serverless技术应运而生了。

在华为2012实验室,有一支长期研究分布式并行和云计算技术的团队。从2017年起,他们就开始对Serverless技术进行深入研究和探索,从架构到理论,再到系统实现。华为元戎 (分布式内核)就是他们在过去四年中不断求索的成果。何为Serverless?从狭义上讲,就是面向“函数”的计算(或称“函数即服务”,FaaS);从广义上讲,还包含函数可以调用的一系列后端服务,如对象存储、数据管理、增长运营等。相比业界类似的Serverless技术,华为元戎首次将“状态”纳入函数计算的概念体系,从而可以方便高效地实现多函数协同的、复杂的有状态服务。同时,华为元戎进一步提出了统一、标准化的后端平台概念(Event Bridge和Service Bridge),不仅方便函数和后端服务的集成,而且有助于Serverless应用的跨云部署。可以说,华为元戎将Serverless技术推进到了一个新的高度。 2020年,通过各方通力合作,华为终端云服务推出基于华为元戎的Serverless解决方案,面向广大的开发者提供开发、构建、增长/运营及质量分析等一系列服务。本书通过对华为Serverless技术剖析,深入浅出地讲解了Serverless的原理、架构、系统实现,以及相应的关键技术,并列举了若干实战示例,帮助读者深入理解和学习Serverless技术。

值得一提的是,Serverless技术本身也是在持续发展的。从某种意义上讲,Serverless将会成为微服务架构的终极模式。那时,应用的模块化、独立部署、可扩缩、高可用和云计算技术可实现高度统一和深度结合。最终通过Serverless技术,云原生应用将会像单机应用一样可以简单便捷地进行开发,同时拥有高性能和高可扩缩的能力,从而彻底解决前文提到的云时代计算范式演进的困局。这种“单机思考,集群并行执行”的体验会深刻地改变云原生应用的开发模式,实现跨越式的生产力变革。正如伯克利RISE Lab主任Ion Stoica教授所言:“Serverless将会成为云时代默认的计算范式,并取代Serverful的计算模式”。我们希望借助本书,为广大的读者和工程技术人员提供一些灵感和启发,共同促进Serverless技术的进一步发展。

华为分布式与并行软件Lab主任 谭焜博士


前言

风起云涌的云计算,在以虚拟化和容器化为技术特征的“资源云化”阶段,极大地简化了基础设施运维。如今,在以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生态的蓬勃发展!