Apa itu IAC atau Infrastructure as code? Teknologi saat ini semakin berkembang dan canggih. Sekarang banyak pengembangan sebuah perangkat lunak yang dapat dikonsumsi oleh pengguna. Perangkat lunak siap untuk dikonsumsi ketika sudah diunggah ke sebuah server yang dapat diakses oleh para pengguna.
Kenali Apa Itu Infrastructure as Code?
Infrastructure as code atau IAC adalah sebuah proses menyediakan dan mengelola pusat data komputer melalui file definisi yang dapat terbaca oleh mesin konfigurasi perangkat keras fisik ataupun alat konfigurasi interaktif. Infrastruktur yang dimaksud dengan ini terdiri atas kedua peralatan fisik seperti mesin virtual dan sumber daya konfigurasi serta server bare metal terkait.
Definisi dalam sistem kontrol versi dapat menggunakan definisi deklaratif atau skrip bukan melalui proses manual. Ini lebih sering digunakan sebagai promosi pendekatan deklaratif. User yang menggunakan IAC dapat memilih beberapa pilihan alat yang bisa digunakan. Dalam bentuk Ansible, Chef, atau Puppet.
Memilih alat IAC sangat penting untuk dilakukan karena semua dirujuk untuk dikembangkan dengan tujuan atau maksud tertentu. Selama beberapa tahun sebagian besar telah berevolusi untuk mengatasi serangkaian kasus penggunaan yang luas dan untuk memenuhi kebutuhan IAC.
Memilih alat yang tepat memerlukan cara dengan memahami beberapa tugas yang terlibat dalam penyediaan aplikasi serta infrastruktur. Umumnya tugas dibagi menjadi berbagai manajemen konfigurasi.
Puppet, Ansible, dan Chef termasuk dalam alat manajemen konfigurasi yang dibuat untuk mengelola dan menginstal perangkat lunak server yang ada. Perangkat lunak tersebut seperti memulai layanan, instalasi paket, dan menginstal file atau skrip. Kamu dapat melakukan pekerjaan yang berat untuk membuat banyak contoh peran tanpa menunggu perintah yang tepat.
Ansible
Ansible merupakan salah satu infrastructure as code yang berfungsi sebagai konfigurasi manajemen. Ansible bisa melakukan konfigurasi ke beberapa server sekaligus di saat yang sama dengan cara otomatis.
Cara Kerja Ansible
Host yang terpasang pada Ansible harus dapat terhubung kepada host yang akan dikonfigurasi dengan protokol SSH. Host tidak tidak perlu memasang aplikasi tambahan lagi karena cukup mengaktifkan SSH saja. Daftar Managed Nodes (host) disimpan pada file Inventory dengan menuliskan hostname atau IP.
Perintah konfigurasi adalah perintah yang spesifik untuk satu perintah yang nanti didefinisikan ke dalam file playbook. Jika nanti ada install dan update berarti menjadi dua task. Semua perintah yang berita dijalankan di task disebut dengan Task Plugins atau Modules.
Kelebihan
Jika kamu melakukan infrastructure as code menggunakan konfigurasi manajemen terdapat beberapa kelebihan yang bisa dirasakan. Berikut merupakan kelebihan melakukan IAC menggunakan konfigurasi manajemen:
- Idempotensi, idempotensi adalah atribut dari operasi matematika yang jika dilakukan berulang kali akan memiliki hasil yang sama. Artinya idempotensi dapat berulang kali menjalankan perintah ansible-playbook terhadap manifestasi serta akan mendapatkan hasil yang sama setiap kalinya.
- Konvensi, dengan menggunakan konfigurasi manajemen kamu dapat menerapkan konvensi pada kode yang ditulis. Kolaborasi dalam menulis kode bisa lebih mudah dilakukan dengan mengikuti konvensi yang sama.
- Distribusi, jika kamu perlu mengelola beberapa server sekaligus dengan ad-hoc script kamu harus menjalankan script secara manual pada semua server. Melalui Ansible, kamu cukup menuliskan daftar server yang perlu dikelola pada inventory Ansible. Ketika kamu menjalankan perintah ansible-playbook operasi akan dilakukan pada seluruh server pada daftar inventory tersebut.
Manfaat Jika Menggunakan IAC
Terdapat beberapa manfaat menggunakan infrastructure as code untuk mengelola infrastruktur sistem perangkat lunak. Berikut merupakan manfaat-manfaat yang dapat dirasakan:
- Kecepatan, manfaat yang pertama yang dapat dirasakan yaitu kecepatan. Operasi yang diperlukan untuk mengelola infrastruktur akan menjadi lebih cepat jika dijalankan melalui teknologi IAC daripada jika diketikan secara manual oleh manusia.
- Keamanan, biasanya teknologi IAC memiliki mekanisme yang dapat memastikan konsistensi pada kode yang telah ditulis. Sehingga dapat meminimalisir peluang terjadinya kesalahan yang fatal ketika kode diterapkan ke infrastruktur kamu.
- Self service, dengan menggunakan teknologi IAC pengembang dapat menulis kode yang diperlukan sendiri untuk mempersiapkan infrastruktur sistem yang dibutuhkan. Hal itu terjadi karena kode tidak jauh berbeda dengan kode bahasa pemrograman yang digunakan sehari-hari.
- Version control, version control dapat mengelola semua kode yang telah ditulis. Dengan hal ini kamu dapat terus memantau riwayat perubahan kode yang kamu kelola tersebut.
- Dokumentasi, seluruh anggota dalam tim kamu dapat membaca kode sehingga dalam semua anggota dapat melihat dengan jelas kode yang kamu tulis. Selain itu, mereka juga dapat melihat bagaimana infrastrukturnya dibuat serta mempunyai komponen apa saja.
- Kebahagiaan, kebahagiaan akan terasa karena teknologi infrastructure as code memudahkan pengembang untuk melakukan apa yang menjadi keahlian mereka serta dapat menyerahkan sisanya untuk dioptimasi oleh mesin itu sendiri.
- Penggunaan ulang, beberapa teknologi IAC memiliki model yang dapat digunakan ulang dan disebar luas kan dengan mudah. Contohnya seperti Ansible memiliki playbook, Terraform memiliki module, dan Chef memiliki cookbook.
- Validasi, jika kamu menggunakan teknologi IAC, kamu dapat melakukan automatic tes, kode review, dan teknik lainnya yang dapat mengurangi risiko cacat pada produksi kode IAC yang telah dibuat.
Demikian ulasan tentang manfaat Infrastructure as code yang dapat disampaikan. Jika ingin tau lebih dalam kunjungi di studidevsecops.com