搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
前端Serverless:面向全栈的无服务器架构实战(博文视点出品)
0.00     定价 ¥ 89.00
浙江图书馆
  • ISBN:
    9787121409813
  • 作      者:
    杨凯
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2021-04-01
收藏
编辑推荐

√ 揭秘云时代计算新范式,代表阿里集团下一代技术浪潮,贡献大量前端全栈场景落地实践。

√ 本书作者是前端|Serverless技术方向的领军人物,拥有多年应用实战与问题解决宝贵经验。

√ 以务实的全栈视角介绍Serverless架构理念|实现细节,帮助前端攻城狮显著提高工程能力。

√ 阿里腾讯字节跳动三方势力争相力荐本书提出的前端可独立实现的端到端交付一体化方案。


展开
作者简介

杨凯(亚顿),具有10年以上前后端全栈研发经验,曾为阿里巴巴天猫精灵前端负责人,参与了天猫精灵从0到1的建设过程。专注于前端架构及用户体验,对 BFF、微前端、Serverless 等技术如何在业务中规模化应用以提高研发和协作效率、改善用户体验,具有丰富的实践经验。

展开
内容介绍

本书以云原生(Cloud Native)技术为背景,讲述了 Serverless 的基本原理与实战应用。书中首先探讨 Serverless 与当前云计算技术和前端技术的关系,随后分别从 Serverless 的两大能力(FaaS 和 BaaS)展开,探讨了它们的历史由来和底层原理,并且结合实际应用场景,有针对性地提供了操作指南。本书从手动构建一套基于进程的 FaaS 架构开始,之后深入剖析云计算服务的内核,阐述其背后的原理和思想,从而让读者理解下一代软件架构的本质。

本书主要从前端研发人员的视角介绍 Serverless 的原理及应用。相信无论是希望更多了解服务端技术的前端研发人员,还是已经涉足后端但希望更多了解云原生技术的全栈工程师,或是希望通过 Serverless 提升团队研发效率的架构师,都会从阅读本书中获益良多。


展开
精彩书评


丁宇(叔同)

【阿里巴巴研究员,阿里云原生负责人】

Serverless是云时代的计算新范式,并将引领下一代技术浪潮。目前Serverless在阿里集团内部的多条业务线,特别是在前端全栈场景中已经广泛落地,并显著提升了研发和运维的效能。本书不但介绍了Serverless的趋势和架构理念,也从实战的角度剖析了其典型应用场景和较好的应用实践。期待本书能够助力前端开发者更好地实现应用的全栈开发和运维。


张浩(Horacezhang)

【腾讯云Serverless产品负责人】

我们认为Serverless是继虚拟机、容器之后,第三代的通用计算技术,也是腾讯云战略级投入的技术赛道。Serverless让云计算像人们用水、用电一样,拥有开箱即用、灵活计费的用户体验,并得到了开发者、CIO/CTO的认可。杨凯在前端、Serverless领域一直是国内的领军人物,书中的内容也是他工作多年的经验分享,相信阅读本书定可让读者快速熟悉Serverless技术。希望更多的开发者能像杨凯一样参与到Serverless技术的推广工作中!


吴亮(月影)

【字节跳动技术学院负责人】

Serverless既是一种架构理念,也是一种实用技术。Serverless将经营者无须关注的技术细节从繁杂的业务目标中剥离出来,从而可减少研发成本,提升生产力。本书从务实的角度介绍Serverless技术的理念、应用场景、架构和构建细节,这对前端工程师具有全栈视角,以及提升工程能力、拓宽知识面非常有帮助。如果你想在前端领域走得更远,那么这是一本值得一读的技术图书。


李玉北

【字节跳动前端基础工程团队负责人】

Serverless作为一种新的架构模式,对于未来前端领域的场景拓展提供了无限的想象空间。

本书比较系统地介绍了它的发展历史,以及如何选择合适的场景来使用它、如何让它更好地在工作中落地。杨凯同学结合自己的从业经历,向读者提供了一些比较好的应用实践。相信这些内容可以给前端研发人员带来一些新的想法,也能助力Serverless技术更快、更好地在国内落地。


王光(九十)

【阿里巴巴高级前端专家,集团Node.js/Serverless方向负责人】

