Bendera fitur - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bendera fitur

Bendera fitur dapat diimplementasikan di frontend mikro untuk memfasilitasi koordinasi pengujian dan pelepasan fitur di berbagai lingkungan. Teknik flag fitur terdiri dari memusatkan keputusan di toko berbasis Boolean, dan perilaku mengemudi berdasarkan itu. Ini sering digunakan untuk menyebarkan perubahan secara diam-diam yang dapat disembunyikan sampai saat tertentu, sambil membuka rilis baru untuk fitur baru yang seharusnya diblokir, mengurangi kecepatan tim.

Pertimbangkan contoh tim yang mengerjakan fitur micro-frontend yang akan diluncurkan pada tanggal tertentu. Fitur ini sudah siap, tetapi perlu dirilis bersama dengan perubahan pada frontend mikro lain yang dirilis secara independen. Memblokir pelepasan kedua frontend mikro akan dianggap sebagai anti-pola dan akan meningkatkan risiko saat digunakan.

Sebagai gantinya, tim dapat membuat flag fitur Boolean dalam database yang mereka berdua gunakan selama waktu render (mungkin melalui panggilan HTTP ke API Feature Flags bersama). Tim bahkan dapat merilis perubahan dalam lingkungan pengujian di mana nilai Boolean diatur True untuk memverifikasi persyaratan fungsional dan nonfungsional lintas proyek sebelum diluncurkan ke produksi.

Contoh lain dari penggunaan flag fitur adalah menerapkan mekanisme untuk mengganti nilai flag dengan menetapkan nilai tertentu melalui QueryString parameter atau menyimpan string pengujian tertentu dalam cookie. Pemilik produk dapat mengulangi fitur tanpa memblokir rilis fitur lain atau perbaikan bug hingga tanggal peluncuran. Pada tanggal tertentu, mengubah nilai flag pada database secara instan membuat perubahan terlihat dalam produksi, tanpa perlu rilis terkoordinasi lintas tim. Setelah fitur dirilis, tim pengembangan membersihkan kode untuk menghapus perilaku lama.

Kasus penggunaan lainnya termasuk merilis sistem flag fitur berbasis konteks. Misalnya, jika satu situs web melayani pelanggan dalam berbagai bahasa, fitur mungkin hanya tersedia untuk pengunjung negara tertentu. Sistem flag fitur dapat bergantung pada konsumen yang mengirim konteks negara (misalnya dengan menggunakan header Accept-Language HTTP), dan mungkin ada perilaku yang berbeda tergantung pada konteks itu.

Sementara flag fitur adalah alat yang ampuh untuk memfasilitasi kolaborasi antara pengembang dan pemilik produk, mereka mengandalkan ketekunan orang untuk menghindari degradasi yang signifikan dari basis kode. Menjaga flag tetap aktif pada beberapa fitur dapat meningkatkan kompleksitas saat memecahkan masalah, meningkatkan ukuran JavaScript bundel, dan pada akhirnya mengakumulasi utang teknis. Kegiatan mitigasi umum meliputi:

  • Unit menguji setiap fitur di belakang bendera untuk mengurangi kemungkinan bug, yang dapat memperkenalkan loop umpan balik yang lebih lama di pipeline CI/CD otomatis yang menjalankan pengujian

  • Membuat alat untuk mengukur ukuran bundel meningkat selama perubahan kode, yang dapat dikurangi selama tinjauan kode

AWS menawarkan berbagai solusi untuk mengoptimalkan pengujian A/B di edge dengan menggunakan CloudFront fungsi Amazon atau Lambda @Edge. Pendekatan ini membantu mengurangi kompleksitas mengintegrasikan solusi atau produk SaaS yang ada yang Anda gunakan untuk menegaskan asumsi Anda. Untuk informasi lebih lanjut, lihat pengujian A/B.