git 对应于应用程序代码版本的config和infra的Map版本控制

pw9qyyiw  于 12个月前  发布在  Git
关注(0)|答案(1)|浏览(116)

我有一个应用程序,它具有以下结构服务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 -我不能评论和问原来的问题,因为我没有足够的点,因此一个单独的问题。
vh0rcniy

vh0rcniy1#

我对此案的建议是:
从主分支为每个服务创建一个分支:

开发团队A

git checkout -b service-a master

字符串

将更改提交到service-a分支

git commit -m "all changes"

创建标签Version 2.0.0

git tag -a v2.0.0 -m "Version 2.0.0 description"

将标签推送到远程仓库

git push origin v2.0.0

开发团队A

对服务B执行相同操作

git checkout -b service-b master

将更改提交到service-b分支

git commit -m "all changes"

创建标签Version 3.0.0

git tag -a v3.0.0 -m "Version 3.0.0 description"

将标签推送到远程仓库

git push origin v3.0.0


其主要思想是为每个服务创建一个分支。此外,您可以创建一个通用的基础架构文件夹,并在版本控制存储库中创建策略,以授予特定的用户权限,从而避免开发团队根据该团队在Terraform上的经验进行更改。

相关问题