Manajemen infrastruktur cloud—seperti membuat instance ECS, mengonfigurasi jaringan, dan menyiapkan penyimpanan—umumnya mengandalkan operasi manual di Konsol. Seiring pertumbuhan infrastruktur, proses manual sering menyebabkan kesalahan konfigurasi, ketidakkonsistenan antarlingkungan, serta sulitnya melacak perubahan. Infrastructure as Code (IaC) menggantikan pendekatan manual dengan definisi, penerapan, dan manajemen infrastruktur berbasis kode, sehingga memungkinkan pengiriman infrastruktur yang otomatis dan dapat diulang.
Mengapa menggunakan IaC
Cara kerja IaC
Tool IaC utama menggunakan file konfigurasi untuk mendeskripsikan infrastruktur. Tool tersebut berinteraksi dengan layanan cloud melalui API guna secara otomatis membuat dan mengonfigurasi resource sesuai definisi dalam file tersebut.
Pertimbangkan skenario umum di mana sebuah aplikasi diterapkan di lingkungan development, testing, dan production. Setiap lingkungan mencakup instance ECS, database RDS, dan load balancer SLB. Membuat resource ini secara manual di Konsol mengharuskan Anda mengulangi langkah yang sama tiga kali dan sulit menjamin konfigurasi identik. Dengan IaC, Anda cukup menulis satu file konfigurasi dan menggunakan variabel lingkungan yang berbeda untuk secara otomatis membuat tiga lingkungan identik. Untuk menskalakan proses ini ke ratusan aplikasi dan set izin, Anda dapat mengonversi konfigurasi menjadi templat serta menyuntikkan variabel. Templat tersebut kemudian dapat diintegrasikan ke dalam pipeline CI/CD guna pengiriman otomatis.
Alur kerja dasar IaC adalah sebagai berikut:
Definisikan infrastruktur: Tulis file konfigurasi menggunakan bahasa konfigurasi atau bahasa pemrograman untuk mendeskripsikan resource yang dibutuhkan beserta dependensinya.
Otomatisasi penerapan: Tool IaC menggunakan file konfigurasi dan API layanan cloud untuk secara otomatis membuat dan mengonfigurasi resource.
Kelola perubahan: Saat file konfigurasi dimodifikasi, tool mendeteksi perbedaan dan memperbarui infrastruktur secara inkremental agar sesuai dengan status terbaru.
Manfaat IaC
Kemampuan digunakan ulang: File konfigurasi yang sama dapat digunakan untuk membuat dan mengelola beberapa lingkungan—seperti development, testing, dan production—guna memastikan konsistensi.
Otomatisasi: Otomatiskan pembuatan dan manajemen resource cloud serta integrasikan IaC langsung ke dalam pipeline CI/CD untuk continuous delivery.
Berbasis proses: Perlakukan perubahan infrastruktur sama seperti perubahan kode aplikasi. Anda dapat meninjau pembaruan konfigurasi, memvalidasinya secara otomatis, dan mengelolanya melalui alur kerja yang telah ditentukan.
Kemampuan diaudit: Simpan file konfigurasi dalam sistem kontrol versi untuk mempertahankan riwayat perubahan lengkap guna keperluan audit dan rollback.
Cara memilih tool IaC
Alibaba Cloud mendukung berbagai tool IaC. Tool tersebut berbeda dalam metode konfigurasi, tingkat integrasi dengan layanan Alibaba Cloud, serta kasus penggunaan idealnya:
Metode penulisan | Tool | Kasus penggunaan |
Antarmuka grafis. Tidak perlu coding. | Mencoba IaC dengan cepat. Hasilkan dan eksekusi konfigurasi secara visual. | |
Bahasa konfigurasi HCL | Manajemen multi-cloud, kolaborasi tim, lingkungan produksi. | |
Templat JSON/YAML | Lingkungan eksklusif Alibaba Cloud. Integrasi mendalam dengan Konsol Manajemen Alibaba Cloud. | |
Bahasa pemrograman tujuan umum | Tim pengembangan Anda lebih menyukai Java, Python, Go, atau TypeScript. | |
Playbook YAML | Manajemen konfigurasi, penerapan aplikasi, O&M otomatis. |
Pulumi dan tool lain juga menyediakan provider Alibaba Cloud. Namun, cakupan layanan Alibaba Cloud-nya tidak selengkap Terraform. Kami merekomendasikan memilih dari tool yang tercantum di atas. Jika Anda baru mengenal semuanya, mulailah dengan Terraform.
Tool IaC yang didukung oleh Alibaba Cloud
Alibaba Cloud terintegrasi dengan banyak tool IaC. Pilih yang paling sesuai dengan kasus penggunaan Anda:
Tool | Deskripsi | Pelajari lebih lanjut |
Terraform Explorer | Tool visual berbasis Terraform. Menghasilkan konfigurasi dan mengeksekusinya secara otomatis. Tidak perlu instalasi client, penulisan konfigurasi, maupun manajemen state. | |
Terraform (direkomendasikan) | Tool open-source deklaratif dari HashiCorp. Menggunakan HCL untuk mendefinisikan resource cloud dan on-premises. Mendukung kontrol versi, penggunaan ulang templat, dan alur kerja otomatis. Alibaba Cloud merupakan salah satu dari empat penyedia cloud utama resmi Terraform. Providernya diperbarui secara berkala. | |
ROS | Layanan penerapan otomatis native Alibaba Cloud. Gratis digunakan. Mendefinisikan resource menggunakan templat JSON atau YAML. Menyediakan antarmuka visual dan pustaka templat. Mendukung penerapan satu klik dan templat Terraform terkelola. | |
CDKTF | Menggunakan bahasa pemrograman tujuan umum—seperti Java, Go, Python, dan TypeScript—untuk menghasilkan konfigurasi Terraform secara otomatis dan menjalankan penerapan. Menggabungkan otomatisasi model deklaratif dengan fleksibilitas model imperatif. | |
Terraform Cloud / Enterprise | Produk enterprise HashiCorp untuk Terraform. Mengelola resource infrastruktur di tingkat organisasi. | |
Pulumi | Menggunakan bahasa pemrograman tujuan umum untuk mendefinisikan infrastruktur. Namun, cakupan layanan Alibaba Cloud-nya kurang lengkap dibandingkan Terraform. Lebih disarankan menggunakan CDKTF. | |
Ansible | Fokus pada O&M otomatis. Mendukung manajemen konfigurasi dan penerapan aplikasi. Arsitektur tanpa agen—tidak perlu instalasi client pada mesin target. |
FAQ
Apakah saya perlu pengalaman pemrograman untuk menggunakan IaC?
Tidak. Tool deklaratif seperti Terraform menggunakan bahasa konfigurasi sederhana yang dirancang khusus (HCL) dan tidak memerlukan pengalaman pemrograman. Terraform Explorer menyediakan antarmuka grafis untuk menghasilkan konfigurasi tanpa menulis kode sama sekali. Hanya tool seperti CDKTF dan Pulumi yang memerlukan pengetahuan bahasa pemrograman seperti Java atau Python.
Dapatkah saya menggunakan file konfigurasi IaC yang sama di berbagai platform cloud?
Bergantung pada tool-nya. Tool seperti Terraform dan Pulumi mendukung penerapan multi-cloud. Namun, karena setiap platform cloud memiliki provider dan definisi resource sendiri, file konfigurasi tidak dapat digunakan ulang secara langsung di cloud yang berbeda. Meski demikian, struktur proyek modular dan logika alur kerja umum sering kali dapat digunakan ulang. ROS hanya berfungsi dengan Alibaba Cloud.
Apakah Terraform gratis?
CLI Terraform (edisi open-source) gratis. Terraform Cloud menawarkan tier gratis dan paket berbayar, sedangkan Terraform Enterprise adalah produk berbayar. Menggunakan Terraform untuk mengelola resource di Alibaba Cloud tidak dikenai biaya untuk tool-nya sendiri. Namun, resource cloud yang Anda buat akan ditagih sesuai harga standar Alibaba Cloud.