Dipublikasikan: 3 April 2025
Saat tiba waktunya untuk meluncurkan fitur baru di Chrome, ada banyak pemeriksaan dan keseimbangan untuk memastikan fitur berfungsi, mematuhi kebijakan, dan andal. Salah satu keseimbangan tersebut adalah eksperimen Finch. Jangan biarkan bagian "eksperimen" dari namanya membuat Anda berpikir bahwa eksperimen ini tidak aman. Justru sebaliknya. Peluncuran Finch membantu kami menambahkan fitur yang berpotensi menyebabkan masalah kompatibilitas dengan cara yang aman, karena memungkinkan kami menonaktifkan fitur dengan cepat jika kami mengalami masalah yang tidak terduga. Artikel ini menjelaskan cara dan alasan kami menggunakan Finch untuk beberapa rilis fitur di Chrome.
Umumnya, mengaktifkan fitur di Chrome berarti mengalihkan boolean dari nonaktif ke aktif di dalam Chrome. Jika fitur baru "diluncurkan", artinya boolean ini memiliki status default yang diubah menjadi "aktif" untuk semua pengguna. Ada beberapa cara untuk melakukannya:
- Mengaktifkan fitur "dalam kode": ini berarti file yang dapat dieksekusi Chrome itu sendiri memiliki setelan yang diaktifkan secara default.
- Mengaktifkan fitur "oleh Uji Coba Origin": Sistem uji coba Origin adalah cara bagi situs tertentu untuk mengikutsertakan semua pengguna Chrome dalam eksperimen, yang mengaktifkan fitur tertentu hanya di situs tersebut.
- Mengaktifkan fitur "menggunakan Finch": Chrome mengambil file konfigurasi dari server secara berkala, dan file ini dapat berisi petunjuk untuk mengaktifkan atau menonaktifkan fitur.
- "Finch kill switch": kebalikan dari mengaktifkan "menggunakan Finch". Dalam hal ini, fitur diaktifkan "dalam kode", tetapi kemudian dinonaktifkan menggunakan sistem Finch, biasanya karena masalah yang terdeteksi setelah peluncuran
Kasus penggunaan Finch
Topik postingan blog ini adalah Finch, jadi kita tidak akan membahas lebih lanjut cara mengaktifkan "dalam kode" atau "uji coba origin". Namun, Finch memiliki beberapa kasus penggunaan yang menarik.
Menguji pada sekelompok kecil pengguna (Pengujian A/B)
Sering kali, Finch digunakan untuk melakukan "pengujian A/B" pada fitur atau pengoptimalan. Dalam hal ini, fitur diaktifkan untuk sebagian kecil pengguna, sehingga data dapat dikumpulkan tentang perbedaan performa, perilaku, atau penggunaan saat fitur diaktifkan versus dinonaktifkan.
Contoh pengujian A/B adalah saat kami meluncurkan Dekode gambar spekulatif. Ini adalah peningkatan performa yang tidak akan terlihat oleh developer atau pengguna, selain menyebabkan Chrome memuat halaman lebih cepat. Namun, untuk memastikan tidak ada hal yang tidak terduga terjadi, dan juga agar dapat mengukur dampak performa secara akurat, kami menggunakan Finch untuk melakukan pengujian A/B.
Menonaktifkan fitur yang bermasalah
Untuk keamanan produk dan pengalaman pengguna, Chrome dapat menggunakan sistem Finch untuk menonaktifkan fitur bermasalah yang telah diaktifkan "dalam kode" dari jarak jauh. Misalnya, jika fitur diaktifkan secara default, tetapi masalah hanya muncul setelah Chrome mencapai status Stabil, kami memerlukan cara untuk menonaktifkan fitur tersebut dengan cepat agar pengguna dan bisnis kembali ke status aman. Hal ini dapat diperlukan jika ada bug yang belum ditemukan dalam fitur, atau jika fitur tersebut kebetulan merusak situs yang ada karena alasan yang tidak terduga.
Mengaktifkan fitur berisiko dengan cara yang lebih aman
Untuk sebagian besar fitur yang diluncurkan Chrome, risikonya kecil, karena kami dapat menguji dan memverifikasi bahwa kode baru berfungsi di semua situs.
Namun, terkadang meluncurkan fitur bisa sangat berisiko, karena masalah kompatibilitas yang tidak diketahui atau interaksi rumit lainnya. Dalam hal ini, sistem Finch dapat digunakan untuk benar-benar mengaktifkan fitur, bukan hanya menyimpannya sebagai tombol nonaktif.
Misalnya, "relaksasi" parser HTML adalah perubahan yang terkait dengan fitur pilih yang dapat disesuaikan yang memungkinkan lebih banyak konten daripada sebelumnya untuk ditempatkan di dalam elemen <select>
. Karena perubahan ini dapat merusak situs yang ada, kami perlu meluncurkannya dengan hati-hati.
Mengaktifkan fitur menggunakan Finch dapat lebih aman daripada menggunakan Finch untuk menghapusnya, karena Finch tidak menjangkau 100% pengguna karena berbagai alasan. Misalnya, beberapa pengguna perusahaan memiliki kebijakan yang melarang konfigurasi Finch sepenuhnya. Pengguna tersebut akan tetap berisiko jika fitur diaktifkan dalam kode, lalu dinonaktifkan menggunakan Finch, karena pengguna tersebut tidak akan menerima setelan Finch, dan akan terus mengaktifkan fitur tersebut. Dengan mengaktifkan fitur menggunakan Finch, kami dapat menjamin kemampuan untuk menonaktifkannya untuk semua pengguna jika terjadi keadaan darurat.
Bagaimana cara memeriksa apakah Anda berada dalam eksperimen Finch?
Hal ini sulit dilakukan pengguna secara langsung. Cara yang direkomendasikan adalah menghubungi engineer Chrome (biasanya dalam konteks bug Chromium) dan mengirimkan "daftar variasi" Anda kepada mereka. Ini adalah daftar versi kode khusus dari semua setelan Finch untuk browser tertentu. Data ini dapat diambil dengan mudah:
- Buka
chrome://version
- Salin seluruh daftar teks (ya, daftar ini bisa cukup panjang) yang tercantum di samping "Variasi Aktif".
- Tempelkan teks tersebut ke dalam file teks (misalnya,
variations.txt
) dan lampirkan ke bug.
Dengan daftar variasi ini, engineer Chrome dapat mendekode daftar dan melihat fitur mana yang diaktifkan atau dinonaktifkan di browser Anda.
Apa yang terjadi saat eksperimen Finch mencapai 100% dan siap digunakan?
Setelah yakin bahwa eksperimen kami "berhasil", dan fitur yang dimaksud tidak menimbulkan risiko bagi developer atau pengguna, kami selalu mengaktifkan fitur tersebut "dalam kode". Pada tahap ini, Anda dapat mengakhiri tanggal konfigurasi Finch, sehingga konfigurasi tersebut berhenti memengaruhi browser setelah versi tempat fitur diaktifkan dalam kode.