Apa Itu Pipeline as Code?

Pipeline as code adalah pendekatan dalam continuous integration (CI) di mana seluruh pipeline didefinisikan sepenuhnya dalam bentuk kode. Pipeline ini, yang disimpan dalam sistem kontrol versi, diekspresikan sebagai satu skrip atau program yang bisa dijalankan hanya dengan satu perintah di command line. Konsep ini berbeda dengan CI tradisional, yang biasanya dikonfigurasi melalui antarmuka pengguna (UI), mirip dengan konsep “as code” lainnya.

Apa Arti ‘As Code’?

Komputer digunakan untuk mengotomatiskan proses bisnis yang berulang dan sederhana. Dari pemrosesan klaim asuransi hingga pembuatan laporan bank bulanan, program komputer mengambil sesuatu dalam satu keadaan dan mengubahnya menjadi keadaan baru. Teknologi seperti server virtual, Docker, dan cloud memungkinkan penciptaan lingkungan secara otomatis melalui command line. Dengan membungkusnya dalam kode, kita bisa menambahkan logging, unit testing, serta menangani error dan pengecualian. Inilah yang melahirkan konsep infrastructure as code.

Software-defined networking membawa konsep serupa ke konfigurasi router dan jaringan internal perusahaan. Jika suatu proses bisnis bersifat berulang tetapi cukup kompleks sehingga bisa gagal dan membutuhkan logging serta notifikasi, masuk akal untuk mengotomatiskannya dengan kode daripada terus melakukannya secara manual melalui UI. Dengan menggunakan kode, kita bisa mendefinisikan aturan jaringan, menjalankan pengujian, membangun infrastruktur, atau mengelola CI dengan lebih efisien.

Bagaimana Pipeline as Code Berbeda dari CI Tradisional?

Dalam CI tradisional, pipeline deployment dikonfigurasi melalui UI. Pertama, seorang desainer pipeline memberikan sistem CI akses ke repositori sumber untuk mengambil kode terbaru. Kemudian, mereka menambahkan langkah-langkah secara manual, memberi label seperti build atau test, serta menentukan aturan untuk mendeteksi kegagalan, notifikasi, dan apakah kegagalan tersebut harus menghentikan proses.

Dengan pipeline as code, seluruh pipeline dituliskan dalam satu file konfigurasi atau bahkan dalam bentuk program komputer. Tidak perlu lagi mengklik UI untuk mengatur langkah-langkah pipeline atau menyalin-tempel kode di setiap tahap. Semua itu sudah diekspresikan dalam kode.

Keuntungan Pipeline as Code

Pipeline as code menggabungkan kemampuan CI dalam logging, reporting, dasbor, tren, visualisasi, dan notifikasi dengan manfaat “as code,” seperti kontrol versi dan pemrograman. Pendekatan ini sejalan dengan konsep DevOps, yang membawa disiplin pemrograman modern ke dalam proses operasional.
Dengan kode yang dikelola dalam sistem kontrol versi, rollback dan audit menjadi lebih mudah. Kita bisa melihat siapa yang mengubah apa dan kapan perubahan itu dilakukan. Jika sebuah perubahan menyebabkan masalah, orang yang membuat perubahan bisa segera mendapatkan notifikasi beserta tautan ke perubahan spesifik tersebut.

Selain itu, pipeline yang dikembangkan sebagai kode mendapatkan keuntungan yang sama seperti source code tradisional, termasuk struktur perulangan, variabel, dan akses ke library kode. Bahkan, pipeline ini bisa menggunakan konsep object-oriented, seperti inheritance dan encapsulation.

Kekurangan Pipeline as Code

Karena pipeline as code berbentuk program komputer, terkadang bisa menjadi kompleks dan sulit untuk di-debug. Oleh karena itu, praktik terbaiknya adalah menjaga agar kode pipeline tetap sederhana dan mudah dikelola.

Kekurangan lainnya adalah kurangnya komponen visualisasi. Setelah pipeline didefinisikan dalam kode, kita tidak bisa langsung menyeret atau memindahkan langkah-langkahnya seperti dalam UI tradisional. Namun, beberapa UI modern dan plugin sudah memungkinkan pembuatan pipeline dalam bentuk visual, lalu mengekspornya sebagai kode untuk dieksekusi. Pendekatan ini mengatasi masalah debugging, transparansi, dan kemudahan penggunaan, sambil tetap mempertahankan fleksibilitas pipeline as code.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *