📜  无服务器计算和 FaaS 模型——云计算的下一阶段

📅  最后修改于: 2021-10-22 04:18:32             🧑  作者: Mango

通过听到无服务器计算这个词,我们大多数人可能会误解我们正在进入一个新的计算时代,我们不需要服务器来运行应用程序。尽管该术语用词不当,但无服务器计算描绘了云成熟的新阶段。此功能专为那些热衷于了解下一级别云计算的开发人员而设计。让我们深入研究以下部分。

无服务器计算和 FaaS 模型——云计算的下一阶段

  • 无服务器计算
  • FaaS模型
  • 无服务器计算的优势和局限性
  • AWS 无服务器平台

无服务器计算

无服务器计算是一种云计算执行模型,可以灵活地开发、部署和运行应用程序,而无需担心配置服务器。它帮助开发人员专注于他们的核心产品,而不是花费时间来配置、扩展和管理服务器。

这种云计算执行模型并没有消除对服务器的需求。但它提供了一个完整的基础设施,需要通过在云基础设施之上添加一个抽象层来运行您的应用程序。一些提供无服务器框架的云服务提供商包括 AWS、Microsoft Azure 和 Google Cloud Platform (GCP)。

无服务器计算的特点

  • 无服务器计算允许您在不管理服务器的情况下运行代码,并且功能基于事件执行而不是一直运行。
  • 无论使用何种语言或框架,您都可以运行任何类型的应用程序。
  • 它有助于根据请求自动缩放函数。您无需进行任何进一步的配置。
  • 这些功能可以由不同的事件类型以及使用 API 网关触发。
  • FaaS模型

理解无服务器计算的最佳方式是解释 FaaS 模型。我们大多数人都熟悉术语 SaaS、IaaS 和 PaaS。在进入 FaaS 之前,让我们先看看这些术语。

软件即服务 (SaaS)是一种云计算服务,其中软件集中托管,该服务基于订阅通过互联网交付。 SaaS 的一些示例是 Google Apps、Dropbox、WebEx 等。

基础设施即服务 (IaaS)提供基础设施资源,并管理和扩展资源。在这里,您只需为使用的内容付费。 IaaS 的一些示例是 AWS EC2、Azure 虚拟机等。

平台即服务 (PaaS)提供应用程序开发所需的软件和基础设施。 AWS Beanstalk、Azur 应用程序服务就是其中的一些例子。

那么,让我们进入 FaaS 模型。它是一种函数即服务模型,允许开发人员开发、运行和管理应用程序,而无需担心应用程序基础设施。它基于称为函数的单一用途代码块的概念。在这里,模型使用事件驱动的架构来处理这些函数,其中每个函数通过触发事件来执行——例如 API 请求、数据库中的事件、计划事件等。并且,无服务器应用程序是通过组合多个功能(FaaS)。

与 FaaS 模型相关的另一点要考虑的是它是无状态的。由于 FaaS 模型中的函数在临时容器中运行,因此您将无法访问先前运行的状态。但是,您可以使用 Amazon S3 等外部源来存储和检索数据实例。这些数据可以在函数内共享。

如果不仔细看,你可能会觉得 PaaS 和 FaaS 几乎是相似的。但是详细的分析将帮助您区分 PaaS 和 FaaS。让我们花点时间了解一下它们之间的区别。

  • 尽管 Paas 可以轻松部署和管理 Web 应用程序,但它并不能灵活地针对每个请求启动和关闭整个应用程序。另一方面,FaaS 提供了做同样事情的灵活性。
  • 在 PaaS 基础设施中,您必须依赖其他基于 PaaS 的解决方案(例如 AWS Elastic Beanstalk)来处理应用程序扩展。但是这些解决方案不够灵活,无法处理单个请求,而 FaaS 基础架构提供了处理应用程序扩展的有效方法。

无服务器计算的优势和局限性

到目前为止,我们已经讨论了无服务器计算和 FaaS 模型。现在,让我们看看无服务器计算的优势和局限性。

无服务器计算的优势

