ð¥2023年的最佳无服务器框架:AWS项目的数据驱动摊牌
#aws #javascript #网络开发人员 #serverless

tl; dr

â€选择SST进行新的,更简单的项目,快速交付,拥有下一步的INFRA或有限的AWS专业知识。
与CDK合并或迁移现有基础架构,大型企业项目或处理复杂的基础架构时,请与CDK一起使用。

为什么

如果您想知道2023年下一个AWS项目的无服务器框架,那么您在正确的位置。

无论您是从头开始还是从事复杂的企业基础架构,此比较都深入探讨了顶级竞争者的优点,缺点和最佳用例。

坚持下去,让我们确保您的下一个选择是知情的一个ð§。

竞争者ð¥

这是我们的三个竞争者

1 -Serverless + AWS CDK + Lift:通过Lift的静态前端构造和CDK的强大的Infra定义来扩大传统无服务器框架的集成。

ð€有一个here to understand how the three are bridged together

2 -AWS CDK:AWS的本地工具包,为AWS资源提供高级,类型的方法。

3 -SST:一个打字稿第一个框架简化了AWS上的无服务器应用程序,从调试到部署。

现在,让我们直接深入研究框架之间的数据驱动对峙。看看他们如何在关键标准上相互堆叠。 ð¥

比较表ð

非常慢 config文件中的静态石 中的nexjssite
标准 描述 1ï¶无服务器框架 + CDK 2ﶣaws cdk 3ï¶sst
星 /下载< / td> 45k - -12m下载/周 10K -1.6m下载/周 17k -35k下载/周
释放频率 1 /月< / td> 7 /月< / td> 36 /月< / td>
易于贡献 代码库的复杂性和可访问性,与维护者的通信 “ JS代码库复杂代码库” 很难在本地开发 ð易于与团队(Discord)Codebase Typescript +可访问的PRS合并
IAC类型安全 所有资源的打字稿定义 “基础是yaml,但是用@serverless/typeScript的打字稿支持。无服务器框架资源不是本地键入的。” 完全键入 完全键入
lambda定义 易于定义lambda资源及其触发器 ``lambda触发器 + cron ðâlambda配置是冗长的。 Lambda触发器无抽象,需要手动定义它们。 内联和详细的lambda配置都可以使用。触发API网关的触发定义,EventBus,SQS
其他资源定义 易于定义资源,例如S3,DynamoDB,EventBridge,SQ ð´引用无服务器配置资源是硬性CDK /无服务器堆栈是分离的< / td>
框架灵活性 扩展框架的功能以适合您的需求 插件可能可能 低级框架,您可以做自己喜欢的事 ð仍然是一项正在进行的工作,退回到完整CDK(丢失其他功能)
静态前端部署 现有的解决方案以部署静态网站 升降 ð需要重建或使用不流行的结构 sst
next.js应用程序部署 现有的部署NextJS服务器的解决方案 ðAmplify插件无服务器nextjs未维护 ð放大ð´cdk-nextjs(不妥善维护) sst
devx / debugging lambdas < / td> 易于调试lambda executions ð 实时调试
调试部署 在部署期间的调试易失败 ðSST添加了一层责任
AWS功能完整性 支持的功能 ð几乎没有版本,很少有实施新功能的贡献者 ðâ小延迟(〜1week)
多运行时部署 支持部署多个AWS lambda runtimes
多堆栈定义 能够在单个文件中定义多个堆栈 1 server.ts.ts stack
嵌套堆栈支持 支持AWS云形式嵌套堆栈
文档 框架文档的质量 ðYaml,没有现成的摘要,但仍然完全完整 ðâ ðâ

我们的建议ð¥

如果:

之一,请选择SST
  • 开始一个低到中等复杂性的新项目
  • 优先级快速交付价值
  • 实施NextJ,没有Vercel
  • 有限的AWS专业知识,需要一种更具指导性的方法

与CDK一起使用:

之一
  • 与现有基础架构集成或迁移
  • 参与与公司信息系统深入集成的大型公司项目
  • 处理复杂和详细的基础架构。

包裹ð

在SST和AWS CDK之间的决定取决于您项目的独特需求。随着无服务器景观的发展,我们的理解也随之发展。
加入讨论,将您的经验带到桌子上,请挑战我们的标准!让我们一起走向无服务器世界中更明智的决策过程。 ð7