Tombol fitur App Lifecycle Manager memungkinkan Anda mengontrol ketersediaan dan perilaku fitur dalam aplikasi, tanpa memerlukan deployment kode baru atau perubahan infrastruktur.
Anda dapat menggunakan tombol fitur dalam dua cara utama:
- Terintegrasi: Gabungkan pengelolaan tombol fitur dengan deployment aplikasi yang dikelola oleh App Lifecycle Manager.
- Mandiri: Gunakan sistem tombol fitur yang andal secara independen, meskipun infrastruktur aplikasi Anda dikelola di tempat lain, dengan memodelkan komponen sistem sebagai Unit App Lifecycle Manager.
Tombol fitur terintegrasi dengan konsep inti App Lifecycle Manager seperti unit dan peluncuran. Hal ini memungkinkan Anda mengelola konfigurasi tombol fitur bersama infrastruktur aplikasi (pendekatan terintegrasi).
Tinjau ringkasan utama App Lifecycle Manager jika Anda belum memahami Unit atau Peluncuran App Lifecycle Manager.
Mengapa menggunakan tombol fitur App Lifecycle Manager?
Saat Anda menerapkan tombol fitur dengan App Lifecycle Manager, hal ini akan memberikan beberapa manfaat untuk siklus proses pengembangan dan operasi SaaS Anda:
- Pisahkan rilis fitur dari deployment kode: Kirim kode baru ke produksi dengan fitur yang dinonaktifkan secara default. Aktifkan fitur untuk pengguna tertentu atau luncurkan secara bertahap saat siap, sehingga mengurangi risiko yang terkait dengan deployment besar.
- Tingkatkan keamanan, kecepatan, dan keandalan:
- Uji fitur dalam produksi dengan audiens terbatas (rilis canary).
- Lakukan peluncuran bertahap menggunakan kemampuan Peluncuran App Lifecycle Manager, sehingga meminimalkan dampak potensi masalah.
- Aktifkan daftar yang diizinkan dan penyesuaian tenant: Aktifkan atau nonaktifkan fitur untuk unit yang dapat mewakili tenant, layanan, atau lingkungan.
- Sederhanakan rollback: Saat Anda menonaktifkan tombol fitur, prosesnya sering kali jauh lebih cepat dan tidak terlalu mengganggu dibandingkan men-deploy versi aplikasi sebelumnya. Alur kerja ini memungkinkan Anda menonaktifkan fitur yang bermasalah tanpa melakukan rollback biner.
- Pengelolaan terpadu konfigurasi tombol fitur: Kelola definisi tombol fitur dan gunakan untuk mengonfigurasi peluncuran. Alur kerja ini memberikan keandalan operasional dengan memungkinkan Anda mengubah fungsi aplikasi dengan membuat peluncuran tombol fitur.
Cara kerja tombol fitur App Lifecycle Manager
Penggunaan tombol fitur di App Lifecycle Manager melibatkan dua aspek utama: bidang pengelolaan (menentukan dan meluncurkan tombol fitur) dan bidang data (mengakses nilai tombol fitur dalam aplikasi Anda).
Penggunaan terintegrasi dengan App Lifecycle Manager
Jika Anda menggunakan App Lifecycle Manager untuk mengelola deployment aplikasi (misalnya, men-deploy infrastruktur menggunakan Terraform Blueprints):
- Tentukan tombol fitur: Buat resource tombol fitur dalam App Lifecycle Manager, tentukan
Flag keyunik (misalnya,enable-new-dashboard) dan kaitkan dengan jenis unit. Tombol fitur boolean didukung. - Sediakan perubahan tombol fitur: Perubahan pada tombol fitur (pembuatan atau update) tidak akan aktif hingga Anda memulai peluncuran App Lifecycle Manager. Hal ini memungkinkan Anda menggunakan fitur seperti batch, pengawasan, dan pemeriksaan keamanan untuk deployment tombol fitur. Peluncuran akan memperbarui konfigurasi tombol fitur yang terkait dengan unit target.
- Akses tombol fitur dalam aplikasi: Kode aplikasi Anda, yang berjalan dalam unit yang disediakan (misalnya, dalam container di Cloud Run atau Google Kubernetes Engine), menggunakan OpenFeature SDK yang dikonfigurasi dengan penyedia
flagd. Penyedia ini terhubung ke endpoint layanansaasconfig.googleapis.com. Dengan menggunakan App Lifecycle Manager, masukkan ID unit yang diperlukan ke dalam lingkungan aplikasi Anda, sehingga SDK dapat mengambil nilai tombol fitur yang benar untuk unit tertentu tersebut.
Integrasi mendalam ini memungkinkan Anda mengelola siklus proses fitur bersama siklus proses infrastruktur. Untuk mengetahui contoh praktis, lihat Panduan memulai men-deploy tombol fitur.
Bidang pengelolaan
Anda berinteraksi dengan bidang pengelolaan untuk menentukan dan mengontrol tombol fitur. Anda dapat menggunakan Google Cloud konsol, gcloud CLI, atau App Lifecycle Manager API untuk:
- Membuat atau memperbarui tombol fitur: Untuk menentukan tombol fitur, Anda harus menentukan
Flag key, mengaitkannya dengan jenis unit, dan menetapkan jenis serta nilai default-nya. - Membuat peluncuran: Anda memulai peluncuran untuk mendistribusikan perubahan tombol fitur (pembuatan atau update) ke unit target yang termasuk dalam jenis unit tombol fitur. Peluncuran memastikan perubahan diterapkan dengan aman dan andal sesuai dengan kebijakan yang Anda konfigurasi.
Bidang data
Kode aplikasi Anda berinteraksi dengan bidang data untuk menggunakan nilai tombol fitur:
- OpenFeature SDK: Integrasikan SDK OpenFeature yang netral vendor ke dalam aplikasi Anda.
- Penyedia
flagd: Konfigurasikan OpenFeature SDK untuk menggunakan penyediaflagd. - Konfigurasi: Arahkan penyedia
flagdke endpoint layanan tombol fitur App Lifecycle Manager:saasconfig.googleapis.com:443. - Penargetan: Berikan
provider_iduntuk mengidentifikasi konfigurasi tombol fitur. Nilai ini biasanya sesuai dengan nama resource lengkap unit App Lifecycle Manager (misalnya,projects/PROJECT_ID/locations/LOCATION/featureFlagsConfigs/UNIT_ID). - Autentikasi: Penyedia menggunakan Kredensial Default Aplikasi (ADC) untuk mengautentikasi permintaan ke Google Cloud endpoint layanan secara aman. Akun layanan yang digunakan memerlukan peran Identity and Access Management
roles/saasconfig.viewer. - Evaluasi tombol fitur: Gunakan metode OpenFeature standar (
client.get_boolean_value(...)) dalam kode Anda untuk memeriksa nilai tombol fitur. Penyedia menangani pengambilan konfigurasi terbaru yang diluncurkan dari layanan.
App Lifecycle Manager menyediakan contoh dan implementasi referensi untuk berintegrasi dengan bidang data:
Jenis nilai tombol fitur
Tombol fitur App Lifecycle Manager mendukung lebih dari sekadar evaluasi boolean aktif/nonaktif standar. Anda dapat menentukan tombol fitur dengan nilai STRING, INTEGER, atau DOUBLE untuk mengontrol variabel operasional yang kompleks seperti batas runtime, parameter tema, atau batas konfigurasi.
Tidak seperti tombol fitur boolean, Anda harus menentukan tombol fitur non-boolean secara eksplisit selama pembuatan untuk menentukan kemungkinan jenis nilai yang ditampilkan.
Tombol fitur string
Tombol fitur string meneruskan ID konfigurasi langsung ke klien yang terhubung.
gcloud beta app-lifecycle-manager flags create "feature-mode" \
--key="feature-mode" \
--flag-value-type=STRING \
--location="global" \
--unit-kind="UNIT_KIND_ID" \
--variants='[{"id": "standard", "stringValue": "STANDARD"}, {"id": "advanced", "stringValue": "ADVANCED"}]' \
--evaluation-spec='{"defaultTarget": "standard"}'
Tombol fitur bilangan bulat
Tombol fitur bilangan bulat mengatur batas numerik dan batas payload yang tepat.
gcloud beta app-lifecycle-manager flags create "max-retry-count" \
--key="max-retry-count" \
--flag-value-type=INTEGER \
--location="global" \
--unit-kind="UNIT_KIND_ID" \
--variants='[{"id": "low", "integerValue": 3}, {"id": "high", "integerValue": 10}]' \
--evaluation-spec='{"defaultTarget": "low"}'
Tombol fitur ganda
Tombol fitur ganda memberikan nilai presisi tinggi yang digunakan untuk batas probabilitas atau parameter float.
gcloud beta app-lifecycle-manager flags create "sampling-rate" \
--key="sampling-rate" \
--flag-value-type=DOUBLE \
--location="global" \
--unit-kind="demo-test-unitkind" \
--variants='[{"id": "minimal", "doubleValue": 0.01}, {"id": "full", "doubleValue": 1.0}]' \
--evaluation-spec='{"defaultTarget": "minimal"}'
Menyediakan tombol fitur menggunakan peluncuran
App Lifecycle Manager memastikan perubahan atau update yang aman dalam skala besar dengan menggunakan peluncuran untuk menyediakan update tombol fitur.
Tanpa peluncuran bertahap, perubahan konfigurasi tombol fitur kecil (misalnya, mengaktifkan fitur untuk 1% pengguna) akan langsung diterapkan di semua instance aplikasi. Jika fitur ini menyebabkan regresi, masalah dapat terjadi secara bersamaan di seluruh infrastruktur Anda. Penyebaran global ini secara signifikan meningkatkan risiko dampak layanan yang meluas.
Peluncuran App Lifecycle Manager mengurangi risiko ini dengan memungkinkan distribusi perubahan tombol fitur yang bertahap dan terkontrol, sehingga membatasi potensi cakupan masalah yang tidak terduga.
Kumpulan tombol fitur
Kumpulan tombol fitur mengelompokkan beberapa tombol fitur dan memungkinkan Anda mengelolanya sebagai satu resource logis. Hal ini berguna untuk merilis fitur yang memerlukan koordinasi beberapa tombol fitur.
Pelajari kumpulan tombol fitur lebih lanjut.
Manifes
Manifes memungkinkan Anda menentukan dan mengelola tombol fitur menggunakan file JSON. Anda dapat mengirim definisi ini ke App Lifecycle Manager API, atau mengambil konfigurasi yang ada untuk membuat pengakses yang aman jenisnya untuk aplikasi Anda.
Pelajari manifes lebih lanjut.
Penargetan kompleks
Anda dapat menggunakan Common Expression Language (CEL) untuk membuat aturan penargetan yang canggih berdasarkan atribut pengguna atau permintaan untuk mengontrol secara tepat pengguna mana yang melihat fitur mana.
Pelajari penargetan kompleks lebih lanjut.
Arsitektur multi-tenant
Anda dapat menggunakan deployment multi-tenant dengan App Lifecycle Manager jika menargetkan tombol fitur ke unit atau grup unit tertentu (menggunakan label, atau tenant). Anda juga dapat menerapkan peluncuran bertahap di seluruh fleet tenant.
Pelajari arsitektur multi-tenant lebih lanjut.
Mengalokasikan tombol fitur
Tentukan alokasi (seperti eksperimental atau baseline) dan gunakan pembagian traffic untuk melakukan pengujian, atau peluncuran acak.
Pelajari alokasi tombol fitur lebih lanjut.
Langkah berikutnya
- Coba Panduan memulai men-deploy tombol fitur untuk mengintegrasikan tombol fitur dengan deployment yang dikelola App Lifecycle Manager.
- Tinjau ringkasan utama App Lifecycle Manager jika Anda baru menggunakan platform ini.