前端Serverless 面向全栈的无服务器架构实战
- ISBN:9787121409813
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:248
- 出版时间:2021-05-01
- 条形码:9787121409813 ; 978-7-121-40981-3
本书特色
适读人群 :前端架构师及对 serverless 方向感兴趣的前端工作人员。√ 揭秘云时代计算新范式,代表阿里集团下一代技术浪潮,贡献大量前端全栈场景落地实践。 √ 本书作者是前端|Serverless技术方向的领军人物,拥有多年应用实战与问题解决宝贵经验。 √ 以务实的全栈视角介绍Serverless架构理念|实现细节,帮助前端攻城狮显著提高工程能力。 √ 阿里腾讯字节跳动三方势力争相力荐本书提出的前端可独立实现的端到端交付一体化方案。
内容简介
本书以云原生(Cloud Native)技术为背景,讲述了Serverless的基本原理与实战应用。书中首先探讨Serverless与当前云计算技术和前端技术的关系,随后分别从Serverless的两大能力(FaaS和BaaS)展开,探讨了它们的历史由来和底层原理,并且结合实际应用场景,有针对性地提供了操作指南。本书从手动构建一套基于进程的FaaS架构开始,之后深入剖析云计算服务的内核,阐述其背后的原理和思想,从而让读者理解下一代软件架构的本质。本书主要从前端研发人员的视角介绍Serverless的原理及应用。相信无论是希望更多了解服务端技术的前端研发人员,还是已经涉足后端但希望更多了解云原生技术的全栈工程师,或是希望通过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
作者简介
杨凯(亚顿),具有10年以上前后端全栈研发经验,曾为阿里巴巴天猫精灵前端负责人,参与了天猫精灵从0到1的建设过程。专注于前端架构及用户体验,对 BFF、微前端、Serverless 等技术如何在业务中规模化应用以提高研发和协作效率、改善用户体验,具有丰富的实践经验。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0