Oleh Glend MaatitaDiperbarui
Feature flag, disebut juga feature toggle, membuat Anda bisa menyalakan dan mematikan fitur saat runtime tanpa mengubah atau men-deploy ulang kode. Panduan ini menjelaskan apa itu feature flag, kenapa tim memakainya untuk rilis dengan aman, manfaatnya, dan tools untuk mengelolanya.

Di antara banyak tools yang diandalkan developer, feature flag menonjol karena seberapa banyak kontrol dan keamanan yang ditambahkannya pada rilis. Feature flag memisahkan proses men-deploy kode dari merilis fitur, sehingga mengirim software jadi jauh lebih minim risiko.
Berikut penjelasan apa itu feature flag, kenapa tim memakainya, manfaat yang dibawanya, dan platform feature flag yang tersedia saat ini.
Feature flag, dikenal juga sebagai feature toggle, adalah teknik yang menyalakan dan mematikan fitur tertentu saat runtime, tanpa mengubah kode. Fiturnya sudah di-deploy; flag hanya menentukan apakah ia aktif.
Bayangkan Anda membangun situs e-commerce dengan mesin rekomendasi baru yang siap diuji tetapi belum siap untuk semua orang. Feature flag membuat Anda bisa mengaktifkannya hanya untuk kelompok tertentu, seperti penguji internal atau sekelompok kecil pengguna, tanpa memengaruhi orang lain.
Keunggulan inti feature flag adalah membuat tim bisa men-deploy kode secara bertahap alih-alih sekaligus, yang mengurangi risiko tiap rilis. Netflix terkenal memakai flag 'chaos monkey' yang secara acak mematikan layanan di produksi untuk menguji ketangguhan, contoh nyata kontrol yang diberikan flag.
Feature flag juga mendorong eksperimen. Karena fitur baru bisa berjalan di produksi tanpa terlihat semua pengguna, tim bisa menjalankan A/B testing dan rollout bertahap untuk mengumpulkan umpan balik nyata dan beriterasi cepat. Flag juga memungkinkan dark launching, di mana fitur di-deploy ke produksi tetapi dibiarkan nonaktif, sehingga Anda bisa menguji dampaknya di environment live tanpa mengganggu layanan, lalu menyalakannya untuk sebagian kecil pengguna terlebih dahulu.
Selain mengurangi risiko, feature flag memungkinkan kustomisasi spesifik-pengguna, di mana fitur disesuaikan untuk kelompok pengguna tertentu, yang menjadi fondasi pengalaman yang dipersonalisasi. Feature flag menyederhanakan pengujian dan quality assurance dengan mengisolasi dampak tiap fitur, dan memperpendek loop umpan balik antara developer dan pengguna, karena sebuah fitur bisa disesuaikan cepat berdasarkan respons orang. LinkedIn, misalnya, memakai feature flag untuk menguji dan merilis antarmuka yang didesain ulang.
Flag juga memperbaiki cara tim bekerja dengan kode. Fitur baru bisa di-merge ke codebase utama lebih awal dan cukup dibiarkan nonaktif sampai siap, yang menghindari branch fitur berumur panjang yang menyakitkan untuk di-merge. Dan flag memungkinkan canary testing, di mana fitur dirilis ke persentase pengguna yang terus meningkat sehingga tim bisa memantau dampaknya dan rollback seketika jika ada yang salah, seperti dilakukan Facebook saat meluncurkan fitur Reactions.
Beberapa platform menawarkan manajemen feature flag yang tangguh, dan yang tepat bergantung pada kebutuhan Anda. LaunchDarkly adalah platform feature management lengkap dengan banyak tipe flag, custom role, dependensi flag, dashboard yang intuitif, dan SDK untuk banyak bahasa, dibangun untuk menangani miliaran evaluasi per hari, meski bisa berlebihan untuk tim kecil. Split menekankan keputusan berbasis data, dengan analitik flag yang rinci, integrasi dengan tools data, dan dukungan flag multivariat, dengan konsekuensi antarmuka yang lebih kompleks bagi pemula.
Untuk tim yang ingin kontrol penuh, dua opsi open-source menonjol. Unleash sepenuhnya dapat dikustomisasi tetapi butuh self-hosting dan lebih banyak setup serta pemeliharaan, sementara Flagsmith fokus pada kesederhanaan dan menawarkan deployment cloud-hosted maupun self-hosted untuk fleksibilitas. Sebelum memilih, timbang biaya, kemudahan pakai, integrasi, dukungan, dan kemampuan spesifik yang Anda butuhkan: startup kecil sering ingin sesuatu yang sederhana dan hemat biaya, sementara organisasi besar mungkin butuh sistem yang lebih komprehensif.
Di 8grams, kami memakai feature flag untuk membantu klien merilis versi baru dengan aman, memisahkan deployment dari rilis sehingga fitur bisa di-dark-launch, diuji dengan pengguna nyata lewat canary rollout, dan dimatikan seketika jika muncul masalah. Hasilnya pengiriman lebih cepat dengan safety net bawaan.
Poin penting
Referensi & bacaan lanjutan
Feature flag, disebut juga feature toggle, adalah teknik yang menyalakan atau mematikan sebuah fitur saat runtime tanpa mengubah kode. Fiturnya sudah di-deploy, dan flag menentukan apakah ia aktif dan untuk siapa.
Tidak ada; keduanya adalah dua nama untuk teknik yang sama. Keduanya merujuk pada menyalakan atau mematikan fitur saat runtime tanpa mengubah atau men-deploy ulang kode di baliknya.
Feature flag membuat Anda bisa men-deploy kode secara bertahap alih-alih sekaligus, yang mengurangi risiko rilis. Flag juga memungkinkan pengujian di produksi, A/B testing, rollout bertahap, dan rollback seketika jika fitur baru bermasalah.
Dark launching adalah men-deploy fitur baru ke produksi tetapi membiarkannya nonaktif untuk pengguna umum. Ini membuat tim bisa menguji dampak dan fungsi fitur di environment live tanpa mengganggu layanan, sebelum menyalakannya.
Canary testing merilis fitur secara bertahap ke persentase pengguna yang meningkat. Tim memantau dampak dan performanya seiring audiens bertambah dan bisa rollback seketika jika muncul masalah, membatasi cakupan dampaknya.
Dengan memisahkan deployment dari rilis. Kode bisa di-deploy sementara fitur tetap mati, lalu diaktifkan untuk kelompok kecil dulu. Jika ada yang rusak, fitur dimatikan seketika tanpa men-deploy ulang atau rollback seluruh rilis.
Ya. Sebuah fitur bisa di-merge ke codebase utama lebih awal dan dibiarkan nonaktif di balik flag sampai siap, yang menghindari branch fitur berumur panjang yang sulit di-merge belakangan.
Pilihan umum termasuk LaunchDarkly, platform manajemen berfitur lengkap, dan Split, yang fokus pada analitik dan flag multivariat. Unleash dan Flagsmith adalah opsi open-source populer untuk tim yang ingin lebih banyak kontrol.
Ya. Unleash adalah opsi open-source yang sepenuhnya dapat dikustomisasi dan Anda self-host, dan Flagsmith adalah tool open-source yang fokus pada kesederhanaan serta menawarkan deployment cloud-hosted maupun self-hosted.
Ya. Karena sebuah flag bisa mengaktifkan fitur untuk sebagian pengguna tertentu, tim bisa menjalankan A/B testing di produksi, membandingkan variasi, mengumpulkan umpan balik pengguna nyata, dan beriterasi cepat dari hasilnya.
Ceritakan proyek Anda, kami balas dalam satu hari kerja.
Hubungi 8grams