Architecture 我应该如何组织我的micro服务,以便通过CloudFormation实现独立部署
我正在尝试开发一个由多个组件组成的应用程序,我希望能够独立部署这些组件 每个组件可能包含打包到部署到ECS的Docker容器中的部件,或者仅包含Lambda函数。将有一些共享基础设施,例如VPC/子网/ALB/数据库等 我只是想知道我该怎么办。看起来最简单的方法是我用一个大型SAM/Cloudformation模板将所有内容放入1个回购协议中,但这似乎不可扩展 我在想:Architecture 我应该如何组织我的micro服务,以便通过CloudFormation实现独立部署,architecture,amazon-cloudformation,Architecture,Amazon Cloudformation,我正在尝试开发一个由多个组件组成的应用程序,我希望能够独立部署这些组件 每个组件可能包含打包到部署到ECS的Docker容器中的部件,或者仅包含Lambda函数。将有一些共享基础设施,例如VPC/子网/ALB/数据库等 我只是想知道我该怎么办。看起来最简单的方法是我用一个大型SAM/Cloudformation模板将所有内容放入1个回购协议中,但这似乎不可扩展 我在想: 1个基本堆栈定义API网关、ALB、ECS群集、子网和安全组 然后,每个应用程序将定义自己的ECR/ECS任务/服务以连接到
- 1个基本堆栈定义API网关、ALB、ECS群集、子网和安全组
- 然后,每个应用程序将定义自己的ECR/ECS任务/服务以连接到ECS群集,并定义自己的ALB目标组。或者如果其lambda函数将自身配置为与API网关连接李>
推荐的解决方法是什么 我在工作中也有同样的结构。基本上,我们在java和golang中混合了大量的微服务应用程序。每个服务都应该有自己的infra堆栈(例如ALB、API网关配置、任务fargate、dynamodb表等) 但是,所有服务只共享相同的VPC和ECS集群。这些资源是作为平台资源调配的一部分创建的。展望未来,它们不太可能改变或经常改变。此外,微服务代码+infra可以频繁更新,因为它位于不同的云信息堆栈中。值得注意的一点是,我们正在使用git通用模块来避免跨微服务的基础设施重复,例如ALB、蓝绿部署等在微服务中或多或少是相同的 希望能有帮助