Dalam kerja IT infrastructure, banyak perkara perlu disediakan sebelum sesuatu sistem boleh digunakan. Contohnya server, network, firewall rule, storage, database dan cloud resource.
Kalau semua ini dibuat secara manual, kerja boleh jadi lambat, tidak konsisten dan mudah berlaku kesilapan. Di sinilah konsep Infrastructure-as-Code, atau ringkasnya IaC, menjadi penting.
Apa Maksud Infrastructure-as-Code?
Infrastructure-as-Code ialah kaedah mengurus dan menyediakan infrastructure menggunakan code atau configuration file.
Maksudnya, kita tidak lagi bergantung sepenuhnya kepada klik manual dalam portal cloud atau setup satu per satu dalam server. Sebaliknya, kita tulis definisi infrastructure dalam bentuk code.
Contohnya, dalam code itu kita boleh nyatakan:
Berapa banyak virtual machine perlu dibuat
Jenis server atau instance yang digunakan
Network mana server itu akan masuk
Security group atau firewall rule yang perlu dibuka
Storage atau database yang perlu disediakan
Tool IaC kemudian akan membaca code tersebut dan membina infrastructure berdasarkan apa yang ditulis.
Antara tool yang biasa digunakan untuk IaC ialah Terraform, Ansible, AWS CloudFormation, Azure Bicep dan Pulumi.
Kenapa IaC Digunakan?
Bayangkan satu team perlu bina environment untuk development, staging dan production. Kalau semuanya dibuat secara manual, mungkin ada setting yang tertinggal atau berbeza antara environment.
Contohnya, server production ada firewall rule tertentu, tetapi staging terlupa ditambah rule yang sama. Atau saiz storage dalam development berbeza daripada yang sepatutnya.
Dengan IaC, semua konfigurasi disimpan dalam code. Jadi environment boleh dibina semula dengan cara yang lebih konsisten.
IaC membantu dari segi:
Konsistensi
Setup infrastructure lebih seragam kerana semuanya berdasarkan file yang sama.
Kelajuan
Environment baru boleh disediakan dengan lebih cepat tanpa perlu klik banyak kali secara manual.
Audit dan tracking
Perubahan infrastructure boleh disimpan dalam Git. Jadi kita boleh tahu siapa ubah apa, bila ia diubah, dan kenapa perubahan itu dibuat.
Pengurangan human error
Bila proses manual dikurangkan, risiko tersalah konfigurasi juga boleh dikurangkan.
Bagaimana IaC Berfungsi?
Secara mudah, workflow IaC biasanya seperti ini.
Pertama, engineer akan tulis code atau configuration file. File ini menerangkan infrastructure yang diperlukan. Contohnya, satu virtual machine, satu subnet, satu database dan beberapa firewall rule.
Kedua, code itu disimpan dalam version control seperti Git. Ini penting supaya setiap perubahan boleh dijejak dan direview oleh team.
Ketiga, tool IaC akan dijalankan. Tool ini akan membaca code dan membandingkan keadaan sebenar infrastructure dengan apa yang ditulis dalam file.
Jika resource belum wujud, tool akan menciptanya. Jika ada perubahan, tool akan cuba mengemaskini resource tersebut. Jika sesuatu resource tidak lagi diperlukan, ia boleh dibuang mengikut arahan dalam code.
Akhirnya, infrastructure yang terhasil akan lebih mudah dikawal kerana semua perubahan bermula daripada code, bukan daripada tindakan manual yang sukar dijejak.
Contoh Penggunaan Dalam IT Infrastructure
Dalam cloud environment, IaC sangat berguna untuk membina resource seperti virtual machine, VPC, subnet, security group, load balancer, database dan storage.
Contohnya, sebuah company mahu menyediakan environment baru untuk aplikasi web. Dengan IaC, team boleh tulis configuration untuk:
Membina network khas untuk aplikasi
Menyediakan beberapa server aplikasi
Menambah load balancer
Membuka port tertentu melalui security group
Menyediakan database
Menetapkan storage backup
Apabila configuration ini sudah siap, environment yang sama boleh digunakan semula untuk development, staging atau production dengan sedikit perubahan parameter.
Dalam data center atau hybrid environment pula, IaC boleh membantu mengurus server configuration, package installation, user access, monitoring agent dan basic security setting.
Kesilapan Biasa Yang Perlu Dielakkan
Kesilapan biasa dalam penggunaan IaC ialah mengubah infrastructure secara manual tetapi tidak mengemaskini code.
Contohnya, seseorang menambah firewall rule terus melalui cloud console. Pada masa itu, sistem mungkin berfungsi. Tetapi apabila IaC dijalankan semula, perubahan manual itu mungkin hilang atau menyebabkan configuration drift.
Configuration drift berlaku apabila keadaan sebenar infrastructure tidak lagi sama dengan apa yang ditulis dalam code.
Sebab itu, prinsip penting IaC ialah: kalau mahu ubah infrastructure, ubah melalui code. Jangan jadikan manual change sebagai kebiasaan, kecuali untuk situasi kecemasan yang kemudian perlu dikemaskini semula dalam code.
Infrastructure-as-Code membantu team IT mengurus infrastructure dengan lebih konsisten, cepat dan mudah dijejak.
Ia bukan sekadar tentang automation, tetapi tentang menjadikan infrastructure lebih tersusun, boleh diulang, dan lebih mudah dikawal. Untuk beginner, cara paling mudah faham IaC ialah: infrastructure ditulis seperti code, bukan hanya diklik secara manual.
Cohort pertama DevOps Bootcamp sedang berlangsung dan sambutan yang diterima sangat menggalakkan.
Sepanjang cohort pertama ini, saya menerima banyak pertanyaan daripada mereka yang berminat untuk sertai bootcamp, tetapi tidak sempat masuk sebelum ini.
Jadi saya buka peluang untuk pendaftaran DevOps Bootcamp Cohort Kedua untuk bantu lebih ramai orang untuk belajar berkenaan DevOps!
Daftar segera di : https://www.infratify.com/devops-bootcamp
Jumpa dalam kelas nanti!
Syafi




