Kecepatan Bukanlah Bagian Tersulit dalam CI CD

Foto oleh Duc Van di Unsplash

Kecepatan Bukanlah Bagian Tersulit dalam CI CD

M. Zakyuddin Munziri

M. Zakyuddin Munziri

@zakiego

Ditulis asli dalam English.

Untuk waktu yang lama, tim percaya bahwa CI CD yang lebih cepat akan menyelesaikan sebagian besar masalah delivery.

Pipeline terasa lambat. Build memakan waktu terlalu lama. Deploy mengantri. Jadi kami mengoptimalkan kecepatan.

Kami memparalelkan job. Menambahkan caching. Auto deploy saat merge.

CI CD menjadi cepat.

Shipping masih terasa menakutkan.

Itulah momen ketika semuanya menjadi jelas. Kecepatan bukanlah bagian tersulitnya.


Pipeline yang lebih cepat tidak menghilangkan keraguan

Bahkan dengan pipeline cepat, engineer masih berhenti sejenak sebelum shipping.

Rollback terasa berisiko. Insiden masih menyebabkan stres. Tombol deploy diklik dengan hati-hati.

Tidak ada yang secara teknis memblokir rilis. Yang memblokirnya adalah keraguan.

CI CD cepat hanya berarti kode bergerak cepat melalui sistem. Itu tidak berarti sistem aman untuk diubah.


Kecepatan CI CD menyelesaikan eksekusi bukan kepercayaan diri

CI CD hebat dalam eksekusi.

Ia mem-build, mengetes, memaketkan, dan men-deploy secara andal dan berulang. Sebagian besar tim bisa mencapai level ini dengan usaha yang cukup.

Kepercayaan diri itu berbeda.

Kepercayaan diri adalah mengetahui apa yang terjadi ketika ada yang salah.

Seberapa besar dampaknya. Seberapa cepat sistem memberitahu Anda. Seberapa cepat Anda bisa menghentikannya.

Kecepatan saja tidak menjawab semua itu.


Cek hijau tidak menciptakan kepercayaan

Ini adalah jebakan umum.

Semua cek hijau. Tes lulus. Pipeline sukses.

Tetap saja, tidak ada yang merasa enak soal shipping.

Cek hijau memberitahu Anda aturan lulus. Mereka tidak memberitahu Anda bagaimana sistem berperilaku di bawah kondisi nyata.

Kepercayaan tidak dibangun dengan lulus cek. Ia dibangun dengan melihat kegagalan dibendung dan dipulihkan.


Apa yang sebenarnya membuat shipping terasa aman

Hal-hal berubah ketika kami berhenti bertanya bagaimana membuat CI CD lebih cepat dan mulai bertanya bagaimana membuat shipping terasa lebih aman.

Beberapa hal lebih penting daripada kecepatan mentah.

Jalur rollback yang dilatih, bukan hanya didokumentasikan.

Feature flags digunakan sebagai sakelar pengaman, bukan hanya alat peluncuran.

Environment preview yang membuat perubahan terlihat lebih awal.

Feedback loop yang memunculkan masalah sebelum pengguna mengeluh.

Tidak ada dari ini yang kompleks. Semua ini mengurangi ketidakpastian.


Kepercayaan adalah properti sistem

Ini adalah pergeseran pola pikir terbesar.

Kepercayaan tidak hidup di satu alat atau satu pipeline.

Jika rollback lambat, kepercayaan rendah. Jika alert berisik, kepercayaan rendah. Jika kepemilikan tidak jelas, kepercayaan rendah.

Otomasi memperkuat sistem yang sudah Anda miliki. Jika sistem rapuh, CI CD yang lebih cepat hanya membuat kegagalan tiba lebih cepat.


Apa yang tidak berubah

Engineer masih membuat keputusan.

Penilaian (judgement) masih penting. Tradeoff masih ada. Edge case masih terjadi.

CI CD membantu memindahkan kode. Ia tidak menghapus tanggung jawab.

Kepercayaan diri datang dari mengetahui sistem akan membantu Anda pulih alih-alih menghukum Anda.


Penutup

Kecepatan di CI CD adalah taruhan dasar (table stakes).

Pekerjaan sebenarnya adalah membangun sistem yang berperilaku dapat diprediksi ketika ada yang salah.

Jika Anda mengoptimalkan hanya untuk kecepatan, tim mungkin ship lebih cepat tapi merasa lebih buruk.

Jika Anda mengoptimalkan untuk kepercayaan, kecepatan mengikuti secara alami.

Kecepatan tidak pernah menjadi bagian yang sulit.

Artikel Lainnya

Saya Berhenti Menggali Log

Saya Berhenti Menggali Log

Debugging berubah ketika saya berhenti membaca log secara manual dan mulai menggunakan agen AI untuk mengkorelasikan error di seluruh data observabilitas - root cause lebih cepat, jalan buntu lebih sedikit.

Sakit yang Diam-diam Saat Deploy Aplikasi

Sakit yang Diam-diam Saat Deploy Aplikasi

Environment variable yang tidak divalidasi menciptakan kegagalan yang datang terlambat dan menyakitkan. Validasi saat startup atau build time, gagal cepat dengan error yang jelas, dan perlakukan konfigurasi sebagai infrastruktur kritis.