购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

本书主要面向有一定 Node.js 实战经验的全栈工程师。其中的示例代码均采用 JavaScript编写,该代码在 Node.js 12.x 的运行环境下可正常执行。因此,如果读者熟悉 Node.js 编程,就会对其中的示例代码有更充分的了解。不过对于前端研发人员来说,在熟悉 JavaScript 的基础之上,学习 Node.js 应该是非常容易的。本书的定位是让前端研发人员能够快速地了解并掌握服务端编程。因此,即使没有 Node.js 经验的前端研发人员,理解本书中的示例也并不困难。

本书并不假设读者已经具备任何云原生的研发经验,或任何云计算平台的使用经验。但如果读者在这之前已经具备相关经验,将对学习本书的内容有所助益。

示例风格

本书的部分章节将包含示例代码,它们均以统一的风格编写而成,希望读者能够将这些示例代码放在实际的运行环境中进行实践,以加强对相关内容的理解,从而可以在今后的实际工作中更灵活地应用书中的内容。另外,本书的部分章节使用了特定的云计算供应商提供的环境,作为示例代码的运行环境。由于目前 Serverless 并没有形成行业规范,因此示例代码可能并不能直接应用于不同的云计算供应商。若有需要,读者可以自行对其进行小幅调试,以适配不同的云计算供应商。

内容结构

本书整体分为三大部分。

第1部分(第0~4章)将从 Serverless 对前端的颠覆性影响入手,讲述什么是 Serverless 思想,以及在云计算时代为什么需要 Serverless。通过对本部分的学习,读者可从宏观层面感性地认识到 Serverless 与当前已有技术的定位关系,明确它与这些技术的合作模式,并可更全面地认识到 Serverless 给研发和运维所带来的巨大变化。

第 2 部分(第 5~9 章)将着重探讨 FaaS,它是 Serverless 核心思想的实际应用技术。我们将首先在云计算供应商所提供的 FaaS 产品中体验它与传统研发模式的不同,再深入其内部,了解它的核心设计思想和原理,最后动手实践一套简单的 FaaS 架构。通过对本部分的学习,读者可更透彻地理解 FaaS 的内部机制,以便在实际业务场景中更灵活地应用 FaaS。

第3部分(第10~14章)则将视角转向 BaaS,它是 Serverless 的另一大分支体系。BaaS 的出现,让应用的研发成本大幅度降低,并使得如数据库、缓存等服务端技术的使用变得十分便捷。本部分将从 BaaS 的基本理念开始介绍,并通过实践,讲解最核心的三大 BaaS 产品,即数据库、文件系统和用户身份认证系统。通过对本部分的学习,读者可掌握 BaaS 的使用技巧,从而在今后的应用研发过程中只需要关注前端部分的工作,而后端的各种服务端技术则完全通过 BaaS API 来实现。

章节概览

第0章从 Serverless 对前端的颠覆性影响入手,从三个方面剖析 Serverless 的价值导向与实践意义,为读者开始学习后面的完整体系,奠定认知基础与定位坐标。

第1章将从 Serverless 的起源谈起,介绍其基本理念以及 CNCF Serverless 白皮书对它的定义,并从广义定义和标准定义两个角度来阐述什么是 Serverless 架构。随后,将结合前端架构的演进,探讨为什么在基于 BFF 前后端分离的技术上,前端应该使用 Serverless 架构,以及它的价值和意义。

第2章介绍 Serverless 架构的优势与劣势,通过案例讲解 Serverless 在服务端与前端领域中的不同应用场景。希望读者在了解了 Serverless 架构的特性和优势/劣势后,能够基于这些特点,探索 Serverless 的更多应用场景。

第3章将介绍 Serverless 与各个服务端技术之间的关系,并介绍如何从传统架构和微服务架构逐渐迁移到 Serverless 架构。

第4章将介绍多个与 Serverless 相关的前端技术,以及如何从 BFF 迁移到 Serverless 架构。另外,本章还将介绍云计算供应商的 Serverless 服务为什么都采用 Node.js 语言作为其最初支持的语言,同时还将探讨 TypeScript 和 GraphQL 在 Serverless 中的应用场景和局限性。

第5章将介绍 FaaS 的基本概念以及函数的事件驱动、无状态特性等。通过分析这些特性,阐明 FaaS 技术的优点与缺点,大家能更容易地知道自己应该在什么场景下应用 FaaS。

第 6 章开始进入 FaaS 的实践环节。在本章中,将通过 3 种不同的方式,完成一个HelloWorld 函数的创建、调试和发布。其中,通过控制台来管理函数,我们只需要有一个浏览器即可完成工作,但它无法管理超过一定数量的函数配置;而通过官方命令行工具,我们可以选择自己习惯的终端和代码编辑器,从而实现管理大型应用的目的。

第7章将介绍函数发布的内部细节,包括它是如何在云服务器中进行构建、部署的。此外,还将介绍在 FaaS 场景下,如何通过版本和别名的配置操作,完成服务的灰度发布和 A/B 测试。与虚拟机或容器镜像相比,对函数的管理将更简捷、自然。

第8章将介绍函数的触发与执行机制。函数触发器,实际上是云计算各个产品中的“黏合剂”,通过它的灵活运用,可以让不同的云计算产品有机地结合起来,从而提供更强大的服务。当函数被触发器调用后,会大致经历入口调用、运行时执行和日志输出3个阶段,本章将逐一进行介绍。

第9章将介绍如何从零开始搭建一个函数的运行环境。通过实践,读者可深入地理解 FaaS的运转机制,包括如何保障函数的隔离性、如何限制函数的计算资源等。

第 10 章将进入 BaaS 的学习阶段。本章首先介绍 BaaS 的背景知识,通过了解云计算的不同服务模式,读者可感受到 BaaS 在研发中的定位。随后,通过对 Google Firebase 的介绍,读者可一窥 BaaS 所提供的能力。

第11章开始进入实践环节。我们将基于阿里云小程序 Serverless 平台和微信小程序,创建属于自己的 Serverless 应用。

第 12 章将介绍数据库方向的 BaaS 产品。本章首先简单介绍 NoSQL 背景,以及MongoDB 的数据结构设计基本原则,随后,以阿里云小程序 Serverless 平台为例,介绍如何使用 BaaS 实现数据的持久化。与传统的数据库服务相比,基于 BaaS 的数据存储服务实现了开箱即用的能力,我们只需在控制台通过简单的配置,即可在客户端中对数据集进行操作,无须关注操作系统、数据库类型选择,以及数据库版本升级等一系列问题。

第13章将介绍 BaaS 的另一大产品——文件存储服务。本章将讲解如何通过 API 完成文件的上传和分发。

第14章将介绍与身份认证有关的内容。通过对 OpenID 与 OAuth 协议的学习,读者可了解应用身份认证与授权登录的区别。随后,我们将基于 Auth0 提供的身份认证 BaaS 产品来创建一个 Serverless 的身份认证系统。这样在不依赖任何后端服务的情况下,就能完成用户注册、用户登录以及密码找回等一系列功能。

读者服务

微信扫码回复:40981

◎ 获取本书参考资料链接

◎ 获取各种共享文档、线上直播、技术分享等免费资源

◎ 加入本书读者交流群,与本书作者互动

◎ 获取博文视点学院在线课程、电子书20元代金券 tOzVfZLKzDQSGU8r0Ifw/R8OoyoKxSVur8hs1vzqA3AEZOnbT0kGI1SVAov30eUa

点击中间区域
呼出菜单
上一章
目录
下一章
×