功能即服务
函数即服务 (FaaS) 是一种云端计算服务的类型,意即提供了一个平台,允许客户在无需考虑到构建和维护通常与开发和启动应用程序相关的基础设施的复杂性的情况下,开发、执行和管理应用程序的功能。[1]遵循此模型构建应用程序是一种“无服务器(Serverless)”架构的实作方式,通常在构建微服务应用程序时使用。
FaaS 最初由于大约 2010 年左右的各种新创公司提供,例如 PiCloud。[2]
AWS Lambda[3] 是大型公有云需供应商提供的第一个 FaaS 服务,接下来是 Google Cloud Functions, Microsoft Azure Functions, IBM/Apache's OpenWhisk (open source) 于2016 推出 FaaS 服务,然后Oracle Cloud Fn 在2017年推出 FaaS 服务。
使用案例
[编辑]FaaS 的使用案例与“按需”功能相关,能让支援的基础设施能够关闭电源并且在不使用时不会产生费用。 例如包括资料处理(例如,批次处理、串流处理、提取-转换-载入 (ETL))、用于连网设备的物联网 (IoT) 服务、移动应用程序和 Web 应用程序。[4] 另一个真实的使用案例是为已构建完成的应用程序建立 API,而无需分解或修改应用程序的目前或现有的功能。
与 PaaS 应用程序托管服务的比较
[编辑]平台即服务(PaaS) 应用程序托管服务类似于 FaaS,因为这种服务也对开发者隐藏“服务器”。 但是,此类托管服务通常总是至少会执行一个服务器进程来接收外部请求。扩充是通过启动更多服务器进程来实作的,开发者通常会为此付费。因此,可伸缩性对开发者而言仍然有能见度。[5]
相对之下,FaaS 不需要任何服务器进程不断运作。 虽然初次请求的处理时间可能比应用程序托管平台的处理时间更长(最多几秒钟)[6], 暂存可以让后续请求在几毫秒内就能处理。 作为开发者只需为功能执行时间付费(没有进程闲置时间),因此可以以更高的可扩充性实现更低的成本(以延迟为代价)。
参见
[编辑]参考文献
[编辑]- ^ Fowler, Martin. Serverless Architectures. 4 August 2016 [26 January 2018]. (原始内容存档于2016-06-18).
- ^ PiCloud Launches Serverless Computing Platform To The Public.
- ^ Release: AWS Lambda on 2014-11-13. Amazon Web Service. [26 February 2017].
- ^ AWS Lambda – Serverless Compute - Amazon Web Services. Amazon Web Services, Inc. [2018-05-04] (美国英语).
- ^ Avram, Abel. FaaS, PaaS, and the Benefits of the Serverless Architecture. InfoQ. 25 June 2016.
- ^ Dealing with cold starts in AWS Lambda. [2023-04-12]. (原始内容存档于2023-04-17).