几种主流的Serverless开发框架(以AWS Lambda为例)

1,222 阅读4分钟

目前,Serverless计算(也称无服务器计算)是全球云服务商所主推的一种比较新的计算理念。相比传统的虚拟机或者容器计算,Serverless计算有高弹性,低成本,免运维等众多优点,逐渐的得到了用户广泛的使用。其中以AWS Lambda占据最大的市场份额并且拥有最好的生态,我们在开发Serverless架构的云端服务的时候,往往会遇到框架选型的困扰,这里我以AWS Lamdba为主,介绍几种最流行的Serverless框架。

以下是几种最流行的框架表格,大家可以按照自己的实际需求选择:

名称文档github 地址支持的主要语言
AWS SAMAWS SAM Docgithub aws serverless-application-model 截止2023/07获得9.1k starAWS Lambda支持的全部的语言均可,最推荐Python/Nodejs
AWS ChaliceAWS Chalice Docgithub aws chalice 截止2023/07获得9.9k star目前专为Python而生
serverlessserverless Docgithub serverless 截止2023/07获得45k starAWS Lambda支持的全部的语言均可,最推荐Python/Nodejs
SSTsst Docgithub serverless-stack 截止2023/07获得17k star主要是Nodejs(JavaScript/TypeScript)

还有其他的一些Serverless组件,可以参考CNCF Serverless Landscape.

在选型时,我们需要综合考虑云服务商,框架的流行程度,框架的上手难度,开发团队的技术栈等多个指标。在流行程度上讲上述的四种框架都稳定开发了多年,Github Star都很多,不存在维护不及时或停止维护的问题。其中AWS SAMAWS Chalice是AWS自研的专有的框架,在AWS Lambda新技术的适配速度上是最快的,但是只适配AWS;serverlessSST是第三方开发的开源框架,在易用性和个性化开发上会有一定优势,并且它们2个都支持除AWS Lambda外的其他云,基本没有厂商绑定问题(主要是AWS,其他云Serverless起步晚,支持一般);从开发团队的技术栈角度看,AWS Chalice专为Python而生、SST基本以Nodejs为主,AWS SAMserverless基本任何语言都可以。

在Serverless计算领域,AWS Lambda(2014年推出)是最先推出的Serverless计算平台并且占据了绝大的多数的细分市场份额,目前Serverless理念在AWS上得到了全面的发展,不但是AWS Lambda和其他托管/自建服务的生态建设上还是开发者生态上都领先其他云服务商。此外数据库,大数据平台等托管产品也基本完成了Serverless的覆盖,比如Aurora Serverless V2是100%兼容MySQL的全弹性、计算-存储分离的关系型云原生关系型数据库,OpenSearch Serverlss是兼容ElasticSearch的云原生搜索引擎等。此外国外的几大云服务商的客户均有超过一半的客户使用了Serverless相关的产品来搭建他们的云端服务。

2022-serverless-report-charts_FACT-1.png

Serverless开发模式下,语言的选择非常重要,一般就AWS Lambda计算平台而言Python3和Nodejs占据绝对的统治地位;实际上根据datadog的统计,目前客户选择最多的语言也的确如此,所以建议优先选择Python3和Nodejs。

2022-serverless-report-charts_FACT-2.png

最后附上一些第三方的文章和学习资料,希望帮助大家更好的理解Serverless

Serverless 行业报告和博客

AWS 学习网站