【发布时间】:2022-01-25 20:47:15
【问题描述】:
前几天我和一位同事在头脑风暴,关于如何利用基于主干的开发(功能/ -> 主控)部署到多个 AWS 账户。
从 master 部署到多个环境的想法困扰着我们,因为如何确定部署到何时何地?
我很想看看你们中的一些人如何解决这个问题。
例如您有 1 个主分支和 3 个单独的 aws 帐户(开发、登台和产品)。
【问题讨论】:
标签: amazon-web-services terraform terragrunt
前几天我和一位同事在头脑风暴,关于如何利用基于主干的开发(功能/ -> 主控)部署到多个 AWS 账户。
从 master 部署到多个环境的想法困扰着我们,因为如何确定部署到何时何地?
我很想看看你们中的一些人如何解决这个问题。
例如您有 1 个主分支和 3 个单独的 aws 帐户(开发、登台和产品)。
【问题讨论】:
标签: amazon-web-services terraform terragrunt
我想了很多。
使用基于主干的开发流程,我们假设基础设施与基础设施即代码一致(即代码反映环境的状态),我发现最简单/最清晰的方法是为每个环境都与模块相结合。
一些模块 v1.2.0
├── datalake (a component)
│ ├── dev (a terraform working directory) (some resources, also references some-module v1.2.0
│ └── prod (a terraform working directory) (some resources, also references some-module v1.1.0)
└── networks (a component)
├── dev (a terraform working directory)
└── prod (a terraform working directory)
合并后,您应该自动应用更改。如果您担心,请实施检查以避免销毁和重新创建,但这应始终显示在您的规范计划中,作为 CI 的一部分,然后才能获得批准。
通过拥有这种模式并使用“无效的东西得到恢复”的方法。在将新实现复制到 prod 之前,您可以确保它们在 dev 中有效。
一些常见的替代观点是:
../common 目录拆分:
【讨论】: