与传统的基于云或以服务器为中心的基础架构相比,无服务器计算具有许多优势。对于许多开发人员而言,无服务器架构以更低的成本提供了更大的可扩展性、更大的灵活性和更快的发布时间。使用无服务器架构,开发人员无需担心购买、配置和管理后端服务器。然而,无服务器计算并不是所有 Web 应用程序开发人员的灵丹妙药。,,
无服务器计算如何工作?,无服务器计算是一种架构,其中供应商根据需要提供后端服务。要了解有关无服务器计算的更多信息,请参阅什么是无服务器计算?,
无需服务器管理,尽管“无服务器”计算确实发生在服务器上,但开发人员永远不必处理服务器。它们由供应商管理。这可以减少 DevOps 所需的投资,从而降低开支,还可以让开发人员腾出时间来创建和扩展他们的应用程序,而不受服务器容量的限制。,
开发人员只需为其使用的服务器空间付费,从而降低成本,与“即用即付”电话计划一样,开发人员只需为他们使用的内容付费。代码仅在无服务器应用程序需要后端功能时运行,并且代码会根据需要自动扩展。配置是动态的、精确的和实时的。有些服务非常精确,以至于它们将费用分解为 100 毫秒的增量。相比之下,在传统的“全服务器”架构中,开发人员必须提前预测他们需要多少服务器容量,然后购买该容量,无论他们最终是否使用它。,,
无服务器架构本质上是可扩展的,想象一下,如果邮局能够以某种方式神奇地随意添加和停用送货卡车,随着邮件数量的激增(例如,就在母亲节之前)增加其车队的规模,并在需要较少交付的时候减少其车队。这基本上是无服务器应用程序能够做到的。,使用无服务器基础架构构建的应用程序将随着用户群的增长或使用量的增加而自动扩展。如果一个功能需要在多个实例中运行,供应商的服务器将根据需要启动、运行和结束它们,通常使用容器。(如果最近运行该函数,它将更快地启动 – 请参阅下面的“性能可能会受到影响”。)因此,无服务器应用程序将能够处理异常大量的请求,就像它可以处理一样来自单个用户的单个请求。具有固定数量服务器空间的传统结构化应用程序可能会因使用量的突然增加而不堪重负。,
可以进行快速部署和更新,使用无服务器基础架构,无需将代码上传到服务器或进行任何后端配置即可发布应用程序的工作版本。开发人员可以非常快速地上传一些代码并发布新产品。他们可以一次上传全部代码或一次上传一个函数,因为应用程序不是一个单一的整体堆栈,而是供应商提供的一组函数。这也使得快速更新、修补、修复或向应用程序添加新功能成为可能。无需对整个应用程序进行更改;相反,开发人员可以一次更新应用程序一项功能。,
代码可以更靠近最终用户运行,从而减少延迟,因为应用程序不是托管在源服务器上,所以它的代码可以在任何地方运行。因此,根据所使用的供应商,可以在靠近最终用户的服务器上运行应用程序功能。这减少了延迟,因为来自用户的请求不再需要一路传送到源服务器。,,
测试和调试变得更具挑战性,很难复制无服务器环境以查看代码在部署后的实际执行情况。调试更加复杂,因为开发人员无法看到后端进程,并且因为应用程序被分解为单独的、更小的功能。,
无服务器计算引入了新的安全问题,当供应商运行整个后端时,可能无法完全检查他们的安全性,这对于处理个人或敏感数据的应用程序来说尤其是一个问题。由于公司没有分配到自己的离散物理服务器,因此无服务器提供商通常会在任何给定时间在单个服务器上运行来自多个客户的代码。这种与其他方共享机器的问题被称为“多租户”——想想几家公司试图同时在一个办公室租赁和工作。多租户会影响应用程序性能,如果多租户服务器配置不正确,可能会导致数据泄露。多租户对沙盒功能正常且基础设施足够强大的网络几乎没有影响。,
无服务器架构不是为长时间运行的进程构建的,这限制了可以在无服务器架构中经济高效地运行的应用程序种类。由于无服务器提供商对代码运行的时间量收费,因此与传统基础架构相比,在无服务器基础架构中运行具有长时间运行进程的应用程序的成本可能更高。,,
性能可能会受到影响,因为它不是持续运行的,所以无服务器代码在使用时可能需要“启动”。此启动时间可能会降低性能。但是,如果定期使用一段代码,无服务器提供程序将保持它准备好被激活——对这个现成代码的请求称为“热启动”。对一段时间未使用的代码的请求称为“冷启动”。Workers 通过使用 Chrome V8 引擎在很大程度上避免了冷启动问题,该引擎在大多数情况下能够在 5 毫秒内启动和运行 JavaScript 代码。如果代码已经在运行,则响应时间不到一毫秒。详细了解不同无服务器平台的性能。,
供应商锁定是一种风险,允许供应商为应用程序提供所有后端服务不可避免地会增加对该供应商的依赖。与一个供应商建立无服务器架构可能会使必要时难以切换供应商,特别是因为每个供应商提供的功能和工作流程略有不同。,
谁应该使用无服务器架构?,想要缩短上市时间并构建可快速扩展或更新的轻量级、灵活应用程序的开发人员可能会从无服务器计算中受益匪浅。无服务器架构将降低使用不一致的应用程序的成本,高峰期与几乎没有流量的时间交替出现。对于此类应用程序,购买持续运行且始终可用(即使未使用)的服务器或服务器块可能是对资源的浪费。无服务器设置将在需要时立即响应,并且在静止时不会产生成本。此外,想要将部分或全部应用程序功能推送到靠近最终用户以减少延迟的开发人员将需要至少部分无服务器架构,因为这样做需要将一些进程移出源服务器。,,
开发人员何时应避免使用无服务器架构?,在某些情况下,无论从成本角度还是从系统架构角度来看,使用自我管理或作为服务提供的专用服务器都更有意义。例如,具有相当稳定、可预测的工作负载的大型应用程序可能需要传统设置,在这种情况下,传统设置可能更便宜。此外,将遗留应用程序迁移到具有完全不同架构的新基础架构可能非常困难。,
,与传统的基于云或以服务器为中心的基础架构相比,无服务器计算具有许多优势。对于许多开发人员而言,无服务器架构以更低的成本提供了更大的可扩展性、更大的灵活性和更快的发布时间。使用无服务器架构,开发人员无需担心购买、配置和管理后端服务器。然而,无服务器计算并不是所有 Web 应用程序开发人员的灵丹妙药。,,
无服务器架构不是为长时间运行的进程构建的
为什么要使用无服务器计算?它的优缺点是什么?
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《为什么要使用无服务器计算?它的优缺点是什么?》
文章链接:https://zhuji.vsping.com/498009.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《为什么要使用无服务器计算?它的优缺点是什么?》
文章链接:https://zhuji.vsping.com/498009.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。