Tek başına shipleyen geliştiriciler için

Feature Flag Yazılımı, Abartısız Seçildi

Feature flag yazılımlarını solo bir geliştiricinin ya da küçük bir ekibin gerçekten ihtiyacına göre karşılaştır, sonra bayrağın arkasına alınmaya değer bir proje planla. Ücretsiz, kayıt gerekmez.

Gece karanlık bir geliştirici masası; üzerinde kod ve bir feature flag paneli gösteren dizüstü bilgisayar ve monitörler
İnsanlar bunu neden kullanıyor

Feature flag'in yaptığı dört iş

Karanlıkta yayınla, sonra aç

Yarım kalan işi bir flag'in arkasında main'e birleştir. Kodu deploy etmek ile özelliği yayına almak artık aynı olay olmak zorunda değil, cuma günkü merge'ler de daha az korkutucu olur.

Kademeli yayına al

Özelliği önce kendin için aç, sonra kullanıcıların yüzde 5'i için, sonra herkes için. Hata oranı yükselirse yüzde 5'te durursun, herkesten özür dilemek zorunda kalmazsın.

Saniyeler içinde kill switch

Sorunlu bir üçüncü taraf entegrasyonu ya da yavaş bir sorgu panelden kapatılabilir. Rollback yok, yeniden deploy yok, gece 3'te açılan bir hotfix dalı yok.

Gerçek kullanıcılarla test et

İki varyant sun, tek bir metriği ölç, kazananı tut. Bazı araçlar deneyi kutudan çıkarır, bazıları bunu analitik yığınına bırakır.

Karşılaştırma

Dört araç, dürüst farklar

Önce barındırma modeline ve lisansa göre seç. Fiyatlar sık değişiyor, taahhüt etmeden önce her sağlayıcının sayfasında limitleri doğrula.

KriterLaunchDarklyPostHogGrowthBookUnleash
LisansTescilliMITMITApache
Kendi sunucuda barındırmaHayırEvetEvetEvet
Ücretsiz katmanEvet, kullanımla sınırlıEvet, ayda 1 milyon flag isteğiBulutta evet, kendi sunucunda ücretsizKendi sunucunda ücretsiz
Yerleşik deneylerEvetEvet, buluttaEvetSınırlı
En uygun olduğu durumYönetilen kurumsal ürün isteyen ekiplerÜrün analitiği de isteyen ekiplerA/B testine önem veren ekiplerVeri egemenliği isteyen ekipler
Kullanım senaryosu

Riskli bir özelliğin yokken araç kurma

Sık yapılan hata, bayraklanacak bir şeyi olmayan projeye feature flag yazılımı kurmaktır. Flag'in değeri, herkese göndermekte tereddüt edeceğin bir değişiklik olduğunda ortaya çıkar: bir ödeme akışı, bir veri migrasyonu, öngörülemeyen maliyeti olan bir yapay zeka özelliği. Bu değişikliği adlandıramıyorsan, şimdilik ortam değişkenindeki bir boolean yeterli. whatshouldibuildnext.com'daki üretici kaba bir fikri; önerilen stack'i ve gerçek risk taşıyan bir iki özelliği içeren bir spec'e çevirir, böylece bir sağlayıcı seçmeden önce neyi flag'in arkasına koyacağını bilirsin.

  • Ücretsiz, istemci tarafında, kayıt yok
  • Göndermesi riskli özellikleri adlandırır
  • Flag SDK'nı destekleyen bir stack önerir
Üreteci dene
Loş bir odada klavye üzerinde eller, ekranda bir kod farkı
Barındırma

Kendi sunucunda ya da hosted: daha küçük yükü seç

Açık kaynak feature flag araçları lisans açısından ücretsiz, ama zaman açısından değil. Kendi sunucunda barındırmak, yedeklenecek bir veritabanı, canlı tutulacak bir servis ve takip edilecek bir güncelleme yolu demek; üstelik üretim kodun istek anında buna bağımlı hale geliyor. Hosted araçlar bu yükü alır ve ücretsiz katmanları çoğu side project için yeterince cömert. Kendi sunucunu ancak veri ikameti ya da istek başına maliyet zorlarsa seç, 'daha indie hissettirdiği için' değil. Hangisini seçersen seç, seçimin geri alınabilir kalması için OpenFeature'a karşı kod yaz.

  • Hosted: sunucu yok, kullanıma dayalı fiyat
  • Kendi sunucunda: istek faturası yok, uptime senin
  • OpenFeature sağlayıcıyı değiştirilebilir tutar
