每个人都在努力使他们的 Web 应用程序更快、更可扩展且更易于维护。有一个巨大的推动力将我们越来越多地转移到云中进行托管,这意味着现场拥有冷服务器机柜的商店越来越少。随着一切都转向云,我们并不总是确定我们的“服务器”正在使用什么操作系统。所以我们不妨更进一步,完全摆脱服务器。
这就是无服务器应用程序正在尝试做的事情。这个概念已经存在了几年,但它开始加快速度。由于无服务器应用程序提供的所有好处,公司开始尝试使用无服务器应用程序,但正如许多公司由于潜在问题而犹豫不决一样。当您读完本文时,您应该了解无服务器应用程序到底是什么、好处和潜在问题,以及如何构建一个应用程序。
无服务器的含义是什么?
“无服务器”一词很奇怪,因为您知道需要一台服务器来托管任何在线内容。真正发生的是一种分布式服务器的事情。因此,您将在某处托管您的 Web 应用程序(HTML、CSS、JS)的代码,然后您的所有后端内容都将在其他地方处理。您将对其他服务进行 API 调用,并使用 Azure Functions 或 AWS Lambda 等工具来处理数据。
您可以将无服务器应用程序视为在事件发生时调用 3rd 方 API 的前端。这意味着没有任何事情坐在那里等待事件发生或电话打通。与普通的 Web 应用程序不同,您根本不必处理后端。一切都是动态发生的,这为您的应用程序释放了大量资源。
无服务器架构的优缺点:如果不谈论它的优缺点,就很难描述无服务器架构。无服务器应用程序开始变得越来越流行的原因与保留单体应用程序的原因一样多。以下是无服务器应用程序的一些优缺点。
优点
- 您不必担心因为一个错误而导致整个后端崩溃。
- 不再进行大规模部署,因为您的整个后端都是分布式的。
- 您不必了解特定的后端语言,因为您不必编写任何代码。
- 设置速度快得令人难以置信。
- 从一开始就可扩展,因为您不必担心有多少请求正在访问您的服务器。
缺点
- 您放弃了对代码实现方式和原始数据处理方式的大量控制。
- 如果应用程序的架构正确,用户体验可能会受到影响。
- 由于您依赖第三方,因此存在更多潜在的安全风险。
- 本地测试可能很困难。
- 需要大量的纪律来防止应用程序蔓延失控。
您必须确定您的应用程序是否真的需要无服务器。并非每个 Web 应用程序都需要无服务器,因为单体应用和云托管各有优缺点。将您的应用程序切换到无服务器架构并非易事。这也不是你可以逐渐做的。一旦你承诺,你必须全力以赴。
设置无服务器应用程序并不困难,它是在您开始构建之前发生的所有想法和设计。当您确定要继续使用无服务器 Web 应用程序时,您可以遵循以下简单架构。无服务器应用程序最有趣的事情之一是没有后端。这意味着开发人员只需关注前端及其调用的 API 的架构。
如何构建无服务器应用程序?
您需要了解的主要内容是如何设置无服务器应用程序。架构很简单,但这就是让它变得棘手的原因。无服务器应用程序只需要五个主要组件即可运行:前端的 Web 服务器、一些 lambda 函数、安全令牌服务、一些用户身份验证和数据库。
真的就是这么简单。您只需“插入”您需要使用的 API,并在用户触发事件时使用它们。有一些适用于 Node 的库可用于制作无服务器应用程序,例如 Claudia.js 或 Apex 来启动您的应用程序。就您使用的 lambda 而言,最流行的选项是 AWS Lambda 和 Azure Functions。
您会考虑使用无服务器应用程序的一种情况是,如果您知道用户数量将会增加。无服务器架构最强大的方面之一是其扩展能力。其他一些场景包括进行直播和处理物联网数据,比如那些家庭监控系统。