我正在尝试开发一个由多个组件组成的应用程序,这些组件我希望能够独立部署。
每个组件可能包含打包到部署到ECS中的Docker容器中的部件,或者仅包含Lambda函数。将会有一些共享的基础,例如。 VPC /子网/ ALB /数据库等
我只是想知道我该如何处理。似乎最简单的方法是,我使用1个大型SAM / Cloudformation模板将所有内容放入1个存储库中,但似乎无法扩展。
我当时想拥有:
但是开始发现这非常具有挑战性。我认为,当我部署1部分时,会在这种设置中从其他服务中删除API吗?
推荐的解决方法是什么?
答案 0 :(得分:1)
我的工作结构相同。基本上,我们将一堆微服务应用程序混合在java和golang中。每个服务应具有其自己的基础架构(例如ALB,API网关配置,任务Fargate,Dynamodb表等)。
但是,所有服务仅共享相同的 VPC 和 ECS集群。这些资源是平台置备的一部分。展望未来,它们不太可能会更改或经常更改。此外,由于微服务代码和基础结构位于不同的cloudformation堆栈中,因此可以经常进行更新。值得注意的一点是,我们拥有git通用模块来避免跨微服务的基础设施复制,例如微服务之间的ALB,蓝绿色部署等大致相同。
希望有帮助。