我有一个应用程序,它具有以下结构服务A -应用程序和环境配置,基础设施依赖关系(队列,DB等)等。服务B -应用程序和环境配置
按照response here中的建议,我的应用程序可以在Git(SCM)中构建(答案1)。
-Service A
src
config
infra
--Service B
src
config
infra
or
字符串
答案二:
--Service A
src
--Service B
src
-Config (here there are configuration common to services/crosscutting + service specific)
common.yml
--service A
application.test.yml
:
--service B
application.dev.yml
-Infra
env
型
从多个帖子来看,普遍的共识似乎是从主存储库中分离出代码和配置。我的意思是说,现在的.env文件对于不同的env是不同的。
如果是这样,那么如何维护3.ie示例的版本控制
Version 2.0.0
App code - src depends on AWS SQS queue
Config code - .env for App code 2.0.0 that has SQS specific params also
Infra code - Cloud formation (general + SQS)
Version 3.0.0
App code - src depends on Kafka
Config code - .env for App code 3.0.0 that has Kafka specific params
Infra code - cf templates (general + Kafka )
型
我们怎样才能使AppCode 3.0.0与相应的配置和IAC一起使用呢?对于monorepo概念,我们的问题是不同的团队做基础设施,并拥有自己的流程。
- PS -我不能评论和问原来的问题,因为我没有足够的点,因此一个单独的问题。
1条答案
按热度按时间vh0rcniy1#
我对此案的建议是:
从主分支为每个服务创建一个分支:
开发团队A
字符串
将更改提交到service-a分支
型
创建标签Version 2.0.0
型
将标签推送到远程仓库
型
开发团队A
对服务B执行相同操作
型
将更改提交到service-b分支
型
创建标签Version 3.0.0
型
将标签推送到远程仓库
型
其主要思想是为每个服务创建一个分支。此外,您可以创建一个通用的基础架构文件夹,并在版本控制存储库中创建策略,以授予特定的用户权限,从而避免开发团队根据该团队在Terraform上的经验进行更改。