将配置和基础版本的映射与应用程序代码版本相对应

将配置和基础版本的映射与应用程序代码版本相对应

我有一个应用程序,其结构如下服务 A - 应用程序和环境配置、基础设施依赖关系(队列、数据库等)等。服务 B - 应用程序和环境配置

按照建议回应这里我的应用程序可以在(答案 1)Git(SCM)中构建。

-Service A
    src
    config
    infra
--Service B 
    src
    config
    infra

或答案 2:

--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 文件,不同的环境会有所不同。

如果是,那么如何维护这 3 个版本的版本控制。例如

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 - 由于我没有足够的积分,因此我无法对原始问题发表评论和提问,因此将其作为单独的问题提出。

相关内容