无服务器架构:使用 FaaS 的优势 和缺点有哪些

 

FaaS( 功能即服务 )是为行业提供的一种较新的服务类型,它随云体系结构的发展而发展。 这被称为无服务器计算/无服务器架构 。 简而言之,无服务器架构抽象了除应用程序开发之外的所有层。 因此,开发人员只能专注于业务需求开发。 无服务器提供事件驱动的服务,以触发在开发环境中创建并由云提供商托管的功能,这些功能通常包含一部分业务逻辑。

无服务器架构允许一种特定的定价。 云提供商通常只为执行代码付费,提供了比基础架构即服务(IaaS),平台即服务(PaaS)等同行更具成本效益的平台。 低运营成本,较短的上市时间,更高的过程敏捷性是无服务器计算成为流行的架构范例的主要原因。 从开发人员的角度来看,更快的开发环境设置,更轻松的运营管理和零系统管理是最大的好处。 无服务器具有基于资源消耗的具有成本效益的定价,通常分为

  1. 分配的资源,例如内存,CPU或网络
  2. 应用程序功能的运行时间(包括毫秒间隔)和执行次数。

无服务器架构的优势及其功能将在下面进行说明。

可伸缩性 :提供者可以保证所部署的功能可用并且其服务具有弹性。 这样用户就不必担心可伸缩性问题。

高可用性:通过无服务器计算,“服务器”本身会自动部署在多个可用性区域中,因此它们始终可用于来自全球的请求。

快速开发和部署:采用无服务器计算解决方案(例如AWS LambdaAzure Functions)可以大大降低开发成本。 您可以摆脱购买基础结构,进行设置,容量规划,部署环境设置以及维护基础结构等任务的麻烦。 开发人员只需要专注于业务需求即可开发和交付。

敏捷友好:FaaS系统使开发人员可以专注于代码,并通过构建、测试和发布的敏捷周期来丰富其产品功能。

最后,尽管无服务器具有许多优点,但也有一些缺点,如下所述。

冷启动:在无服务器计算的世界中,功能在需要时运行,在不需要时被丢弃。 必要时,将下载该功能的代码,启动一个新的容器,引导代码以开始响应事件。 这种现象称为“冷启动”。 冷启动的时间长度会导致应用程序延迟。

供应商锁定:云提供商管理一切,因此开发人员或客户端无法完全控制资源的使用和管理。 锁定可以在云提供商的API级别应用。 在无服务器代码中调用AWS Lambda或Google Functions的方式可能有所不同。 将代码与无服务器供应商的API紧密耦合可能会使将代码移动到另一个平台上更具挑战性。 还有另一个供应商锁定,我们必须仅使用该云供应商提供的服务。 例如,AWS Lambda将Kinesis用作流数据的源触发器。 想要使用另一种流技术(例如Apache Kafka)的组织不能在AWS Lambda上使用它。

单元测试和集成测试的挑战:由于分布式特性,无服务器应用程序很难测试。 在传统的开发环境中,开发人员倾向于模拟服务以执行单元测试,并控制服务以执行集成测试。 但是,对于无服务器应用程序而言,这并非易事。 因此,在无服务器应用程序设计期间投入时间和精力非常重要。

根据技术研究公司Gartner的调查,到2022年 ,无服务器技术将被10%的IT组织使用。 根据Grand View Research的观点,从长远来看,预计到2025年,无服务器的复合年增长率将达到26%(198.4亿美元)。

最近云计算原住民基金会发起CloudEvents其通过CNCF的组织无服务器工作组 。 借助CloudEvents,我们可以主要解决供应商锁定问题。 因此, “ CloudEvents” (一种用于以通用方式描述事件数据的规范)可以简化事件声明和跨服务,平台以及其他范围的交付。 在达到v1.0并转为“孵化”时,该规范定义了促进互操作性的事件的通用属性,以及如何通过一些流行的协议将这些属性从生产者传输到消费者。 它还创建了一个稳定的基础,社区可以在此基础上构建更好的工具来开发,运行和操作无服务器和事件驱动的体系结构。 越来越多的行业利益相关者(包括AWS,Google,Microsoft,IBM,SAP,Red Hat,VMware等)为该项目做出了积极的贡献,从而使CNCF成为了全球领先技术公司无服务器协作之家。 ”

在接下来的文章中,我们将看到一些无服务器示例。 直到那时, 快乐学习!!!

翻译自: https://www.javacodegeeks.com/2020/01/are-you-ready-to-adopt-serverless-computing.html

你可能感兴趣的:(无服务器架构:使用 FaaS 的优势 和缺点有哪些)