Amazon web services 如何在具有微服务架构的无服务器项目中使用codestar?

Amazon web services 如何在具有微服务架构的无服务器项目中使用codestar?,amazon-web-services,aws-lambda,aws-serverless,aws-codestar,Amazon Web Services,Aws Lambda,Aws Serverless,Aws Codestar,我对AWS无服务器体系结构是全新的 我试图生成项目体系结构,并阅读了AWS codestar的相关内容,以及如何使用Python为AWS Lambda使用模板轻松创建新项目(这是我的案例) 但我不知道我是否应该: 使用AWS codestar生成一个项目(主项目),然后 我为我拥有的每个微服务创建单独的文件夹 (用户服务、联系人服务等) 或 每个微服务都可以通过AWS Codestar生成,因此 服务是我的lambdas的一个单独的codestar项目吗 也许这对你们中的一些人来说是一个

我对AWS无服务器体系结构是全新的

我试图生成项目体系结构,并阅读了AWS codestar的相关内容,以及如何使用Python为AWS Lambda使用模板轻松创建新项目(这是我的案例)

但我不知道我是否应该:

  • 使用AWS codestar生成一个项目(主项目),然后 我为我拥有的每个微服务创建单独的文件夹 (用户服务、联系人服务等)

  • 每个微服务都可以通过AWS Codestar生成,因此 服务是我的lambdas的一个单独的codestar项目吗
也许这对你们中的一些人来说是一个非常愚蠢的问题,欢迎提供任何帮助或有用的链接


谢谢

这通常是您关于如何部署的决定,尽管我觉得总体共识将是选项2。我会尽力解释原因

选项1就是你所说的“巨石”,这意味着你的应用程序的所有东西都在一个地方。这在一开始看起来可能很好,但有一些限制,我在下面详细介绍:

  • 全有或全无部署,如果你更新了应用程序的一小部分,你需要在任何地方部署
  • 导致不相关组件之间的耦合,通常设计模式会导致重叠更改,从而导致堆栈的其他部分发生中断更改
  • 更难扩展的是,您通常会扩展更大的块(即,不是单独搜索和预订,而是将所有内容都放在一起)
你可以缓解这些问题,但这可能有点令人头痛

第二种选择更倾向于微服务/解耦架构

这种方法的一些好处是:

  • 仅部署您所做的更改,如果搜索服务更改,则仅部署该更改
  • 更易于扩展基础架构以满足特定需求
  • 能够更轻松地实施组件的功能测试
  • 限制开发特定组件的用户访问

选项2是您基于微服务的存储库设置,因此我建议使用此选项。

我没有足够的声誉发表评论,因此我会将此作为答案发布

您要问的是软件体系结构问题,以及是否使用monorepopolyrepo。你已经做出了关于微服务的决定,所以这不是一个整体

答案是。。。。视情况而定。没有达成普遍共识。只需搜索monorepo与polyrepo(或multirepo),并准备好进入兔子洞

作为一个无服务器应用程序,应该与您所决定的结构类型无关。然而,CodeStar可能有一些限制,使得使用monorepo更加困难。我用CDK来做这个

以下是几篇文章,让您开始学习:

下面是另一个与无服务器应用程序直接相关的示例:


非常感谢@Chris给出了这个经过充分解释和论证的答案!这对我帮助很大!没问题,很高兴我能帮忙:)