Perlukah Infrastructure as Code untuk Tim Kecil?
Terraform, OpenTofu, dan Ansible sering dianggap alat tim besar. Ini manfaat nyata IaC untuk tim kecil, biaya belajarnya, dan cara mulai yang ringan.
Jawaban singkat
Perlu, tapi dalam porsi kecil. Bagi tim kecil, manfaat terbesar IaC adalah server yang bisa dibangun ulang dan dokumentasi yang selalu sesuai kenyataan. Mulailah dari satu playbook atau satu file konfigurasi untuk server paling penting, bukan dari arsitektur lengkap.
Daftar isi
Server utama kantor bermasalah dan harus dibuat ulang. Orang yang dulu memasangnya sudah pindah kerja, catatannya tidak ada, dan kamu menghabiskan sehari penuh menebak paket apa saja yang terpasang, versi PHP berapa, dan baris konfigurasi mana yang dulu diubah. Banyak orang yang pernah mengelola server mengenal situasi ini.
Infrastructure as Code (IaC) lahir untuk mencegah hari seperti itu. Untuk tim kecil, jawabannya bukan "wajib pakai semua alat", melainkan "tulis cara membangun server dalam bentuk file, sedikit demi sedikit". Manfaatnya terasa justru karena tim kecil tidak punya banyak orang untuk mengingat detail.
Masalah yang sebenarnya diselesaikan IaC
Inti IaC sederhana: kondisi infrastruktur ditulis dalam file teks, disimpan di Git, lalu alat tertentu menerapkan isi file itu ke server atau penyedia cloud. Server tidak lagi dirakit dengan perintah manual yang hilang begitu terminal ditutup.
Dari situ muncul tiga manfaat. Pertama, bisa dibangun ulang. Kalau server rusak atau perlu dipindah ke penyedia lain, kamu menjalankan file yang sama dan mendapat hasil yang sama. Kedua, dokumentasi yang jujur. File konfigurasi adalah catatan yang benar-benar dipakai, jadi tidak bisa ketinggalan zaman seperti dokumen Word di folder bersama. Ketiga, riwayat perubahan. Karena tersimpan di Git, kamu bisa melihat siapa mengubah apa dan kapan, lalu mengembalikannya bila ada yang salah.
Manfaat keempat sering terlupakan: lingkungan uji yang mirip produksi. Dengan file yang sama, kamu bisa membuat server staging yang setelannya identik, sehingga "di server uji jalan, di produksi error" makin jarang terjadi.
Terraform, OpenTofu, dan Ansible mengerjakan hal berbeda
Banyak orang bingung karena alat-alat ini sering disebut bersamaan. Padahal fokusnya berbeda, dan tim kecil sering cukup memakai satu saja.
| Alat | Fokus utama | Cara kerja | Cocok untuk |
|---|---|---|---|
| Terraform | Membuat dan mengubah sumber daya cloud (server, jaringan, DNS, bucket) | Deklaratif, mencatat kondisi di file state | Tim yang memakai API penyedia cloud |
| OpenTofu | Sama dengan Terraform; fork berlisensi open source MPL 2.0 yang kini menjadi proyek CNCF | Deklaratif, bahasa konfigurasi yang kompatibel | Tim yang ingin lisensi open source |
| Ansible | Mengatur isi server: paket, file konfigurasi, user, layanan | Menjalankan tugas lewat SSH, tanpa agen di server | Tim dengan beberapa VPS yang sudah ada |
| Docker Compose | Menjalankan aplikasi dalam container | File YAML berisi layanan dan volume | Aplikasi yang sudah dikemas sebagai container |
Terraform dan OpenTofu menjawab pertanyaan "server dan sumber daya apa yang harus ada". Ansible menjawab "apa isi dan setelan di dalam server itu". Kalau kamu menyewa VPS lewat panel dan jarang membuat server baru, bagian pertama mungkin belum penting. Bagian kedua hampir selalu berguna.
Docker Compose ikut masuk tabel karena, dalam praktik, file compose.yaml sudah merupakan bentuk IaC untuk lapisan aplikasi. Kalau belum akrab dengan container, baca dulu penjelasan Docker.
Apakah tim dua atau tiga orang benar-benar butuh?
Ukurannya bukan jumlah orang, melainkan seberapa mahal kalau server hilang. Satu VPS berisi website perusahaan yang bisa dipulihkan dari backup dalam satu jam mungkin belum membutuhkan alat khusus. Tiga atau empat server dengan setelan yang saling terkait, ditambah aplikasi yang tidak boleh lama mati, sudah layak ditulis sebagai kode.
Tim kecil justru punya alasan tambahan. Pengetahuan tentang server biasanya hanya ada di kepala satu orang. Kalau orang itu cuti atau berhenti, IaC menjadi cara murah untuk memindahkan pengetahuan itu ke file yang bisa dibaca siapa saja.
Ada juga sisi keamanan. Langkah pengamanan seperti mematikan login root, memasang firewall, dan memakai kunci SSH mudah terlupa saat membuat server baru dengan tangan. Kalau langkah dari cara mengamankan VPS baru sudah ditulis sebagai playbook, setiap server baru otomatis mendapat setelan yang sama.
Biaya belajar yang jarang dihitung
IaC tidak gratis, walaupun alatnya gratis. Ada waktu belajar sintaks, konsep idempoten (menjalankan berkali-kali tetap aman), dan cara menguji perubahan sebelum diterapkan. Untuk Terraform atau OpenTofu, ada konsep file state yang harus disimpan dengan aman karena bisa berisi data sensitif dan menjadi rujukan kondisi infrastruktur.
Risiko lain adalah berlebihan. Tim kecil kadang meniru arsitektur perusahaan besar: modul bertingkat, pipeline otomatis, banyak lingkungan. Hasilnya, mengubah satu setelan butuh waktu lebih lama daripada mengerjakannya langsung di server. Kalau ini terjadi, orang mulai mengubah server dengan tangan lagi, dan file IaC pelan-pelan tidak sesuai kenyataan. Kondisi ini disebut drift, dan drift yang dibiarkan membuat file IaC kehilangan manfaatnya.
Aturan praktisnya: setiap perubahan harus lewat file, termasuk perubahan darurat. Kalau terpaksa mengubah langsung di server, tuliskan perubahannya ke file pada hari yang sama.
Cara mulai tanpa berlebihan
Pilih satu server yang paling penting dan paling sering membuat repot. Tulis playbook Ansible sederhana yang memasang paket utama, membuat user, menyalin file konfigurasi web server, dan mengaktifkan layanan. Simpan di repositori Git pribadi. Itu saja sudah merupakan IaC.
Setelah itu, uji dengan cara yang paling jujur: buat VPS kosong, jalankan playbook, dan lihat apakah aplikasimu benar-benar berjalan. Bagian yang gagal menunjukkan langkah yang selama ini hanya ada di ingatan. Ulangi sampai server baru bisa siap tanpa perintah manual.
Kalau kamu sering membuat dan menghapus server, rekam DNS, atau firewall cloud lewat API, barulah tambahkan Terraform atau OpenTofu untuk lapisan itu. Simpan file state di tempat yang aman dan jangan masukkan kata sandi ke Git; pakai fitur rahasia seperti Ansible Vault atau variabel lingkungan.
Beberapa kebiasaan kecil membantu:
- Satu repositori untuk semua file infrastruktur, dengan README singkat cara menjalankannya.
- Pisahkan nilai rahasia dari file konfigurasi.
- Uji perubahan di server staging sebelum produksi, walaupun staging hanya VPS kecil.
- Jangan menulis modul umum sebelum ada tiga kasus nyata yang membutuhkannya.
IaC juga tidak menggantikan backup. File konfigurasi bisa membangun ulang server, tapi tidak mengembalikan database dan file unggahan pelanggan. Keduanya tetap perlu backup otomatis yang diuji berkala.
Penutup
Untuk tim kecil, IaC paling berguna sebagai catatan yang bisa dijalankan, bukan sebagai proyek besar. Mulai dari satu playbook untuk satu server penting, pastikan semua perubahan lewat file, dan tambahkan alat lain hanya bila kebutuhannya muncul. Dengan begitu, hari ketika server harus dibangun ulang tidak lagi menjadi hari tebak-tebakan.


