1. Definisi Infrastructure as Code adalah pendekatan mengelola dan mengkonfigurasi infrastruktur menggunakan kode dan file definisi, bukan proses manual melalui GUI atau perintah langsung di server.Dengan IaC, semua komponen seperti server, jaringan, storage, dan konfigurasi dapat dideklarasikan dalam script dan dijalankan untuk membangun atau memodifikasi infrastruktur.

  2. Tujuan Otomatisasi: menghilangkan setup manual yang memakan waktu. Konsistensi: environment dev, staging, dan production memiliki konfigurasi yang sama. Versioning: konfigurasi disimpan di repository Git sehingga bisa dilacak dan di-rollback. Skalabilitas: mempermudah provisioning banyak resource sekaligus.

  3. Cara Kerja IaC bekerja dengan prinsip mendefinisikan state infrastruktur dalam kode, lalu tool IaC akan membaca kode tersebut dan:

Ada dua pendekatan utama:

Contoh: Terraform, AWS CloudFormation.

Contoh: Ansible (untuk sebagian fungsinya), Bash scripts.

  1. Keuntungan Cepat & konsisten → satu file bisa membangun banyak environment dengan identik. Versi & audit → setiap perubahan terekam di Git. Kolaborasi → sama seperti coding aplikasi, bisa pakai pull request dan code review. Disaster recovery → rebuild environment dengan cepat dari kode.

  2. Tools Populer Terraform (HashiCorp) → multi-cloud, declarative. AWS CloudFormation → declarative khusus AWS. Pulumi → declarative tapi pakai bahasa pemrograman umum (JavaScript, Python, Go, C#). Ansible → configuration management + provisioning, lebih procedural. Chef / Puppet → automation & configuration management.

  3. Tantangan Learning curve → butuh waktu memahami syntax & workflow tools. State management → terutama di Terraform, state file harus dikelola aman. Drift → perbedaan antara konfigurasi di kode dan infrastruktur aktual.

  4. Hubungan ke Practice Setelah memahami konsep ini, di bagian Practice kita bisa membuat: Terraform Project untuk membuat EC2 + VPC di AWS. Ansible Playbook untuk konfigurasi otomatis server. Pulumi Project untuk membuat cluster Kubernetes.

Study Case:

AWS Terraform Demo

Terraform Virtualbox (Vagrant)

Ansible Virtualbox

Praktik & topik terkait:

Terraform

Ansible