Infrastruktur sebagai Kode (IaC)

Prinsip mendasar dari DevOps adalah memperlakukan infrastruktur dengan cara yang sama seperti developer memperlakukan suatu kode. Kode aplikasi memiliki format dan sintaks yang ditetapkan. Jika kode tidak ditulis sesuai dengan aturan bahasa pemrograman, aplikasi tidak dapat dibuat. Kode disimpan dalam manajemen versi atau sistem kontrol sumber yang mencatat log riwayat pengembangan kode, perubahan, dan perbaikan bug. Saat kode dikompilasi atau dibangun ke dalam aplikasi, kita mengharapkan aplikasi yang konsisten akan dibuat, serta build-nya dapat diulang dan dapat diandalkan.

Mempraktikkan infrastruktur sebagai kode (IaC) berarti menerapkan keakuratan pengembangan kode aplikasi yang sama ke penyediaan infrastruktur. Semua konfigurasi harus didefinisikan dengan cara deklaratif dan disimpan dalam sistem kontrol sumber seperti AWS CodeCommit, sama seperti kode aplikasi. Penyediaan infrastruktur, orkestrasi, dan deployment juga harus mendukung penggunaan infrastruktur sebagai kode (IaC).

Infrastruktur secara tradisional disediakan menggunakan kombinasi skrip dan proses manual. Terkadang skrip ini disimpan dalam sistem kontrol versi atau didokumentasikan langkah demi langkah dalam file teks atau run-book. Sering kali orang yang menulis run-book bukanlah orang yang sama yang mengeksekusi skrip ini atau menindaklanjuti run-book tersebut. Jika skrip atau runbook ini tidak sering diperbarui, skrip dan runbook tersebut berpotensi menjadi faktor penghambat dalam deployment. Hal ini menghasilkan pembuatan lingkungan baru tidak selalu dapat diulang, dapat diandalkan, atau konsisten.

Berbeda dengan hal di atas, AWS menyediakan cara yang berfokus pada DevOps untuk membuat dan memelihara infrastruktur. Mirip dengan cara developer perangkat lunak menulis kode aplikasi, AWS menyediakan layanan yang memungkinkan pembuatan, deployment, dan pemeliharaan infrastruktur dengan cara yang terprogram, deskriptif, dan deklaratif. Layanan ini memberikan keakuratan, kejelasan, dan keandalan. Layanan AWS yang dibahas dalam dokumen ini merupakan inti dari metodologi DevOps dan membentuk dasar dari berbagai prinsip dan praktik AWS DevOps tingkat lebih tinggi.

AWS menawarkan layanan berikut untuk menentukan Infrastruktur sebagai kode (IaC).