无服务器计算提供了许多好处。让我们来看看其中的几个。

  1. 降低运营成本:在 FaaS 中,预定义的运行时(基础设施仅使用一段时间)和共享相同的运行时有助于显着降低运营成本。
  2. 快速开发:由于基础设施由云提供商管理,开发人员可以专注于核心功能。
  3. 扩展成本:它有助于自动水平扩展,并负责扩展和缩减基础设施。与 PaaS 产品相比,此产品显着降低了扩展成本。
  4. 更轻松的运营管理:FaaS 提供了最简单的应用程序部署和管理解决方案。最重要的是,您可以在短时间内将您的经营理念变为现实。

无服务器计算的局限性

尽管无服务器计算有很多好处,但也有一定的局限性。让我们来看看以下几点。

  1. 基础设施控制:由于无服务器架构由云提供商监控,因此您无法控制基础设施。
  2. 长时间运行的应用程序:由于其预定义的运行时功能,它不适用于长时间运行的批处理操作,其中大多数云提供商都有超时期限。
  3. 供应商锁定:主要限制之一是供应商锁定,您无法从现有云提供商切换到另一个云提供商。
  4. 冷启动:由于 FaaS 是事件驱动的架构,因此引发了对冷启动的关注。在一段时间不作为之后,响应事件可能需要更长的时间。
  5. 共享基础设施:由于无服务器应用程序使用共享基础设施,许多应用程序可以同时运行,而不管业务所有权如何。因此,您的代码可能会受到相邻应用程序的高负载生成函数的影响。但是这个问题不仅存在于无服务器产品中,也存在于许多其他共享服务产品中。

AWS 无服务器平台

AWS 提供了一个完全托管的无服务器平台来部署和运行您的应用程序。让我们来看看 AWS 无服务器平台提供的服务。

计算 AWS 提供诸如 AWS Lambda 之类的服务来运行代码而无需配置或管理服务器,Lambda@Edge 来响应 Amazon CloudFront 事件生成的事件,AWS Fargate 为容器提供无服务器计算引擎。

存储 AWS 提供 Amazon Simple Storage Service (Amazon S3) 来确保安全、持久、高度可扩展的对象存储,而 Amazon Elastic File System (Amazon EFS) 提供简单、可扩展、弹性的文件存储。

数据存储 Amazon DynamoDB 提供 NoSQL 数据库服务,Amazon Aurora Serverless(适用于 Amazon Aurora)允许自动启动、关闭数据库以及扩大或缩小容量。 AWS 还使用 Amazon RDS 代理提供数据库代理服务。

API 代理 Amazon API Gateway 服务可帮助开发人员创建、发布、维护和保护任何规模的 API。在这里,它允许您通过有效处理流量来处理数十万个并发 API 调用。

应用程序集成它促进了诸如 Amazon SNS(发布或子消息传递服务)、Amazon SQS(消息队列服务)、AWS AppSync(以安全地访问、操作和组合数据)和 Amazon EventBridge(从不同源到您的 AWS 环境)。

编排: AWS Step Functions 编排分布式应用程序和微服务的组件。

分析 AWS 提供 Amazon Kinesis(用于 AWS 上的流式数据)和 Amazon Athena(用于分析数据的交互式查询服务)等服务来处理数据分析。

除了上述服务,它还为无服务器应用程序开发过程提供了广泛的工具。这些工具包括持续集成和测试工具、部署、监控和诊断工具、框架和 IDE 插件。

概括

无服务器计算提供了显着的优势,例如快速开发、无服务器部署、更低的运营成本和更轻松的运营管理。然而,这并不意味着没有操作。事实上,您不需要系统管理员来管理基础设施,但您应该监控某些操作以确保您的应用程序正在运行。不过不用担心,FaaS 本身提供监控数据服务,帮助您监控您的应用程序。最后要注意的一点是,这可能不是应对每项挑战的正确方法,因此请聪明地做出明智的选择。准备好利用无服务器技术,专注于编码过程而不是配置服务器。