İçeriğe geç
parazade

Feature Flag Nedir?

Yayın: · Son güncelleme:

Feature Flag Nedir? Kısaca

Feature flag (özellik bayrağı), bir yazılım özelliğini kodu yeniden dağıtmadan açıp kapatmayı sağlayan yapılandırma anahtarıdır. Yeni özellikleri önce küçük bir kullanıcı grubuna açmak ve sorun çıkarsa hemen kapatmak için kullanılır.

Feature Flag nedir?
İçindekiler
  1. Feature flag nedir?
  2. Hangi işlerde kullanılır?
  3. Riskleri nelerdir?

Feature flag nedir?

Feature flag, kodun içine yerleştirilmiş bir açma-kapama düğmesidir. Yeni özellik canlı ortama gönderilir ama bayrak kapalıyken kullanıcılar onu görmez. Bayrak bir yönetim panelinden açıldığında özellik, yeni bir sürüm yayınlamaya gerek kalmadan devreye girer.

Basit hâliyle bir if koşuludur: "yeni_odeme_ekrani açıksa yeni ekranı göster, değilse eskisini". Gücü, bu koşulun kod dışından yönetilebilmesinden gelir.

Hangi işlerde kullanılır?

En yaygın kullanım kademeli yayındır. Varsayımsal bir örnek: bir e-ticaret sitesi yeni ödeme ekranını önce kullanıcıların yüzde 5'ine açıyor. Hata oranı ve dönüşüm normal seyrederse oran yüzde 25'e, sonra yüzde 100'e çıkarılıyor. Sorun görülürse bayrak kapatılır ve herkes birkaç saniye içinde eski ekrana döner.

Başka kullanım alanları da vardır. A/B testlerinde iki sürüm farklı gruplara gösterilir. Yalnız iç ekip ya da beta kullanıcıları için özellik açılabilir. Aşırı yük anında ağır bir özelliği geçici olarak kapatmak da mümkündür.

Riskleri nelerdir?

Bayraklar zamanla birikirse kod karmaşıklaşır. Kimsenin hatırlamadığı onlarca açık-kapalı koşul, test edilmesi gereken kombinasyon sayısını katlar ve teknik borç yaratır. Özellik herkese açıldıktan sonra bayrağı ve eski kodu silmek, işin ayrılmaz bir parçası olmalıdır.

Küçük projelerde bir yapılandırma dosyası yeterlidir. Büyüyen ekipler LaunchDarkly, Unleash ya da Flagsmith gibi bayrak yönetim araçlarını tercih eder. Her bayrağa bir sahip ve bir bitiş tarihi yazmak, temizliği unutmamanın pratik yoludur.

Sıkça Sorulan Sorular

Feature flag ile A/B testi aynı şey mi?

Aynı değildir ama birlikte kullanılır. Feature flag teknik bir açma-kapama mekanizmasıdır. A/B testi ise iki seçeneği karşılaştırıp hangisinin daha iyi sonuç verdiğini ölçen bir deney yöntemidir ve çoğu zaman bayraklarla uygulanır.

Feature flag kullanmak rollback ihtiyacını ortadan kaldırır mı?

Bayrağın arkasındaki özellik için büyük ölçüde evet, bayrağı kapatmak hızlı bir geri dönüş sağlar. Ancak veritabanı değişikliği gibi bayrakla kontrol edilmeyen sorunlarda yine rollback gerekebilir.

İlgili terimler

Deploy(Deployment)Deploy (deployment), yazılımın hazırlanan sürümünün bir sunucuya ya da platforma kurularak çalışır ve erişilebilir hâle getirilmesidir. Türkçede dağıtım, yayına alma ya da canlıya alma olarak geçer.RollbackRollback, bir değişikliği geri alarak sistemi önceki çalışan durumuna döndürme işlemidir. Yazılım yayınlarında hatalı sürümü geri çekmek, veritabanlarında ise yarım kalan bir işlemi iptal etmek için kullanılır.A/B Testi(A/B Testing)A/B testi, bir ürünün, sayfanın ya da mesajın iki versiyonunu kullanıcıları rastgele iki gruba ayırarak karşılaştıran kontrollü deney yöntemidir. Hangi versiyonun belirlenen bir metrikte daha iyi sonuç verdiğini istatistiksel olarak değerlendirmeye yarar.Teknik Borç(Technical Debt)Teknik borç (technical debt), yazılımda hız kazanmak için seçilen kolay ya da geçici çözümlerin, ileride kodu değiştirmeyi zorlaştırarak ek iş ve maliyet doğurmasıdır. Tıpkı finansal borç gibi faizi vardır ve ödenmezse büyür.Özellik(Feature)Özellik (feature), makine öğrenmesinde her bir örneği tanımlayan ve modelin tahmin yaparken girdi olarak kullandığı ölçülebilir nitelik ya da değişkendir. Örneğin ev fiyatı tahmininde metrekare, oda sayısı ve konum birer özelliktir.Raporlama Aracı(Reporting Tool)Raporlama aracı, veritabanı, e-tablo ya da uygulamalardan gelen verileri toplayıp tablo, grafik ve gösterge panoları hâlinde sunan yazılımdır. Satış, finans ve operasyon verilerinin düzenli takibi için kullanılır.