Serverless平台允许运行应用程序,包括计算、存储和网络——无需启动和管理单个(虚拟)机器。本文主要介绍AWS上的Serverless架构,包括Lambda、API Gateway、DynamoDB、S3等。Serverless架构模式也可以转移到其他云平台实施。
能够专注于软件开发而不是操作一组服务器是Serverless的主要驱动力。或者正如Amazon.com首席技术官Werner Vogels所说:“没有服务器比不管理服务器更容易管理。”Serverless基础设施的另一个重要方面是细粒度的计费和极高的可扩展性。为了给你一个典型用例的印象,这里列举了一些Serverless应用程序:
在高可用性和高可扩展性的基础设施上执行源代码的能力是每个Serverless平台的核心。例如,AWS Lambda允许运行源代码以响应事件。AWS提供了计算基础设施和针对JavaScript(Node.js)、Java、Python或.NET Core(C#)等编程语言的运行时环境。典型的Serverless应用程序由多个函数组成。在AWS Lambda上,每个函数执行的超时时间为5分钟。但可以通过高度并行的方式执行相同或不同的函数。
遵循Serverless方法时,需要将应用程序划分为多个小功能。利用微服务架构可以帮助实现这个功能划分的目标。Serverless最适合事件驱动的架构。当编排多个Serverless函数来构建一个系统时,事件是触发Serverless函数的源。
基于以下事件可以触发一个AWS Lambda的函数: