Pros y contras de la estrategia de repositorio Infra-as-Code

Respondiendo a las preguntas que recibí después de esta publicación , hoy me gustaría resolver la interminable disputa sobre la estructura del repositorio, así como tocar algunos problemas y sus soluciones. Usaré mi IaC basado en Terraform aquí, pero en su mayor parte también se aplicará a otras tecnologías.





Cuando se trata de repositorios de infraestructura, hay dos opciones bien establecidas:



  • Monorepo. Un repositorio para gestionar todo. Contiene todo su IaC, módulos y cualquier automatización auxiliar;
  • Repositorios distribuidos "independientes". Contiene los componentes necesarios para la solución que proporciona. Pueden vincularse a otros repositorios para componentes reutilizables o datos variables.


IaC . , , . , , , , .



, , — . , .



Jaana Dogan . ( ), , . , , , . , , infra-as-code ( , , , ):



  • «» « ». , terraform VPC , . , .
  • + 1. , . « » « ».
  • . Terraform, Ansible, Puppet Kubernetes . , , , , .
  • , . Jaana, «» , . , . , . , — — , .
  • . . . , «» , , .


«» .



X vs Y, :





— , — .





, , , .



( )



git submodules terraform — , , \\, , , - , . . - — , — - .





- , — , . — , , . provider-module.tf, \. — Terragrunt .



«»



.



, « »? ! git , ? ! , , ? , , .

— . — , . — , . , - — , . , .



?



, ,



, \\ DevOps\SRE\\\\< >, , ( , , -, ...) , . , — . , ( «» , ) . , , .





git , , . , 1.0.234, — .



PR



, . , . — . , review approval , , , .





? , , , , , - ? , , .





- terraform, ELB, . , . , . : , , , .



: , , , Terraform Docs — .




, , , « ». , , , .



1: +





- , . . , , «» , .



«» , . , — . , .



, , , :



module "ecr_<repo_name>" {
   source      = "git::ssh://<repository/terraform-modules.git//ecr?ref=stable"
   environment = var.environment
   name        = "<repo_name>"
}


, , . review, , . , .



2: Monorepo «»



\\ master develop, prod non-prod . , , .





. «»-«». — . , « », . .



, , .



, — « » « », , .




All Articles