Pengujian Canary: Apa Itu, dan Bagaimana Manfaatnya?
Diterbitkan: 2022-08-20Kemungkinannya adalah, jika Anda bukan seorang programmer, Anda belum pernah mendengar tentang pengujian kenari. Tidak apa-apa, namun Anda mungkin bertanya-tanya apa itu, dan mengapa disebut pengujian kenari?
Istilah ini berasal dari frasa "kenari di tambang batu bara". Soalnya, penambang batu bara biasa membawa burung kenari yang dikurung ke dalam tambang batu bara, karena burung kenari memiliki toleransi yang lebih rendah terhadap gas beracun.
Oleh karena itu, para pekerja tahu bahwa jika kenari mati, mereka harus keluar dari tambang. Dalam hal pengembangan perangkat lunak, saat membuat perangkat lunak baru, tujuannya adalah untuk mendeteksi dan menyelesaikan masalah secepat mungkin, sebelum menjadi masalah bagi pengguna.
Apa itu Pengujian Canary?
Pengujian Canary adalah metode untuk mencoba fungsionalitas dan fitur baru dengan harapan dampak negatif yang minimal bagi pengguna. Jenis pengujian ini biasanya digunakan dengan sekelompok kecil pengguna, di mana aplikasi disajikan dengan perubahan kecil. Dengan cara ini, sebagian besar pengguna akan tetap menggunakan versi perangkat lunak saat ini, sedangkan kelompok pengguna yang lebih kecil dan dipilih akan menggunakan versi yang sedikit ditingkatkan.
Tujuan dari latihan ini adalah untuk memungkinkan sebagian besar orang yang menggunakan perangkat lunak untuk terus bekerja dengannya, tanpa masalah apa pun, sambil mendorong perubahan hanya untuk sebagian kecil pengguna.
Ini semua dilakukan sambil menjaga versi aplikasi yang sudah ada dan yang baru berjalan secara bersamaan. Kemudian, jika pengujian canary tidak mengembalikan kesalahan apa pun, Anda dapat terus memperluasnya ke persentase pengguna yang lebih besar.
Pembaca Juga Menikmati : Apa itu Rapid Application Development? 4 Fase Metodologi RAD – DevriX
Bagaimana Melakukan Tes Canary?
Langkah pertama dalam tes kenari adalah meluncurkan satu set server atau wadah back-end untuk menjalankan kode baru. Setelah ada pengguna baru, penyeimbang beban Anda akan mengirimkan persentase dari mereka ke "cluster canary".
Spesialis DevOps kemudian memantau server untuk mengidentifikasi potensi masalah, seperti beban komputasi atau tingkat I/O yang lebih tinggi. Dan, perlu diingat bahwa, bahkan jika masalah serius terjadi, mudah untuk mengembalikan semuanya seperti semula, karena prosesnya tidak memengaruhi semua orang yang menggunakan perangkat lunak.
Jika tidak, Anda dapat dengan mudah menerapkan dan mengotomatiskan pengujian kenari dengan menggunakan alat seperti Spinnaker untuk menentukan jumlah pengguna yang menggunakan kode baru.
Persentase tersebut biasanya sekitar 5%, dan setelah tim DevOps yang ditugaskan menetapkan bahwa tidak ada masalah, mereka dapat terus meningkatkan persentase itu, hingga semua orang menggunakan versi kode aplikasi yang baru.
Terlebih lagi, pengujian kenari bermanfaat dalam situasi di mana lingkungan pengembangan atau pementasan tidak sepenuhnya cocok dengan lingkungan produksi. Menggunakan grup uji kecil pengguna dapat mengungkapkan masalah apa pun yang tidak terdeteksi selama lingkungan pementasan atau pengembangan.
Pembaca Juga Nikmati : Pengujian A/B dengan WordPress: Panduan Definitif – DevriX
Manfaat dan Kerugian Pengujian Canary
Mari kita definisikan yang baik dan yang buruk dalam hal pengujian, menggunakan metode kenari.
Manfaat Pengujian Canary
- Pengujian dunia nyata . Pengujian di lingkungan internal yang tertutup sangat bagus, namun, mampu menguji perangkat lunak pada pengguna nyata adalah yang membawa Anda selangkah lebih maju. Dengan penerapan canary, Anda dapat melakukan hal itu – menguji aplikasi Anda pada audiens skala kecil, tanpa risiko merilis aplikasi yang benar-benar baru.
- Manajemen risiko yang lebih baik . Melepaskan fitur baru secara bertahap dan memastikannya berfungsi dengan baik, sangat mengurangi kesalahan signifikan dan total biaya kegagalan.
Dengan menggunakan metode pengujian canary, pada dasarnya Anda menghilangkan kebutuhan untuk memutar kembali pembaruan besar atau menulis ulang kode dalam jumlah besar. - Lebih berorientasi bisnis . Perlu menyajikan data bisnis kepada manajer dan staf pemasaran/penjualan? Dengan kenari, Anda dapat melihat hasil dengan sangat cepat. Misalnya, jika Anda ingin menguji fitur perangkat lunak baru – Anda dapat menerapkan fitur baru untuk sekelompok kecil pengguna, lalu menunggu untuk melihat apakah fitur tersebut berfungsi dengan baik atau tidak. Kemudian, Anda dapat menggunakan data ini untuk meningkatkan keterlibatan bagi produk Anda.
Kekurangan Pengujian Canary
- Masalah perangkat lunak . Masih ada kode yang belum diuji, jadi, tentu saja, ada risiko yang terlibat. Jika bahkan beberapa pengguna mengalami masalah signifikan dengan fitur tertentu, sebaiknya lewati pengujian canary demi pengujian internal yang lebih ketat.
- Biaya lebih besar . Jika Anda bermaksud menggunakan penyeimbang beban untuk mempartisi pengguna, Anda akan memerlukan infrastruktur tambahan dan lebih banyak administrasi. Ini berarti Anda harus membuat dua lingkungan produksi dan backend terpisah untuk menjalankan pengujian. Jadi, dua server aplikasi, dua baris kode, dua server web, dan infrastruktur jaringan yang harus dipelihara.
- Pengalaman pengguna yang buruk . Beberapa pengguna mungkin tidak terlalu tertarik dengan gagasan digunakan sebagai subjek tes. Jika Anda ingin terbuka tentang apa yang terjadi, Anda dapat memberi tahu pengguna bahwa mereka digunakan sebagai "kenari", melalui program "adopsi awal" atau yang serupa.
Kapan Tidak Menggunakan Pengujian Canary?
Pengujian kenari bermanfaat dalam banyak kasus, namun, itu bukan jawaban yang pasti untuk semuanya (itu 42).
Inilah saatnya Anda seharusnya tidak menggunakan pendekatan kenari:
- Di lingkungan yang tidak cocok untuk penerapan berkelanjutan.
- Ketika berhadapan dengan perangkat lunak penting seperti sistem pendukung kehidupan atau reaktor nuklir.
- Sistem keuangan di mana kegagalan dapat mengakibatkan dampak ekonomi yang substansial.
Ketika Anda tidak dapat memperbarui perangkat lunak dari jarak jauh.
Bagaimana Melakukan Deployment Canary?
Sekarang, mari kita lihat langkah-langkah yang perlu Anda ambil, untuk melakukan penyebaran kenari.
- Siapkan untuk penyebaran di server pementasan.
- Kecualikan node canary melalui load balancing.
- Terapkan versi baru ke node canary.
- Uji versi baru dengan skrip pengujian otomatis.
- Hubungkan node canary ke lalu lintas dengan load balancing.
- Luncurkan pembaruan ke node produksi yang tersisa.
Dalam prakteknya, penyebaran dimulai dengan persiapan server pementasan. Periksa file konfigurasi, skrip pengujian, artefak build, dan sebagainya. Setelah itu, Anda dapat menjalankan tes otomatis atau manual, atau membiarkan server hidup dan melihat apakah semuanya berjalan dengan baik, atau apakah itu macet.
Kapan Mendorong Canary ke Produksi?
Setelah Anda menguji pembaruan canary Anda pada 5 atau 10% pengguna, dan semuanya bekerja dengan benar, Anda dapat melanjutkan untuk menggandakan atau tiga kali lipat persentase pengguna uji.
Kemudian, uji lagi, kumpulkan umpan balik dari metrik, dan setelah Anda menilai semuanya berfungsi dengan baik, sekali lagi, Anda dapat terus memperbarui 70% lingkungan produksi.
Terakhir, ulangi prosedur pengujian, dan jika semuanya berjalan lancar, luncurkan versi baru perangkat lunak ke 100% pengguna, dan, tentu saja, lanjutkan pemantauan.
Perusahaan Yang Telah Menerapkan Deployment Canary
Untuk menunjukkan kepada Anda bahwa penyebaran kenari adalah metode implementasi yang populer, kita akan melihat beberapa perusahaan yang menggunakan penyebaran kenari.
Netflix
Raksasa layanan streaming ini telah menggunakan analisis kenari otomatis dengan Kayenta sejak 2018. Ini memungkinkan pembaruan yang sangat cepat untuk lingkungan produksi Netflix. Perusahaan menyatakan bahwa metode penerapan ini telah meningkatkan produktivitas pengembang sekaligus mengurangi risiko membuat perubahan dalam lingkungan produksi mereka.
Platform media sosial ini juga telah lama menjadi penggemar penyebaran burung kenari. Pendiri dan CTO mereka, Mike Krieger, berbagi bahwa rilis kenari memastikan bahwa bug tidak terlalu merusak dan hanya memengaruhi sekelompok kecil orang.
Tahukah Anda bahwa Google Chrome memiliki versi khusus yang ditujukan untuk pengembang? Itu benar, Google Chrome Canary memungkinkan Anda menguji API platform web baru dan melihat seperti apa masa depan browser sebelum orang lain.
Microsoft
Microsoft menggunakan stafnya sendiri untuk menguji semua pembaruan produk mereka. Prosesnya sudah ada sejak Windows Vista dan Microsoft Azure. Pembaruan Windows 10 juga dilakukan menggunakan pembaruan kenari dari sistem operasi staf mereka.
Ringkasan
Pengujian Canary adalah cara yang bagus untuk memperkenalkan versi aplikasi baru dengan cepat, di lingkungan pengujian dunia nyata. Tidak hanya itu, tetapi juga memungkinkan manajemen risiko yang lebih baik dan data yang lebih dapat dilacak.
Meskipun pengujian kenari memiliki begitu banyak manfaat, itu tidak selalu menjadi solusi untuk setiap situasi. Pastikan untuk melakukan riset sebelum Anda memulai penyebaran kenari, jika tidak, itu bisa menjadi bumerang bagi Anda.