书籍详情

前端Serverless:面向全栈的无服务器架构实战

前端Serverless:面向全栈的无服务器架构实战

作者:杨凯 著

出版社:电子工业出版社

出版时间:2021-04-01

ISBN:9787121409813

定价:¥89.00

购买这本书可以去
内容简介
  本书以云原生(Cloud Native)技术为背景,讲述了 Serverless 的基本原理与实战应用。书中首先探讨 Serverless 与当前云计算技术和前端技术的关系,随后分别从 Serverless 的两大能力(FaaS 和 BaaS)展开,探讨了它们的历史由来和底层原理,并且结合实际应用场景,有针对性地提供了操作指南。本书从手动构建一套基于进程的 FaaS 架构开始,之后深入剖析云计算服务的内核,阐述其背后的原理和思想,从而让读者理解下一代软件架构的本质。 本书主要从前端研发人员的视角介绍 Serverless 的原理及应用。相信无论是希望更多了解服务端技术的前端研发人员,还是已经涉足后端但希望更多了解云原生技术的全栈工程师,或是希望通过 Serverless 提升团队研发效率的架构师,都会从阅读本书中获益良多。
作者简介
  杨凯(亚顿),具有10年以上前后端全栈研发经验,曾为阿里巴巴天猫精灵前端负责人,参与了天猫精灵从0到1的建设过程。专注于前端架构及用户体验,对 BFF、微前端、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

猜您喜欢

读书导航