Dizüstü bilgisayarın yanında, iki yola ayrılan bir yayın planı çizili bir defter
Başlangıç

Sıfırdan bayraklı bir özelliğe

  1. 1

    Riskli değişikliği adlandır

    Yayınlanırsa seni bozabilecek tek özelliği seç. İlk flag'in bu olsun, yirmisi değil.

  2. 2

    Ücretsiz katmanla başla

    Bir hesap aç ya da açık kaynak imajı yerelde çalıştır, bir SDK anahtarı al ve bir dalda tek bir flag'i bağla.

  3. 3

    Varsayılanı kapalı yap

    Güvenli davranışı yedek olarak ayarla, böylece başarısız bir flag sorgusu tamamlanmamış kodu asla açığa çıkarmasın.

  4. 4

    Aşamalı yayına al

    Önce kendin, sonra küçük bir yüzde, sonra herkes. Her adım arasında hataları ve gecikmeyi izle.

  5. 5

    Flag'i sil

    Özellik yüzde 100'de ve kararlıyken flag'i ve ölü kod yolunu tek bir pull request'te kaldır.

SSS

Sık sorulan sorular

Feature flag yazılımı nedir?
Kod yollarını yeniden deploy etmeden çalışma zamanında açıp kapatmanı sağlayan bir araçtır. Riskli bir değişikliği flag'e sarar, karanlıkta yayınlarsın, sonra kendin, kullanıcıların bir yüzdesi ya da herkes için açarsın ve bozulursa anında kapatırsın.
Solo bir side project'te feature flag yazılımına ihtiyacım var mı?
Genellikle ilk günden hayır. Ortam değişkenindeki bir boolean çoğu işi görür. Kullanıcıya özel hedefleme, kademeli yayın ya da bir sunucuya dokunmadan çevirebileceğin bir kill switch gerektiğinde gerçek bir araca başvur.
Ücretsiz bir feature flag aracı var mı?
Evet. LaunchDarkly, PostHog, GrowthBook, Flagsmith ve Statsig ücretsiz katmanlar sunuyor; Unleash, GrowthBook, Flagsmith ve PostHog ise kendi sunucunda çalıştırabileceğin açık kaynak sürümlere sahip. Limitler ve fiyatlar değişiyor, bağlanmadan önce her fiyat sayfasını kontrol et.
Kendi sunucumda mı barındırmalıyım, yoksa hosted bir servis mi kullanmalıyım?
Hosted, yamalanacak bir sunucu olmaması ve flag'lerin senin yerine değerlendirilmesi demek. Kendi sunucunda ise istek başına fatura yok ve veriyi tamamen sen kontrol edersin, ama veritabanı ve uptime sana kalır. Bir side project için hosted ücretsiz katmanlar genellikle daha az iş demek.
OpenFeature nedir, önemi var mı?
OpenFeature, flag değerlendirmesi için satıcıdan bağımsız bir API'dir. Buna göre kod yazarsan sağlayıcıyı sonra değiştirmek, her flag çağrısını yeniden yazmak yerine bir sağlayıcı eklentisini değiştirmek demek olur. Vendor kilidine karşı ucuz bir sigorta.
Eski flag'lerin birikmesini nasıl önlerim?
Her flag'e oluştururken bir sahip ve bir kaldırma tarihi ver. Birkaç hafta boyunca yüzde 100'de kalan bir flag'i teknik borç say: flag'i ve ölü kod dalını aynı pull request'te sil.
Flag'lerle pratik yapmak için ne inşa etmeliyim?
Herkese yayınlamaya çekineceğin en az bir özelliği olan bir şey. whatshouldibuildnext.com'daki üretici, riskli bir iki özellik içeren küçük bir projeyi kapsamlandırıyor; bu da kodu bir flag'e sarmak için gerçek bir neden veriyor.

Bayraklanmaya değer bir şey kapsamlandır

Ücretsiz spec üreteci, istemci tarafında, kayıt yok. Özellikleri ve önerilen stack'i al, sonra flag aracını seç.