tl; dr
â€选择SST进行新的,更简单的项目,快速交付,拥有下一步的INFRA或有限的AWS专业知识。
与CDK合并或迁移现有基础架构,大型企业项目或处理复杂的基础架构时,请与CDK一起使用。
为什么
如果您想知道2023年下一个AWS项目的无服务器框架,那么您在正确的位置。
无论您是从头开始还是从事复杂的企业基础架构,此比较都深入探讨了顶级竞争者的优点,缺点和最佳用例。
坚持下去,让我们确保您的下一个选择是知情的一个ð§。
竞争者ð¥
这是我们的三个竞争者
1 -Serverless + AWS CDK + Lift:通过Lift的静态前端构造和CDK的强大的Infra定义来扩大传统无服务器框架的集成。
2 -AWS CDK:AWS的本地工具包,为AWS资源提供高级,类型的方法。
3 -SST:一个打字稿第一个框架简化了AWS上的无服务器应用程序,从调试到部署。
现在,让我们直接深入研究框架之间的数据驱动对峙。看看他们如何在关键标准上相互堆叠。 ð¥
比较表ð
标准 | 描述 | 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 | config文件ðâlambda配置是冗长的。 Lambda触发器无抽象,需要手动定义它们。 | 内联和详细的lambda配置都可以使用。触发API网关的触发定义,EventBus,SQS |
其他资源定义 | 易于定义资源,例如S3,DynamoDB,EventBridge,SQ | ð´引用无服务器配置资源是硬性CDK /无服务器堆栈是分离的< / td> | ||
框架灵活性 | 扩展框架的功能以适合您的需求 | 插件可能可能 | 低级框架,您可以做自己喜欢的事 | ð仍然是一项正在进行的工作,退回到完整CDK(丢失其他功能) |
静态前端部署 | 现有的解决方案以部署静态网站 | 升降 | ð需要重建或使用不流行的结构 | sst | 中的静态石
next.js应用程序部署 | 现有的部署NextJS服务器的解决方案 | ðAmplify插件无服务器nextjs未维护 | ð放大ð´cdk-nextjs(不妥善维护) | sst | 中的nexjssite
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