ردا على الأسئلة التي تلقيتها بعد هذا النشر ، أود اليوم أن أحل الخلاف اللامتناهي حول هيكل المستودع ، وكذلك التطرق إلى بعض المشاكل وحلولها. سأستخدم IaC القائم على Terraform هنا ، ولكن بالنسبة للجزء الأكبر ، سيتم تطبيقه على التقنيات الأخرى أيضًا.

عندما يتعلق الأمر بمستودعات البنية التحتية ، هناك خياران راسخان:
- مونوريبو. مستودع واحد لإدارة كل شيء. يحتوي على كل ما تبذلونه من IaC والوحدات النمطية وأي أتمتة إضافية ؛
- المستودعات الموزعة "المستقلة". يحتوي على المكونات المطلوبة للحل الذي تقدمه. يمكنهم الارتباط بمستودعات أخرى للمكونات التي يمكن إعادة استخدامها أو البيانات المتغيرة.
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 . , , .

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