无服务器计算和 FaaS 模型 – 云计算的下一个阶段
如果我们听到术语“无服务器计算”,我们很容易被原谅,认为我们正在进入一个需要新的世界,在这个世界中,我们不需要服务器来操作应用程序。尽管名称具有误导性,但无服务器计算代表了云发展中的一个重要里程碑。
无服务器计算
无服务器计算是一种应用程序部署和管理范例,消除了必须预配服务器才能在云中操作应用程序的需求。它免除了开发人员对服务器预配、可伸缩性和管理的担忧,以便他们可以专注于制作和改进核心产品。
在利用云计算执行方法时,仍然需要使用服务器。然而,它通过在云基础设施上添加额外的抽象层,为您提供了操作应用程序所需的一切。
无服务器计算的特点
使用无服务器计算可以在管理服务器的同时运行代码,并根据事件执行函数,而不是连续执行。
它允许按请求自适应函数的伸缩。无需额外的设置。
各种事件类型和 API 网关可以激活函数。
作为服务的软件(FaaS)模式
通过阐明 FaaS 模型,可以更好地理解无服务器计算。
SaaS、IaaS 和 PaaS 都属于许多人熟知的一些概念。在深入探讨 FaaS 之前,让我们定义几个术语。
SaaS 是一种云计算服务,用户付费订购存储在远程数据中心的预定义软件的访问权限。
除了提供物理和虚拟基础架构之外,云基础设施 (IaaS) 还处理资源管理和可扩展性。
与传统的应用程序创建方法相比,云提供商 (PaaS) 会向开发者交付必要的软件和硬件。AWS Beanstalk 和适用于构建移动应用的 Azur 等服务就是此类实例。
接下来,让我们深入了解 FaaS 范式。这是一种 FaaS 方法,开发者可以专注于制作、运行和管理应用,而无需管理底层的应用程序基础设施。该方法以函数为基础,函数是执行特定任务的离散代码部分。该模型中每个函数都会根据模型触发的特定事件(例如,API 请求、数据库事件、预定义事件等)而执行。而且,很多函数组合在一起就能创建无服务器应用程序 (FaaS)。
此外,还要考虑以下信息:FaaS 范式没有任何状态概念。由于 FaaS 架构下的函数是在可支配容器中执行的,因此无法访问之前执行的函数的状态。为避免这种情况,可以在处理永久性解决方案时,借助 Amazon S3 等第三方服务来暂时存储数据实例。此信息可以在各个部门之间传递。
粗心的比较可能会让你认为 PaaS 和 FaaS 是可以互换的。PaaS 为 Web 应用的发布和管理提供便利,但并不会提供按需关闭整个应用的选项。
然而,FaaS 却可以做到这一点,因为具有适应性。
在 PaaS 环境中,扩展应用程序需要使用额外的基于 PaaS 的技术,包括 AWS Elastic Beanstalk。另一方面,FaaS 基础设施提供了管理应用程序可扩展性的高效方法,这是上述方法无法做到的。
无服务器计算的利弊
到目前为止,我们已经介绍了 FaaS 模型和无服务器计算。现在让我们检查一下无服务器计算的利与弊。
无服务器计算的优点 − 在 FaaS 中,预定义的运行时(基础设施实际上只会在特定一段时间内使用)和共享的运行时可以极大地降低运营成本。
云提供商处理基础设施维护,使用户能够专注于构建功能。
由于它能够在水平和垂直方向上自动扩展,因此最大程度地减少了与组织资源的增长或收缩相关的开支。与 PaaS 模型相比,此模型的扩展成本大幅降低。
在管理日常运营方面,FaaS 是最简单易用的选项,因为它简化了部署和管理软件的过程。最重要的是,它能迅速使你的业务概念变为现实。
无服务器计算的限制 − 无服务器计算有很多优势,但也存在一些劣势。请查看以下详细信息。
由于无服务器设计是由云提供商管理的,因此你无法对底层系统施加影响。
该应用程序的预定义运行时特征与大多数云供应商的超时时间段冲突,因此必须长时间运行。
最大的缺点之一是供应商锁定,这会阻止您将您的云服务转移到不同的供应商。
由于 FaaS 仅仅是一个事件设计,因此软启动的前景引起了关注。如果您已经有一段时间没有活动,那么当发生意外事件时,您的反应时间可能会增加。
由于无服务器应用程序利用的是公共基础设施,因此无论底层服务器归谁所有,都可以同时运行多个应用程序。因此,邻居应用程序的高负载生成功能将对您的代码产生影响。不幸的是,这个问题并非无服务器服务独有,它影响着绝大多数的共享服务模型。
结论
无服务器计算有几个优势。但它并不是一个无操作的情况。确实,您不需要专门的 IT 专业人员来使基础设施正常运行,但仍有部分方面您需要关注,以确保您的应用程序保持在线状态。但是,无需担心,因为 FaaS 包含用于监控的数据服务,以便随时关注您的应用程序。