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

How to use codestar in a serverless project having a microservice architecture?

我对 AWS Serverless 架构完全陌生。

我试图生成项目架构,我阅读了 AWS codestar 以及它如何使用 Python(我的情况)使用 AWS Lambda 模板轻松创建新项目

但我不知道是否应该:

对于你们中的某些人来说,这可能是一个非常愚蠢的问题,欢迎提供任何帮助或有用的链接。

谢谢

这通常是您对部署方式的决定,尽管我认为普遍的共识是选项 2。我将尝试解释原因。

选项 1 就是您所说的 Monolith,这意味着您的应用程序的所有内容都集中在一个地方。这可能最初看起来不错,但有一些限制,我在下面详细说明:

  • 全有或全无部署,如果您更新应用程序的一小部分,则需要在所有地方部署。
  • 导致不相关组件之间的耦合,通常设计模式会导致重叠更改,从而导致堆栈其他部分发生重大更改。
  • 扩展难度较大,您通常会扩展较大的块(即,不是独立搜索和预订,而是将所有内容放在一起)。

您可以缓解这些问题,但这可能有点令人头疼。

第二个选项更倾向于Microservice/Decoupled架构

这种方法的一些好处是:

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

选项 2 是基于微服务的存储库设置,所以我建议使用它。

我没有足够的声誉来发表评论,所以我将 post 作为答案。

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

答案是……这取决于。没有普遍的共识。只需在 monorepo 与 polyrepo(或 multirepo)上进行搜索,并准备好进入兔子洞。

作为无服务器应用程序应该与您决定的结构类型无关。但是,CodeStar 可能有一些限制,这使得使用 monorepo 变得更加困难。我正在为此使用 CDK。

这里有几篇文章可以帮助您入门:

https://medium.com/@mattklein123/monorepos-please-dont-e9a279be011b

https://medium.com/@adamhjk/monorepo-please-do-3657e08a4b70

这是另一个与无服务器应用程序直接相关的内容:

https://lumigo.io/blog/mono-repo-vs-one-per-service/