Baca berita dengan sedikit iklan, klik di sini
TEMPO.CO, Jakarta - CrowdStrike merilis patch yang relatif kecil pada hari Jumat, 19 Juli 2024, dan patch tersebut mendatangkan malapetaka pada sebagian besar dunia TI yang menjalankan Microsoft Windows, sehingga melumpuhkan bandara, fasilitas kesehatan, dan pusat panggilan 911.
Baca berita dengan sedikit iklan, klik di sini
Perusahaan seperti CrowdStrike kemungkinan besar memiliki saluran DevOps yang canggih dengan kebijakan rilis yang diterapkan, namun meskipun demikian, kode dengan bug tersebut entah bagaimana bisa lolos.
Baca berita dengan sedikit iklan, klik di sini
Dalam sebuah pernyataan pada hari Jumat, perusahaan mengakui konsekuensi dari pembaruan yang salah. “CrowdStrike memahami gawatnya dan dampak dari situasi ini. Kami dengan cepat mengidentifikasi masalah tersebut dan menerapkan perbaikan, sehingga memungkinkan kami untuk fokus pada pemulihan sistem pelanggan sebagai prioritas utama kami,” ujar perusahaan sebagaimana dikutip TechCrunch, 23 Juli 2024. Lebih lanjut, dijelaskan akar penyebab pemadaman, meski tidak menjelaskan bagaimana hal itu terjadi.
Dan Rogers, CEO di LaunchDarkly, mengungkap masalah penerapan perangkat lunak secara lebih luas. “Bug perangkat lunak memang terjadi, tetapi sebagian besar masalah perangkat lunak yang dialami seseorang sebenarnya bukan karena masalah infrastruktur,” katanya kepada TechCrunch.
“Hal ini terjadi karena seseorang meluncurkan perangkat lunak yang tidak berfungsi, dan perangkat lunak tersebut secara umum sangat dapat dikontrol.” Dengan tanda fitur, Anda dapat mengontrol kecepatan penerapan fitur baru, dan mematikan fitur, jika terjadi kesalahan untuk mencegah masalah menyebar luas.
Namun penting untuk dicatat, bahwa dalam kasus ini, masalahnya berada pada tingkat kernel sistem operasi, dan jika masalah tersebut sudah tidak terkendali, maka akan lebih sulit untuk memperbaikinya dibandingkan dengan aplikasi web. Namun, penerapan yang lebih lambat dapat mengingatkan perusahaan akan masalah ini lebih cepat.
Apa yang terjadi di CrowdStrike berpotensi terjadi pada perusahaan perangkat lunak mana pun, bahkan perusahaan yang memiliki praktik rilis perangkat lunak yang baik, kata Jyoti Bansal, pendiri dan CEO di Harness Labs, pembuat alat pengembang saluran DevOps. Dia menjelaskan secara umum tentang bagaimana kode dengan bug bisa lolos.
Biasanya, ada proses di mana kode diuji secara menyeluruh sebelum diterapkan, namun terkadang tim teknik, terutama dalam kelompok teknik besar, mungkin mengambil jalan pintas. “Hal seperti ini mungkin terjadi ketika Anda melewatkan jalur pengujian DevOps, yang cukup umum terjadi pada pembaruan kecil,” kata Bansal kepada TechCrunch.
Dia mengatakan hal ini sering terjadi di organisasi besar yang tidak memiliki pendekatan tunggal terhadap rilis perangkat lunak. “Misalnya Anda memiliki 5.000 insinyur, yang mungkin akan dibagi menjadi 100 tim yang terdiri dari 50 atau lebih pengembang berbeda. Tim-tim ini mengadopsi praktik yang berbeda,” katanya. Dan tanpa standarisasi, kode buruk akan lebih mudah lolos.
Bagaimana mencegah bug agar tidak lolos
Kedua CEO tersebut mengakui bahwa bug terkadang terjadi, namun ada cara untuk meminimalkan risiko, termasuk yang mungkin paling jelas: mempraktikkan kebersihan rilis perangkat lunak standar. Hal itu melibatkan pengujian sebelum penerapan dan kemudian penerapan dengan cara yang terkendali.
Rogers menunjuk pada perangkat lunak perusahaannya dan mencatat bahwa peluncuran progresif adalah awal yang baik. Daripada memberikan perubahan kepada setiap pengguna sekaligus, Anda malah merilisnya ke sebagian kecil dan melihat apa yang terjadi sebelum memperluas peluncurannya.
Demikian pula, jika Anda telah mengontrol peluncuran dan terjadi kesalahan, Anda dapat melakukan roll back. “Ide manajemen fitur atau kontrol fitur memungkinkan Anda mengembalikan fitur yang tidak berfungsi dan mengembalikan orang ke versi sebelumnya jika ada yang tidak berfungsi.”
Bansal, yang perusahaannya baru saja membeli startup unggulan Split.io pada bulan Mei, juga merekomendasikan apa yang disebutnya “penerapan canary”, yaitu penerapan pengujian kecil yang terkontrol. Disebut demikian karena mereka mengingat kembali burung kenari yang dikirim ke tambang batu bara untuk menguji kebocoran karbon monoksida. Setelah Anda membuktikan bahwa peluncuran tes terlihat bagus, Anda dapat melanjutkan ke peluncuran progresif seperti yang disinggung Rogers.
Seperti yang dikatakan Bansal, perangkat lunak mungkin terlihat bagus dalam pengujian, namun pengujian laboratorium tidak selalu mencakup semuanya, dan itulah mengapa Anda harus menggabungkan pengujian DevOps yang baik dengan penerapan terkontrol untuk menangkap hal-hal yang terlewatkan oleh pengujian laboratorium.
Rogers menyarankan ketika melakukan analisis terhadap program pengujian perangkat lunak Anda, Anda melihat tiga bidang utama — platform, orang, dan proses — dan menurut pandangannya, semuanya bekerja sama. “Tidak cukup hanya memiliki platform perangkat lunak yang hebat. Tidaklah cukup hanya memiliki pengembang berkemampuan tinggi. Alur kerja dan tata kelola yang telah ditentukan sebelumnya juga tidak cukup. Ketiganya harus bersatu,” ujarnya.
Salah satu cara untuk mencegah teknisi atau tim menghindari jalur pipa adalah dengan menerapkan pendekatan yang sama untuk semua orang, namun dengan cara yang tidak memperlambat tim.