Menjawab pertanyaan-pertanyaan yang saya terima setelah publikasi ini , hari ini saya ingin menyelesaikan perselisihan tanpa akhir tentang struktur repositori, serta menyentuh beberapa masalah dan solusinya. Saya akan menggunakan IaC berbasis Terraform saya di sini, tetapi sebagian besar akan berlaku juga untuk teknologi lain.

Jika menyangkut repositori infrastruktur, ada dua opsi yang sudah mapan:
- Monorepo. Satu repositori untuk mengelola semuanya. Berisi semua IaC, modul, dan otomatisasi tambahan Anda;
- Repositori "berdiri sendiri" yang terdistribusi. Berisi komponen yang diperlukan untuk solusi yang Anda berikan. Mereka dapat menautkan ke repositori lain untuk komponen yang dapat digunakan kembali atau data variabel.
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 . , , .

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