前端一直都是一个不断发展、不断进步的领域,充满了活力。Serverless的出现给前端带来了一体化端到端交付的基础设施前提。过去我们也曾探索全栈Node.js开发,但高企的运维成本令人望而却步。如今,Serverless架构托管了大部分的运维成本,真正使得一体化端到端交付成为可能。在我们的初步实践中,借助Serverless,可减少30%~50%的研发成本。自此,前端工程师可以独立交付业务功能,并可以更快的研发效率响应业务需求。本书内容翔实,涉及前端Serverless实践的方方面面,值得广大读者阅读、参考。


展开
目录

第一部分 Serverless 综述

第 1 章 什么是 Serverless . 2

1.1 Serverless 的价值 .. 3

1.2 Serverless 是一种理念  5

1.3 Serverless 一词的诞生  8

1.4 CNCF Serverless 白皮书 . 10

1.5 Serverless 与前端架构 .. 12

1.6 从前端到全栈  18

本章小结 .. 19

第 2 章 何时应用 Serverless . 20

2.1 Serverless 的优势与劣势 . 20

2.2 服务端的应用场景 . 22

2.2.1 多媒体处理 . 23

2.2.2 数据库变更捕获 .. 24

2.2.3 处理 IoT 请求 . 25

2.2.4 聊天机器人 . 26

2.2.5 计划任务 .. 27

2.2.6 通用后端服务  27

2.3 前端的应用场景 .. 28

2.3.1 Web 应用 . 29

2.3.2 SSR 应用 . 29

2.3.3 移动客户端应用 .. 31

2.3.4 小程序  31

本章小结 .. 31

第 3 章 Serverless 与服务端技术 . 32

3.1 应用分层架构  32

3.2 微服务架构 . 34

3.3 云计算  37

3.4 容器化  39

3.5 NoOps . 40

本章小结 .. 42

第 4 章 Serverless 与前端技术 . 43

4.1 Backend For Frontend  43

4.2 Node.js  44

4.3 TypeScript . 45

4.4 GraphQL  46

4.5 NoBackend .. 47

本章小结 .. 47

第二部分 FaaS 技术

第 5 章 理解 FaaS  50

5.1 FaaS 的特性 .. 50

5.1.1 函数由事件驱动 .. 50

5.1.2 无状态的函数  51

5.1.3 函数应当足够简单 . 51

5.2 FaaS 的优点 .. 52

5.2.1 更高的研发效率 .. 52

5.2.2 更低的部署成本 .. 53

5.2.3 更低的运维成本 .. 54

5.2.4 更低的学习成本 .. 54

5.2.5 更低的服务器费用 . 55

5.2.6 更灵活的部署方案 . 56

5.2.7 更高的系统安全性 . 56

5.3 FaaS 的缺点 .. 57

5.3.1 存在平台学习成本 . 57

5.3.2 较高的调试成本 .. 58

5.3.3 潜在的性能问题 .. 58

5.3.4 供应商锁定问题 .. 59

本章小结 .. 60

第 6 章 第一个函数 . 61

6.1 从控制台创建  61

6.1.1 开通产品 .. 61

6.1.2 创建一个函数  62

6.1.3 调用函数 .. 64

6.2 基于命令行工具 .. 64

6.2.1 安装命令行工具 .. 64

6.2.2 身份认证配置  65

6.2.3 初始化 FaaS 项目 . 66

6.2.4 本地调试 .. 67

6.2.5 发布项目 .. 69

6.3 Serverless Framework. 70

6.3.1 初始化命令行工具 . 70

6.3.2 阿里云授权 . 71

6.3.3 开通配套服务  71

6.3.4 创建项目 .. 72

6.3.5 发布部署 .. 72

6.3.6 远程调用 .. 73

本章小结 .. 73

第 7 章 函数的生命周期  74

7.1 函数的定义 . 74

7.1.1 函数名  74

7.1.2 参数 . 75

7.2 函数的调试 . 76

7.2.1 本地调用 .. 76

7.2.2 在线调用 .. 77

7.3 函数的发布 . 77

7.3.1 配置 . 77

7.3.2 编译 . 78

7.3.3 部署 . 78

7.4 函数的更新 . 78

7.4.1 测试与发布 . 78

7.4.2 灰度与 A/B 测试 . 80

