6 poin oleh GN⁺ 2025-03-12 | Belum ada komentar. | Bagikan ke WhatsApp
  • Mengelola lebih dari 165.000 resource cloud di 625 workspace Terraform dan 38 akun AWS
    • Dari 170 engineer, 40 orang adalah spesialis infrastruktur
    • Menjalankan 225 rilis infrastruktur (terraform apply) dan 723 plan (terraform plan) setiap hari
  • Untuk itu, mereka mengadopsi Terraform Cloud guna mengotomatiskan proses rilis infrastruktur, sekaligus mengurangi pekerjaan manual dan kesalahan dari para developer

Masalah sebelum mengadopsi Terraform Cloud

  • Memerlukan hak akses AWS tingkat tinggi: tim infrastruktur harus memiliki hak akses AWS tingkat tinggi
  • Pekerjaan yang memakan waktu: harus menjalankan terraform apply di setiap direktori lalu mengulang proses review dan persetujuan, dan satu perubahan bisa berdampak pada lebih dari 120 workspace
  • Terjadi infrastructure drift: perubahan tak terduga menumpuk sehingga saat diterapkan diperlukan review dan tindakan tambahan

Penerapan Terraform Cloud dan dampaknya

  • Menghilangkan drift → menghapus infrastructure drift sehingga mengurangi risiko dan beban developer
  • Menghemat waktu developermenghemat sekitar 8.000 jam waktu developer per tahun (setara beban kerja 4 developer)
  • Perubahan dapat dilacak → perubahan dapat ditelusuri melalui audit log dan lebih mudah di-debug
  • Mendukung speculative plan → perubahan dapat diuji secara otomatis dan hasilnya bisa langsung dilihat di GitHub CI

Cara Terraform Cloud dioperasikan saat ini

  • Self-hosted: menginstal Terraform Cloud for Business secara mandiri dan menjalankan agen TFC di cluster ECS dalam akun AWS
  • Konfigurasi agent pool: mengoperasikan 120 agent yang dibagi ke dalam lingkungan development (40) dan lingkungan production (80) untuk mempertahankan konkurensi tinggi

Hal-hal yang dipantau secara utama

  1. Kehabisan agent dan batas konkurensi → jika agent kurang, notifikasi dikirim ke penanggung jawab on-call
  2. Waktu plan → jika waktu plan di lingkungan development melebihi 4 menit, tim akan diberi tahu
  3. Infrastructure drift → saat ini tidak diukur (karena drift hampir tidak terjadi)

Optimasi untuk meningkatkan kualitas

  • Mengembangkan TFC CLI: agar perubahan di beberapa workspace bisa direview dan disetujui secara otomatis lewat CLI
  • Membangun sistem notifikasi: mengotomatiskan notifikasi Slack agar tidak ada penerapan Terraform yang terlewat
  • Manajemen workspace otomatis: mengelola 625 workspace menggunakan Terraform dan menerapkan tag untuk membedakan tim pemilik
  • Analisis penggunaan Terraform Cloud: memanfaatkan TFC API untuk mengumpulkan data state version dan memahami penggunaan resource serta tren pertumbuhannya
  • Backup Terraform State: mencadangkan file state secara otomatis ke bucket S3 agar dapat dipulihkan saat terjadi gangguan
  • Mengelola dependensi workspace: membuat pohon dependensi modul untuk mengatur direktori yang harus dipantau oleh workspace secara otomatis
  • Mengotomatiskan upgrade provider: menggunakan Dependabot untuk meng-upgrade provider setiap bulan dan mengurangi beban pengelolaan melalui otomatisasi

Perbaikan yang direncanakan ke depan

  • Rollout bertahap: beralih dari rilis berbasis branch main ke metode deployment multi-tahap (development → staging → production)
  • Memecah workspace besar: memecah 625 workspace saat ini menjadi lebih dari 1500 agar waktu plan dan apply lebih singkat serta cakupan dampak perubahan lebih kecil
  • Peningkatan fitur notifikasi: menambahkan fitur reassign pada notifikasi Slack dan memperkenalkan pembuatan otomatis perintah tfc review
  • Auto scaling agent: berencana mengadopsi sistem auto scaling berbasis EKS untuk menangani workload yang berubah-ubah secara efisien
  • Open-source alat yang dikembangkan sendiri: berencana merilis berbagai alat internal sebagai open source agar dapat dimanfaatkan tim lain juga

Belum ada komentar.

Belum ada komentar.