Terraform adalah alat IaC (infrastruktur sebagai kode) open source yang menyediakan alur kerja yang konsisten di CLI untuk mengelola ratusan layanan cloud. Terraform mengonversi API awan menjadi file konfigurasi deklaratif.
Kami biasanya menerapkan infrastruktur di beberapa lingkungan, yang kami gunakan untuk pengembangan, pementasan, pengujian, dan produksi. Sangat penting untuk menulis konfigurasi Terraform yang mudah dipelihara dan diskalakan untuk menyediakan infrastruktur di lingkungan yang ditentukan.

Pada artikel ini, kami akan mempertimbangkan beberapa cara untuk mempersiapkan infrastruktur di lingkungan yang berbeda. Masing-masing memiliki kelebihan dan kekurangan.
pengantar
. . â . Terraform .
Terraform â IaC, , .
.
â 1
terraform.tfvars. , .
. , . outputs.tf, providers.tf, variables.tf . . terraform : init, plan, apply
.
( 1)
:
- ,
- .
:
- ;
- , .
â 2
, terraform.tfvars. , .
main.tf variables.tf , terraform . , , :
// Dev Environment terraform plan --var-file="tfvars/environment/dev.tfvars" // QA Environment terraform plan --var-file="tfvars/environment/qa.tfvars" // Prod Environment terraform plan --var-file="tfvars/environment/prod.tfvars"
( 2)
:
- ;
- , .
:
- ;
- , .
Terraform default. , , , . , , default.
terraform workspace
. . , terraform workspace new
.
â , . Terraform â root-. Root- , .tf .
, . , . , .
. , .
Terragrunt
Terragrunt â , DRY , Terraform .
- Terraform â - IaC, CLI .
- , , , .
- Terraform.
- â . .
- Terraform default. , , , .
- â , . , .
- Terragrunt â , DRY , Terraform .
, Terraform. . .