gpt4 book ai didi

architecture - 我应该如何组织我的微服务以通过 CloudFormation 实现独立部署

转载 作者:行者123 更新时间:2023-12-03 07:36:58 25 4
gpt4 key购买 nike

我正在尝试开发一个由多个组件组成的应用程序,我希望能够独立部署这些组件。

每个组件可能包含打包到部署到 ECS 或 Lambda 函数中的 Docker 容器中的部分。将会有一些共享的基础设施,例如。 VPC/子网/ALB/数据库等

我只是想知道如何处理这个问题。看起来最简单的方法是我将所有内容放入具有 1 个大型 SAM/Cloudformation 模板的 1 个存储库中,但这似乎不可扩展。

我正在考虑:

  • 1 个定义 API 网关、ALB、ECS 集群、子网和安全组的基础堆栈
  • 然后,每个应用程序将定义自己的 ECR/ECS 任务/服务以附加到 ECS 集群,定义自己的 ALB 目标组。或者,如果其 lambda 函数将自身配置为与 API 网关链接。

但开始发现这非常具有挑战性。我认为当我部署 1 部分时,它会从此类设置中的其他服务中删除 API?

解决这个问题的推荐方法是什么?

最佳答案

我在工作中也有同样的结构。基本上,我们有一堆混合在 java 和 golang 中的微服务应用程序。每个服务都应该有自己的基础设施堆栈(例如 ALB、API 网关配置、任务 Fargate、dynamodb 表等)。

但是,所有服务仅共享相同的VPCECS集群。这些资源是作为平台配置的一部分创建的。展望 future ,它们不太可能改变或频繁改变。此外,微服务代码+基础设施可以经常更新,因为它位于不同的云信息堆栈中。值得注意的一点是,我们拥有 git 通用模块来避免跨微服务的基础设施重复,例如ALB、蓝绿部署等在微服务中或多或少是相同的。

希望有帮助。

关于architecture - 我应该如何组织我的微服务以通过 CloudFormation 实现独立部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51630061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com