本章小结 .. 81

第 8 章 理解函数运行时  82

8.1 函数的触发 . 82

8.1.1 客户端触发器  83

8.1.2 实践:通过 Web API 调用函数  83

8.1.3 消息触发器 . 88

8.1.4 实践:通过消息触发函数 . 89

8.1.5 存储触发器 . 92

8.1.6 实践:生成上传图片的缩略图 .. 93

8.1.7 其他触发器 . 98

8.2 函数的执行 . 98

8.2.1 入口方法 .. 98

8.2.2 运行时  99

8.2.3 日志输出  100

8.2.4 实践:查询函数调用日志 .. 100

本章小结  101

第 9 章 自建简易 FaaS .. 102

9.1 基础能力  102

9.1.1 基于进程隔离运行函数  103

9.1.2 标准函数的执行能力 . 105

9.1.3 更安全的执行环境 .. 106

9.1.4 增加 HTTP 服务 . 111

9.2 进阶挑战  114

9.2.1 提升性能:通过进程池管理子进程的生命周期 .. 115

9.2.2 增强安全性:限制函数的执行时间 . 119

9.2.3 确保稳定性:对函数资源进行限制 . 122

9.2.4 提高效率:内置前端常用服务  128

本章小结  130

第三部分 BaaS 技术

第 10 章 BaaS 的由来 . 132

10.1 传统的 IT 时代:原始部落的刀耕火种 . 132

10.2 云计算时代:现代城市的集中供应  133

10.3 新一代基础设施:CaaS . 134

10.4 PaaS 的演进:BaaS . 136

10.5 Google Firebase  137

10.6 BaaS 的优势和价值 .. 142

本章小结  144

第 11 章 初始化 BaaS 应用 .. 145

11.1 注册小程序的账号. 145

11.2 配置云服务  146

11.3 初始化代码  148

11.4 添加 BaaS SDK .. 150

本章小结  151

第 12 章 数据的持久化  152

12.1 数据库设计原则 . 154

12.1.1 BSON 与数据类型 .. 154

12.1.2 三大范式与 NoSQL 数据库 .. 155

12.1.3 引用方式:规范数据模型  156

12.1.4 内嵌方式:高效数据模型  158

12.2 使用数据存储服务  159

12.2.1 通过控制台管理集合 .. 159

12.2.2 通过客户端查询数据 .. 162

12.2.3 在云函数中调用 . 162

12.2.4 数据权限管理 .. 165

12.2.5 实践:数据的 CURD . 165

本章小结  167

第 13 章 文件的存储与分发 .. 168

13.1 内容分发网络(CDN) . 168

13.1.1 性能优化的利器 . 168

13.1.2 CDN 加速的基本原理  169

13.1.3 文件存储与 CDN .. 170

13.2 使用文件存储服务  172

13.2.1 通过控制台管理文件 .. 172

13.2.2 文件的权限管理 . 173

13.2.3 使用 SDK 上传 . 174

13.2.4 实践:实现图片的上传和展示 . 174

本章小结  180

第 14 章 用户身份识别与授权 . 181

14.1 认证的演进  181

14.1.1 统一身份认证:OpenID  182

14.1.2 第三方授权登录:OAuth . 185

14.1.3 进一步完善:OIDC . 189

14.2 身份认证即服务:Auth0 .. 191

14.2.1 注册并创建租户 . 191

14.2.2 控制中心概览 .. 192

14.3 实践:实现基于 Auth0 的身份认证 . 195

14.3.1 创建并配置应用 . 195

14.3.2 创建登录页面 .. 196

14.3.3 启动 Web 服务 .. 198

14.3.4 实现登录与注销 . 198

14.3.5 用户体验改进 .. 202

14.4 实践:实现 GitHub 账号授权 .. 206

14.4.1 开通 GitHub OAuth . 206

14.4.2 配置第三方登录 . 208

14.4.3 测试与认证  209

14.5 扩展:详解 JWT  209

14.5.1 令牌的类型  210

14.5.2 构造一个令牌 .. 211

14.5.3 深入理解 JWT 原理 .. 213

14.5.4 JWT 的优势/劣势与应用场景 .. 218

本章小结  223



展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用浙江图书馆的读者帐号和密码进行登录

点击获取验证码
登录