无服务器计算是一种按需提供后端服务的方法。无服务器提供者允许用户编写和部署代码,而不必担心底层基础设施。从无服务器提供商获得后端服务的公司将根据计算量来付费,由于这种服务是自动扩展的,不必预留和付费购买固定数量的带宽或服务器。请注意,虽然名为“无服务器”,实际上依然需要物理服务器,只不过开发人员不需要考虑服务器而已。
在Web早期,任何想要构建Web应用程序的人都必须拥有运行服务器所需的物理硬件,这是一项繁琐而昂贵的工作。
然后是云计算,可供远程租用固定数量的服务器或服务器空间。租用这些固定服务器空间的开发人员和公司通常会过度采购,以确保其应用程序不会因为流量或活动的激增超过每月限额而中断。这意味着所购买的大部分服务器空间可能被浪费。云供应商已经引入了自动扩展模型来解决该问题,但是即使使用了自动扩展,也可能因为恶意活动激增(例如 DDoS 攻击)而产生非常高昂的成本。
![什么是无服务器计算以及如何运作?](https://www.guangweiblog.com/wp-content/uploads/2024/07/2024072202325844-1024x481.png)
无服务器计算允许开发人员在灵活的“按需付费”的基础上购买后端服务,这意味着开发人员仅需为使用的服务付费。这就像从每月固定限额的手机数据套餐切换到只为实际使用的每个字节数据收费的套餐一样。
“无服务器”一词在某种程度上具有误导性,因为它仍然有服务器提供这些后端服务,但是所有服务器空间和基础设施问题都由提供商处理。无服务器意味着开发人员可以完全不用担心服务器。
什么是后端服务?前端和后端之间有什么区别?
应用程序开发通常分为两个领域:前端和后端。前端是用户看到并与之交互的应用程序部分,例如视觉设计。后端是用户看不到的部分。其中包括应用程序文件所在的服务器以及持久存储用户数据和业务逻辑的数据库。
![什么是无服务器计算以及如何运作?](https://www.guangweiblog.com/wp-content/uploads/2024/07/2024072202323340-1024x478.png)
例如,让我们想象一个销售音乐会门票的网站。当用户在浏览器窗口中输入网站地址时,浏览器向后端服务器发送请求,后端服务器用网站数据进行响应。然后,用户将看到网站的前端,其中可能包括文本、图像和供用户填写的表单字段。然后,用户可以与前端上的表单字段之一进行交互,以搜索他们喜欢的音乐表演。当用户单击“提交”时,将触发另一个对后端的请求。后端代码检查其数据库,以查看是否存在具有该名称的表演者,如果存在,则会反馈下次表演的时间以及有多少可售的票。然后,后端会将数据传递回前端,前端将以用户能理解的方式显示结果。同样,当用户创建一个帐户并输入财务信息以购买票时,前端与后端之间将发生另一次来回通信。
无服务器架构如何运作?
任何应用程序都有两个广泛的功能领域 — 前端和后端。前端包括最终用户与之交互的所有内容,例如视觉布局、按钮和显示文本。后端包含用户无法访问的功能,例如数据存储和处理。
例如,考虑在您的移动设备上使用航班预订应用程序。前端是您的应用程序用户界面,您可以在其中选择日期并请求可用的航班列表。您的请求会转到后端,后端会查找数据库并返回有关所选时间范围内所有可用航班的信息。下图显示了传统架构。
![什么是无服务器计算以及如何运作?](https://www.guangweiblog.com/wp-content/uploads/2024/07/2024072202334880-1024x462.png)
在无服务器架构中,开发人员在云提供商提供的云基础设施中部署后端代码。无服务器应用程序的关键是事件驱动型架构 — 这是一种现代架构模式,由发布、使用或路由事件的小型解耦服务构建而成。 事件是在服务之间发送的消息。
借助此架构,可以更加轻松地扩展、更新和独立部署系统的单独组件。下图显示了事件驱动型无服务器微服务。
![什么是无服务器计算以及如何运作?](https://www.guangweiblog.com/wp-content/uploads/2024/07/2024072202351250-1024x311.png)
接下来,我们将概述无服务器架构的工作原理。
函数
函数是执行单一任务的小型离散代码单元。函数需要 CPU 和内存等计算资源才能运行。云提供商仅在需要时才分配这些资源。云提供商为无服务器函数的运行创建临时环境。
某些事件可以触发或使代码单元运行。例如,如果用户在应用程序中选择按钮,则事件可能会运行。该请求将触发读取数据库并将相关信息返回给用户的函数。
扩展请求
函数收到的请求越多,它需要用于运行的资源就越多。无服务器平台监控负载并持续以近乎无限的规模分配云资源。因此,单个无服务器函数可以在不更改代码的情况下处理一百万条请求。
一旦某个函数停止接收请求,云提供商就会关闭相关的基础设施以节省成本。云提供商仅在需要时分配资源。如果没有使用量,则环境资源可以缩减至零。
无服务器计算的优势是什么?
- 降低成本 – 无服务器计算通常具有很高的成本效益,因为传统的后端服务(服务器分配)云提供商经常导致用户为未使用的空间或空闲的 CPU 时间付费。
- 简化可扩展性 – 使用无服务器架构的开发人员不必担心扩展其代码的策略。无服务器供应商可按需处理所有扩展。
- 简化后端代码 – 使用 FaaS,开发人员可以创建简单的功能,这些功能独立地执行单个目的,例如进行 API 调用。
- 加快周转时间 – 无服务器架构可以大大缩短产品上市时间。开发人员无需通过复杂的部署过程实施错误修复和新功能,而是逐个添加和修改代码。
有哪些类型的无服务器架构?
在无服务器架构中,云提供商为您的应用程序管理多个小型和大型后端任务。您可以部署自定义代码;在代码运行期间,云提供商会动态分配资源。云平台还可以提供后端功能,您可以直接使用这些功能,而无需从头开始编写代码。
接下来,我们将解释这两种类型的无服务器架构。
函数即服务
函数即服务(FaaS)是一种无服务器架构,开发人员可以使用此架构编写自定义后端函数并将函数代码直接部署到云基础设施。调用函数时,云提供商会在现有的活动服务器上运行该函数,或者在需要时启动新的服务器。此类函数之所以称为无服务器函数,是因为开发人员无需关注其执行过程。开发人员可以编写和部署代码,而不必担心代码的运行方式和运行位置。
后端即服务
后端即服务(BaaS)可让开发人员使用 API 访问后端功能。API 是允许两个软件组件使用一组定义和协议相互通信的机制。
在其无服务器环境中,云供应商提供基于 API 的访问权限,以访问额外的加密、身份验证和可从云访问的数据库。它们还可以提供对其他第三方服务和应用程序的访问权限。这些无服务器函数是预先编写的,可以在代码中直接调用。
无服务器未来发展
随着无服务器提供商提出解决方案以克服其一些缺点,无服务器计算继续发展。其中一个缺点是冷启动。
通常情况下,当某个无服务器函数在一段时间内未被调用时,提供商会将其关闭以节省能源和避免过度配置。下次有用户运行一个调用该函数的应用程序时,无服务器提供商将必须重新启动并重新开始托管该函数。这个启动时间增加明显的延迟,称为“冷启动”。
一旦函数启动并运行,它在后续请求中将获得更快的服务速度(热启动),但如果在一段时间内没有再次被请求,就会重新进入休眠。这意味着下一个请求该函数的用户将经历冷启动。直到最近,冷启动仍被认为是使用无服务器函数的一个必要权衡。
如果你觉得本文对你有用,请收藏本站,以备不时之需。
![weinxin](https://www.guangweiblog.com/wp-content/uploads/2023/12/202312210401191.jpg)
![weinxin](https://www.guangweiblog.com/wp-content/uploads/2020/11/王光卫微信公众号.jpg)
北京市 1F
通俗易懂很专业啊,学习了
辽宁省沈阳市沈河区 2F
是的,一旦服务多了,部署在服务器上太麻烦了,无服务器计算把这个问题解决的很好,我们自己就不需要操作太多了
山西省太原市 3F
过来逛逛,学习学习。