【问题标题】:How should I organise my micro-services for to enable independent deployment via CloudFormation我应该如何组织我的微服务以通过 CloudFormation 实现独立部署
【发布时间】:2018-08-06 19:46:46
【问题描述】:

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

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

我只是想知道我该如何管理这个。看起来最简单的是我将所有内容放入 1 个带有 1 个大型 SAM/Cloudformation 模板的 repo 中,但这似乎不可扩展。

我想拥有:

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

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

推荐的解决方法是什么?

【问题讨论】:

    标签: architecture amazon-cloudformation


    【解决方案1】:

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

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

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2017-08-14
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多