新書推薦:
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:NT$
454.0
《
治盗之道:清代盗律的古今之辨
》
售價:NT$
556.0
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:NT$
959.0
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:NT$
1367.0
《
欲望与家庭小说
》
售價:NT$
449.0
《
惜华年(全两册)
》
售價:NT$
320.0
《
甲骨文丛书·古代中国的军事文化
》
售價:NT$
454.0
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:NT$
1112.0
編輯推薦:
(1)作者背景资深:作者是阿里云 Serverless 产品专家、云原生技术标准专家、CNCF 项目 Serverless Devs 负责人。(2)以实战为导向:全书包含大量生产级案例,将Serverless架构与前端融合的方法,以及Serverless前端应用的开发方法全部融入案例中。(3)6位专家力荐:阿里云 Serverless 技术负责人、阿里终端委员会标准化负责人等6位专家联袂推荐。
內容簡介:
内容简介这是一本全面讲解Serverless架构以及如何将其与前端技术融合的实战类著作,是阿里云团队在Serverless和前端领域的实战经验总结。扎实的理论,丰富的实践,将帮助前端工程师们快速掌握Serverless这一利器,实现能力跃升。本书内容深入浅出、循序渐进,写作方式和内容规划无一不体现作者的深厚功底和良苦用心,全书包含以下核心内容:(1)介绍了Serverless架构的原理、特性和应用场景,并通过主流的商业Serverless项目和开源Serverless项目带领读者熟悉了Serverless应用的创建、开发、迁移和部署等流程;(2)从前端的视角讲解了Serverless架构的开发流程、应用开发、构建与调试、性能优化等;(3)详细讲解了SSR、WebSocket、RESTful API、GraphQL、前后端一体化、小程序、快应用、WebAssembly等前端热门技术,以及这些技术如何与Serverless架构深度融合;(4)通过5个Serverless架构下的前端生产实战案例,详尽地讲解了Serverless 架构下的前端应用开发流程和方法;(5)通过1个传统内容管理系统的 Serverless化改造案例, 详细展示了将传统框架部署到Serverless架构的流程和思路,以及将传统应用迁移到 Serverless 架构的方法和注意事项等。 (6)通过2个人工智能和小程序相关的案例完整地展示了Serverless项目开发的全过程,包括需求分析、技术选型、项目设计和开发实现等。(7)通过阿里云的企业级解决方案和真实产品的构建过程,向读者展示了如何将新一代UI测试流程与Serverless 架构结合,以及如何开发轻量级的WebIDE,拥有自己的云上开发平台。
關於作者:
刘宇
国防科技大学博士,阿里云 Serverless 产品专家,云原生产业联盟云原生技术标准专家,CNCF Sandbox项目 Serverless Devs负责人,长期从事 Serverless 架构相关工作。
在 Serverless 领域有非常深厚的积累,专注于Serverless 架构的标准推进、冷启动优化以及工具链建设。Serverless 领域布道师,Serverless Framework等项目贡献者,WebIDE 项目 Anycodes 的负责人。
除此之外,还在大数据和人工智能领域、前端领域有非常丰富的经验,对 WebIDE、大语言模型等有较为深入的研究和丰富的实践。
著有《Serverless架构:从原理、设计到项目实战》《Serverless工程实践:从入门到进阶》《Serverless架构与人工智能最佳实践》。
王庆
阿里云云原生前端技术专家,负责阿里云消息、Serverless、微服务、高可用等前端研发工作,CNCF Sandbox项目 Serverless Devs联合创始人,目前专注于前端和云原生结合的方向。
袁坤
阿里云云原生前端技术专家,CNCF Sandbox项目 Serverless Devs负责人,开源项目 serverless-cd 项目作者。负责阿里云 Serverless、微服务的前端研发工作,专注于前端架构、可观测技术以及 DevOps 方向。
罗松
阿里云函数计算专家,曾负责阿里云函数计算产品运行时、事件源集成以及企业级 Serverless 解决方案落地等,目前专注在 Serverless 开发者工具链的建设,CNCF Sandbox项目 Serverless Devs负责人。关注 Serverless 最新技术动态以及在企业级解决方案的落地,致力于推动 Serverless 在开发者群体的流行。
徐小春
阿里云测试开发工程师,UI 云测项目负责人。
目錄 :
Contents 目 录
序1
序2
前言
第1章 Serverless 架构简介 1
1.1 Serverless架构入门 1
1.1.1 发展历程 1
1.1.2 定义 4
1.1.3 工作原理 6
1.1.4 生态发展 11
1.2 Serverless架构特性与挑战 20
1.2.1 价值与优势 20
1.2.2 风险与挑战 26
1.3 Serverless架构应用场景 33
1.3.1 Web/移动应用后端场景 33
1.3.2 实时文件/数据处理 34
1.3.3 离线数据处理 35
1.3.4 人工智能领域 35
1.3.5 IoT等领域 36
1.3.6 监控与自动化运维 36
第2章 零基础上手 Serverless 架构 38
2.1 工业Serverless产品 38
2.1.1 阿里云 Serverless 产品 38
2.1.2 AWS Serverless产品 45
2.2 开源 Serverless 项目 51
2.2.1 OpenWhisk 项目 51
2.2.2 Knative 项目 56
2.2.3 Kubeless项目 62
第3章 Serverless架构应用开发和优化探索 66
3.1 Serverless 架构与前端技术 66
3.2 Serverless开发流程探索 69
3.3 应用开发、构建与调试 74
3.3.1 应用开发 74
3.3.2 应用构建 77
3.3.3 应用调试 79
3.3.4 函数编排 86
3.4 CI/CD 88
3.4.1 与 GitHub Action 的集成 88
3.4.2 与Gitee Go的集成 90
3.4.3 与Jenkins的集成 92
3.4.4 与云效的集成 94
3.5 Serverless与可观测性 95
3.6 应用优化 97
3.6.1 冷启动优化 98
3.6.2 文件上传方案 106
3.6.3 文件持久化方案 107
3.6.4 慎用Web框架特性 107
3.6.5 项目结构策略 108
第4章 前端技术视角下的Serverless 架构 110
4.1 SSR:前端技术突破性能壁垒 110
4.1.1 背景 110
4.1.2 SSR简介 111
4.1.3 Serverless架构下的SSR实战 111
4.1.4 总结 113
4.2 WebSocket技术在Serverless架构下的新面貌 114
4.2.1 背景 114
4.2.2 API网关中的WebSocket原理解析 114
4.2.3 Serverless架构下的WebSocket实战 117
4.2.4 总结 127
4.3 RESTful API与Serverless架构的融合 127
4.3.1 背景 127
4.3.2 RESTful API简介 128
4.3.3 Serverless架构下的RESTful API 130
4.3.4 总结 135
4.4 Serverless架构下的GraphQL实现 135
4.4.1 背景 135
4.4.2 GraphQL简介 136
4.4.3 Serverless 架构下的 GraphQL实战 137
4.4.4 总结 149
4.5 前后端一体化:前端技术的风向标 149
4.5.1 背景 149
4.5.2 前后端一体化发展历史 149
4.5.3 Serverless 架构下的前后端一体化实战 151
4.5.4 总结 154
4.6 小程序/快应用:前端技术赋能移动端开发 154
4.6.1 背景 154
4.6.2 Serverless 架构下的天气查询小程序实战 154
4.6.3 总结 161
4.7 WebAssembly:前端技术新篇章 162
4.7.1 背景 162
4.7.2 WebAssembly简介 162
4.7.3 WebAssembly 实战案例:HoloWeb 代码格式化 167
4.7.4 总结 170
4.8 传统框架的 Serverless 化与 Serverless 框架 170
4.8.1 背景 170
4.8.2 传统框架 Serverless 化 171
4.8.3 Serverless First 框架:Midway 174
第5章 Serverless 架构下的前端生产实战案例 177
5.1 网页全景录制及 Puppeteer 功能设计与实现 177
5.1.1 背景 177
5.1.2 Puppeteer 简介 178
5.1.3 Serverless架构下的网页截屏功能 179
5.1.4 二次开发方案 182
5.1.5 总结 183
5.2 盲盒抽奖活动系统设计及实现 184
5.2.1 背景 184
5.2.2 技术架构 184
5.2.3 技术实现 186
5.2.4 效果预览 191
5.2.5 总结 192
5.3 基于 Serverless 架构的头像漫画风处理小程序 192
5.3.1 背景 192
5.3.2 技术实现 193
5.3.3 效果预览 202
5.3.4 总结 203
5.4 Serverless WebSocket:弹幕应用系统设计及实现 204
5.4.1 背景 204
5.4.2 技术架构 204
5.4.3 技术实现 205
5.4.4 效果预览 210
5.4.5 总结 212
5.5 HTML与快应用实战:简易用户反馈功能实践 212
5.5.1 背景 212
5.5.2 技术架构 213
5.5.3 技术实现 213
5.5.4 效果预览 217
5.5.5 总结 218
第6章 传统内容管理系统Serverless化升级实战 219
6.1 背景 219
6.2 需求明确 220
6.3 技术选型 220
6.4 项目设计 221
6.4.1 基础架构设计 221
6.4.2 Jamstack 与性能提升设计 223
6.5 开发实现 225
6.5.1 模块 Serverless 化升级 225
6.5.2 API 网关配置与优化 227
6.5.3 可观测能力完善 231
6.6 项目预览 235
6.7 总结 236
第7章 基于 Serverless 架构的人工智能相册系统 238
7.1 背景 238
7.2 需求明确 239
7.3 技术选型 240
7.4 项目设计 241
7.4.1 基础架构设计 241
7.4.2 小程序 UI 设计 242
7.4.3 数据库设计 243
7.5 开发实现 247
7.5.1 数据库相关 247
7.5.2 后端代码 249
7.5.3 小程序相关 257
7.6 项目预览 262
7.7 总结 264
第8章 基于Serverless架构的企业宣传小程序 265
8.1 背景 265
8.2 需求明确 265
8.2.1 小程序功能 266
8.2.2 管理平台功能 266
8.2.3 其他需求点 266
8.3 技术选型 266
8.4 项目设计 267
8.4.1 基础架构设计 267
8.4.2 小程序 UI 设计 268
8.4.3 数据库设计 269
8.5 开发实现 271
8.5.1 数据库相关 271
8.5.2 后端代码 272
8.5.3 小程序相关 277
8.5.4 管理页面 283
8.6 项目预览 286
8.6.1 小程序端 286
8.6.2 管理端 287
8.7 总结 290
第9章 新一代 UI 云端录制回放解决方案 291
9.1 背景 291
9.2 需求明确 292
9.3 技术选型 293
9.4 项目设计 294
9.5 开发实现 296
9.5.1 接口测试支持 296
9.5.2 本地调试 296
9.5.3 Cypress 测试用例实现示例 297
9.5.4 函数计算实现方案 298
9.6 技术特点 299
9.7 项目优势 301
9.8 核心功能体验 303
9.8.1 图片一致性对比 303
9.8.2 一键切换浏览器执行用例 304
9.9 总结 306
第10章 基于 Serverless 架构的轻量WebIDE 服务 307
10.1 背景 307
10.2 需求明确 307
10.3 技术选型 308
10.4 项目设计 310
10.4.1 基础架构设计 310
10.4.2 API 设计 311
10.4.3 数据库设计 316
10.5 开发实现 317
10.5.1 Reverse Proxy 模块 317
10.5.2 服务安全加固 319
10.6 项目预览 320
10.7 总结 323
內容試閱 :
Preface 前 言
Serverless 架构曾被翻译为无服务器架构,而在中国信息通信研究院(以下简称中国信通院)的最新材料中,它被表述为服务器无感知架构,这充分说明 Serverless 架构所强调的核心理念是“让开发者把更多的精力放到自身的业务逻辑上,花更少的精力在服务器等底层资源上”。随着时间的推移,Serverless 架构逐渐被更多的开发者所关注,被更多的业务团队所接受。利用Serverless在降本增效方面的价值,用户可以在享受云计算时代带来的便利的同时,进一步感受 Serverless 时代带来的极致弹性、按量付费、低/免运维的技术红利。时至今日,Serverless 架构已经在技术领域掀起了一股新潮流,阿里云等云厂商更是坚信Serverless 奇点已来。
为何写作本书
如今,Serverless 架构已经在众多领域取得了重大突破,尤其是近些年,前端技术与 Serverless 架构的融合,让前端技术插上了探索的翅膀,快速地演进。有人认为,在过去的数十年中,前端技术曾有三次重大的革新,分别是 Ajax 的诞生、Node.js 对前端规范化和工程化的促进,以及 React 的组件化和VDOM理念的出现,而如今,前端技术的第四次重大革新已然到来,那就是 Serverless 架构与前端技术的融合。
在过去的几年中,无论是 Jamstack 技术的飞速发展、小程序/快应用开发生态的日益完善,还是 GraphQL 的逐渐风靡、WebAssembly带动前端性能的不断突破,它们的背后总有Serverless 架构的理念或者身影。尽管如此,相比其他生态,Serverless 架构与前端技术结合方面的学习资料依旧是比较匮乏的,在与很多前端工程师交流的过程中,我也可以感受到大家非常渴望有一本介绍Serverless 架构与前端技术的实战类著作。本书旨在通过简洁明了的语言、真实的案例以及开放的源代码介绍Serverless 架构的方方面面,和读者一同探索前端技术与 Serverless 架构。希望本书可以抛砖引玉,为读者打开 Serverless 架构与前端领域结合的大门:不仅可以知道什么是 Serverless 架构,更可以通过不同领域的实战案例去探索Serverless 架构与前端结合后的新世界;不仅可以上手开发 Serverless 应用,更可以通过本书分享的各类经验,让应用得以优化、性能得以突破,让技术服务于社会,让云计算、Serverless 架构推动行业的发展。
本书主要内容
本书是一本介绍Serverless 架构与前端技术的实战类著作,通过对 Serverless 架构发展史的解读,带领读者纵览Serverless 架构的诞生、发展、自我革新、逐渐繁荣。本书共10章,通过多个开源项目(包括Knative、OpenWhisk、Kubeless等)、多个云厂商的多款云产品(包括阿里云函数计算、AWS Lambda等),阐述Serverless 架构与前端技术的最佳实践,包括小程序/快应用与 Serverless 架构的结合,Serverless 架构下 RESTful API、GraphQL 的实战,对 WebAssembly、Jamstack 的探索等,并提供真实的实战案例。希望读者通过阅读本书,可以对Serverless架构有更加全面、直观的了解,进而将Serverless项目真正落地,融入自己所在的领域,充分享受 Serverless 架构带来的技术红利。
第1章介绍了Serverless 架构的概念定义、工作原理等,探索了Serverless架构的特性与挑战、Serverless架构的应用场景等。
第2章通过不同云厂商的 Serverless 产品以及不同的开源项目,带领读者初步了解Serverless 架构,真真切切地感受Serverless 应用的创建、开发、迁移/部署等流程。
第3章从前端视角对 Serverless 架构进行探索,带领读者深入了解Serverless架构,包括对Serverless 架构开发流程,应用开发、构建与调试,CI/CD,可观测性,应用优化等内容的探索等。
第4章分享了一些前端热门技术,包括 SSR、WebSocket、RESTful API、GraphQL、前后端一体化、小程序/快应用、WebAssembly等,并对这些热门技术与 Serverless 架构的结合进行了探索,帮助读者全面认识Serverless 架构与前端领域的结合。
第5章通过5个 Serverless 架构下的前端生产实战案例,带领读者感受 Serverless 架构下的前端应用开发流程,以启发读者对 Serverless 架构下的前端应用实战有更多的感悟。
第6章通过传统内容管理系统Serverless化实战,向读者介绍将传统框架部署到 Serverless 架构的流程和思路,以及将传统应用迁移到 Serverless 架构的方法和注意事项等。
第7章通过将Serverless 架构与人工智能、小程序开发相结合,让读者深入了解 Serverless 应用从需求明确到技术选型、项目设计、开发实现全流程的工作内容,助力读者拓展思路,举一反三。
第8章通过真实的中长尾企业需求,用 Serverless 架构赋能企业快速上线企业宣传小程序,为读者如何使用 Serverless 架构、如何用好 Serverless 架构提供了思路和经验。
第9章通过分享阿里云企业级解决方案实战,帮助读者了解新一代 UI 测试流程与 Serverless 架构的结合,助力开发者将更多场景内容与 Serverless 架构结合。
第10章通过阿里云函数计算团队真实的产品功能建设过程,为开发者提供基于 Serverless 架构的轻量 WebIDE 建设实战,帮助开发者快速拥有自己的云上开发平台,进一步了解Serverless 应用的开发流程、优化方案、使用技巧等。
如何阅读本书
在阅读本书前,读者应当具有一定的编程基础(例如了解 JavaScript、Node.js、Python等语言)或具有一定的前端技术基础,同时需要对云计算有初步的了解。本书采用循序渐进的方式,从什么是 Serverless 架构开始讲起,除了介绍基本概念外,重点对Serverless 架构与前端技术的融合进行了深入探索,以帮助读者快速入门,并通过领域实战、应用案例帮助读者拓展思路。建议读者按以下方式阅读本书:
第一遍通读全书,先弄清楚概念,并建立对 Serverless 架构与前端技术结合的基本认识,以及对如何完整地开发一个前端领域的 Serverless 应用的基本了解。
第二遍通过阅读领域实战提供的源代码,深入了解Serverless架构的运行原理、开发技巧等。
第三遍深入阅读本书的最后一章,以加深对Serverless 架构的概念的理解,同时,从零开发一款 Serverless 应用,并将其部署上线。
只有反复研读,才能更加深入地理解 Serverless 架构。
致谢
在写作本书的过程中,我曾遇到过很多困难和挑战,在此特别感谢阿里云云原生团队的小伙伴们,是他们的支持让本书得以顺利完成。
感谢本书的其他几位作者—王庆、袁坤、罗松、徐小春,有了大家的共同努力,本书才得以保质保量地完成。
感谢杨秋弟(曼红)、杨浩然(不瞋)等前辈,他们在本书的整个写作过程中不断给予鼓励和支持。感谢国防科技大学的窦勇教授、浙江大学的卜佳俊教授等,他们为本书提出了极
具建设性的意见。感谢姜曦(筱姜)在本书写作、出版过程中提供的帮助。感谢阿里云 ATA 团队提供的 ATA 平台,我们在 ATA 平台中获得了巨大的灵感。感谢在 ATA 平台中分享相关技术文章的工程师们。此外,感谢家人对我的支持和信任。
由于水平有限,书中难免存在不足及错误之处,敬请专家和读者批评指正。
江昱(刘宇)