无服务器函数如何比调用服务器的普通端点更快?
How a serverless function be faster than a normal endpoint called to a server?
据我所知,
无服务器函数(例如:Firebase 云函数)在每次调用时执行整个代码。它可能包括加载依赖项、第 3 方模块、设置数据库连接和拆除它们等需要花费大量时间。
在传统服务器中,加载所有依赖项,缓存和重用数据库连接。
因此,无服务器函数如何比典型的服务器调用更快地工作?
FaaS(功能即服务)只是一个在调用时执行的单一功能,这更多是一种误解,认为它更快。如果你有无限的服务器容量来执行一个非常简单的功能,它也会很快。
然而,Serverless 具有以下优点:
- 普遍便宜(只为使用付费,没有闲置时间)
- 立即无限资源(无需等待扩大或缩小以满足需求)。
- 解耦组件更简单,它只能做一件事。
- 您的团队无需管理补丁和安全的开销,这一切都为您处理。
人们喜欢无服务器,因为他们可以在短时间内将他们的想法转化为 POC,而无需真正考虑资源需求。
一个"serverless"函数只不过是一个普通的服务器(也许是一个容器),所有普通的依赖项和按需加载的东西。
因此,在您拨打 API 电话时会创建一个服务器(因此,当您没有接到那些 API 电话时,可以节省您的钱)。现在,一旦创建了其中一个服务器(容器),您可能会保留它一段时间,让它随着时间的推移处理更多的 API 调用。当您服务器的流量下降时,您可以终止它以节省成本。
所以你可以想象最终的场景是你进行的第一个 API 调用需要很多时间 ("cold-start") 并且随后的请求很快(因为一切都已经设置好) .
现在取决于提供给这些 "on-demand servers" 的资源数量 - 它们可能比更传统的东西更快。我还猜测,由于这些是云提供商的第一个 class 产品,因此它们的实现比可能做同样事情的其他服务更优化(比如 RDS 比 EC2 上的数据库 运行 更快) ).
因此 平均而言 您可能会发现您的无服务器函数执行速度更快。当然,总有 "cold-start" 问题对您来说可能是有问题的。
当然还有其他优点和缺点:
- 专业版:无需维护基础设施
- 专业版:与其他云服务无缝集成
- 缺点:供应商锁定
据我所知,
无服务器函数(例如:Firebase 云函数)在每次调用时执行整个代码。它可能包括加载依赖项、第 3 方模块、设置数据库连接和拆除它们等需要花费大量时间。
在传统服务器中,加载所有依赖项,缓存和重用数据库连接。
因此,无服务器函数如何比典型的服务器调用更快地工作?
FaaS(功能即服务)只是一个在调用时执行的单一功能,这更多是一种误解,认为它更快。如果你有无限的服务器容量来执行一个非常简单的功能,它也会很快。
然而,Serverless 具有以下优点:
- 普遍便宜(只为使用付费,没有闲置时间)
- 立即无限资源(无需等待扩大或缩小以满足需求)。
- 解耦组件更简单,它只能做一件事。
- 您的团队无需管理补丁和安全的开销,这一切都为您处理。
人们喜欢无服务器,因为他们可以在短时间内将他们的想法转化为 POC,而无需真正考虑资源需求。
一个"serverless"函数只不过是一个普通的服务器(也许是一个容器),所有普通的依赖项和按需加载的东西。
因此,在您拨打 API 电话时会创建一个服务器(因此,当您没有接到那些 API 电话时,可以节省您的钱)。现在,一旦创建了其中一个服务器(容器),您可能会保留它一段时间,让它随着时间的推移处理更多的 API 调用。当您服务器的流量下降时,您可以终止它以节省成本。
所以你可以想象最终的场景是你进行的第一个 API 调用需要很多时间 ("cold-start") 并且随后的请求很快(因为一切都已经设置好) .
现在取决于提供给这些 "on-demand servers" 的资源数量 - 它们可能比更传统的东西更快。我还猜测,由于这些是云提供商的第一个 class 产品,因此它们的实现比可能做同样事情的其他服务更优化(比如 RDS 比 EC2 上的数据库 运行 更快) ).
因此 平均而言 您可能会发现您的无服务器函数执行速度更快。当然,总有 "cold-start" 问题对您来说可能是有问题的。
当然还有其他优点和缺点:
- 专业版:无需维护基础设施
- 专业版:与其他云服务无缝集成
- 缺点:供应商锁定