FaaS 与其他云计算服务

什么是函数即服务

FaaS 指一种 Serverless 后端服务,允许开发者随时编写模块化代码,并在特定事件触发时执行。

借助 Serverless 计算,开发者无需关注云基础设施即可创建和运行应用。Serverless 架构中服务器仍然存在,但与应用开发过程相分离。云服务商负责服务器的资源调配、维护和扩缩容等日常工作,使开发者能够专注于部署代码。

虽然函数即服务(FaaS)和 Serverless 有时被混用,但二者有明确的区别。Serverless 泛指服务器与最终用户完全分离的架构类别,而 FaaS 是 Serverless 计算的子集,专注于事件驱动触发,代码在响应事件或请求时执行。没有事件驱动请求时服务器会关闭,资源可供后续请求使用。FaaS 按需响应并灵活扩缩容,Serverless 函数空闲时几乎不产生费用,从而在不同场景下降低成本。

PaaS、IaaS 与 FaaS 的关系

平台即服务(PaaS)、函数即服务(FaaS)和基础设施即服务(IaaS)统称为云计算服务,三者的区别在于基础设施与用户之间的抽象层级不同。

IaaS 提供最低的抽象层级。用户对基础设施及配套工具和软件拥有完全控制权,但无需管理或控制数据中心等物理基础设施。IaaS 允许开发者选择所需的抽象层,可以自行管理所有组件,也可以引入负载均衡器和托管服务等特性来简化应用维护。

对最终用户而言,PaaS 增加了一层抽象。用户无需管理应用的操作系统、运行时及其他基础设施组件,但仍可精细控制底层基础设施选项和应用。PaaS 为希望快速上线应用的开发者提供全托管的基础设施方案,开发者可以专注于业务,由服务商处理系统管理和后端运维。

FaaS 为运维人员提供最高的抽象程度和最为特定的功能。开发者可以访问按需运行应用逻辑的系统,由服务提供商管理所有系统资源和其他基础设施组件。

PaaS 与 FaaS 的区别

虽然 FaaS 和 PaaS 初看起来很相似,但选择时需要考虑以下重要差异。


● 配置:FaaS 用例简单且采用全托管方案,资源配置时间短。PaaS 虽然比其他云计算服务抽象程度更高,但仍需要一定的配置工作。根据所需的控制程度,这既可能是优势也可能是劣势。
● 运维:FaaS 为每个请求启停整个应用。PaaS 虽然支持按需扩缩容,但资源通常随时可用。这一 FaaS 特性可能影响延迟、成本和复杂请求的处理能力。
● 可扩展性:PaaS 支持按需扩缩容,但需要开发者主动配置。FaaS 无需容量规划,可自动灵活扩缩。
● 定价:PaaS 定价因服务商而异,轻量工作负载下通常比 FaaS 更贵。如果事件触发不频繁,FaaS 按函数调用次数计费,可节省成本。对于稳定或大规模工作负载,PaaS 可能更经济。

FaaS 的工作原理

早期应用通常采用单体架构,整个应用作为一个整体执行。微服务架构逐渐流行,由可独立部署的组件构成,便于单独维护和测试。

理想情况下,函数就是一个能够执行单一操作以响应事件的微服务。在 FaaS 中调用函数时,服务商会启动服务器执行代码,完成后关闭服务器。Serverless 服务仅在函数运行时处于活动状态,计算资源可部署到其他用途。

开发者通过 FaaS 平台运行应用代码。FaaS 的优势在于简洁性。要充分发挥 FaaS 的价值,需确保每个函数只执行单一操作,函数范围应受限且高效。使用过多库或让函数调用其他函数会导致程序变慢并增加成本。

FaaS 的优势

采用 FaaS 架构有诸多优势,以下是选择 FaaS 运行应用的几个理由:


● 专注于应用的编码和开发
● 按使用量付费,降低成本
● 自动扩缩容,无需容量规划和日常维护
● 测试和开发简便,缩短上市时间

选择 FaaS 时的注意事项

从 Web 应用到在线聊天机器人、数据处理到后端函数,FaaS 用途广泛。选择 FaaS 服务商前,请考虑以下因素:


● 工作负载:FaaS 适合轻量且请求频繁的重复任务。由于 FaaS 按函数执行次数计费,高负载场景下的费用可能高于 PaaS。工作负载较小时,FaaS 是简化资源调配和降低成本的理想方案。
● 控制程度:FaaS 是抽象程度最高的云产品之一。考虑对配置和基础设施所需的可见性和控制程度。如果希望比 FaaS 多一些控制同时保持易用性,可以考虑 PaaS 方案。需要完全掌控生产环境及基础设施设计和行为的团队,建议选择 IaaS 方案。
● 供应商锁定:指服务商构建的应用难以迁移到其他供应商的情况。使用开源云技术可以更容易将计算工作负载从单一服务商迁移到其他服务商。

相关文章

浏览更多特惠

  1. 短信服务(SMS)与邮件服务

    50,000封邮件套餐包低至1.99美元,120条短信仅需1.00美元

phone 联系我们
你好,我是AI助理。
可以解答问题、推荐解决方案等。