OpenFeature Nedir?
OpenFeature, özellik işaretlemeye yönelik açık bir standarttır ve bulut tabanlı teknolojiler kullanılarak sağlam bir özellik işaretleme ekosistemini desteklemek için oluşturulmuştur.
Özellik bayrakları nedir?
En temel durumda, özellik bayrağını çalışma zamanında kontrol edilebilen bir if/else ifadesi olarak düşünebilirsiniz. Özellik bayrakları, uygulama davranışının yeni kod dağıtılmadan değiştirilmesine izin verir.
Bu yetenek çeşitli amaçlara hizmet eder. Uzun süre çalışan özellik dallarına olan ihtiyacı azaltabilirsiniz. Devam eden çalışma işlevini son kullanıcılardan gizlerken, yine de dahili test için kullanıma sunabilirsiniz. Başlangıçta küçük bir kullanıcı alt kümesine yeni bir özellik sunarak “Canary” sürümlerini gerçekleştirebilirsiniz. A/B testi yapabilirsiniz. Kesinti yaşayan bir üretim sisteminin parçalarını güvenle bozabilirsiniz. Kullanılabilirlik, uyumluluk veya lisanslama nedenleriyle coğrafya veya IP adresi gibi kullanıcı özelliklerine dayalı olarak belirli ürün işlevlerine erişimi kısıtlayabilirsiniz.
Özellik bayrakları dinamiktir; çalışma zamanında değerlendirilirler. Az önce açıklanan kullanım durumlarının çoğu, özellik işaretlerinin bağlama duyarlı olmasını da gerektirir — işaretleme kararı, hangi kullanıcının web isteği yaptığı gibi şeyleri hesaba katmalıdır. Dahası, işaretleme kararlarının arkasındaki yapılandırmanın, herhangi bir şeyi yeniden konuşlandırmak veya yeniden başlatmak zorunda kalmadan kademeli olarak daha fazla kullanıcıya bir özelliği kullanıma sunduğunuz “Canary”yayınları gibi kullanım durumlarını desteklemek için dinamik olması gerekir.
Tüm bu gereksinimler göz önüne alındığında (yönetici kullanıcı arabirimi, denetim izleri, ortam yönetimi ve daha fazlası gibi diğerleriyle birlikte), özellik bayraklarının tam kullanımının bir özellik işaretleme sistemi gerektirdiği açıktır.
OpenFeature, çeşitli 3. taraf özellik işaretleme sağlayıcılarına uygulanabilen, paylaşılan, standartlaştırılmış bir özellik işaretleme istemcisi — bir SDK — sağlar. İster açık kaynaklı bir sistem, ister ticari bir ürün kullanıyor olun, kendi kendine barındırılan veya bulut tarafından barındırılan OpenFeature, geliştiricilerin uygulamalarında özellik işaretlemeyi kullanmaları için tutarlı, birleşik bir API sağlar.
Bunu başarmak için OpenFeature SDK, bir dizi esnek soyutlama tanımlar.
1- Değerlendirme API’sı (Evaluation API)
Değerlendirme API’si, OpenFeature SDK’nın bir uygulama yazarının etkileşimde bulunduğu parçasıdır. Geliştiricilerin özellik bayraklarını değerlendirmesine ve ortaya çıkan değerleri kontrol akışını veya uygulama özelliklerini etkilemek için kullanmasına olanak tanır. Değerlendirme API’si, davranışın özelleştirilmesine ve çeşitli araçlarla bütünleştirilmesine izin veren bir çerçeve sağlar.
2- Değerlendirme Bağlamı (Evaluation Context)
Değerlendirme bağlamı, dinamik değerlendirme için temel olarak kullanılabilecek keyfi bağlamsal veriler için bir kapsayıcıdır. Uygulama için ana bilgisayar veya tanımlayıcı gibi statik veriler genel olarak yapılandırılabilir. Bir web uygulamasındaki istemcinin IP adresi gibi dinamik değerlendirme bağlamı, bayrak değerlendirmesi sırasında dolaylı olarak yayılabilir veya açıkça geçirilebilir ve statik değerlerle birleştirilebilir.
3- Sağlayıcılar (Providers)
Sağlayıcılar, değerlendirme API’si ile kullanılan bayrak yönetim sistemi arasındaki “çeviri katmanı”dır. Sağlayıcılar, değerlendirme API’sine sağlanan bağımsız değişkenleri ilişkili işaret yönetim sistemindeki eşdeğer gösterimleriyle eşleştirmekten sorumludur. Sağlayıcılar, bir satıcı SDK’sını paketleyebilir, ısmarlama bir bayrak değerlendirme REST API’sini çağırabilir veya hatta bayrak değerlerini çözmek için yerel olarak depolanan bazı dosyaları ayrıştırabilir.
4- Kancalar (Hooks)
Kancalar, bayrak değerlendirme yaşam döngüsünün çeşitli noktalarında keyfi davranışların eklenmesine izin veren bir mekanizmadır. Kancalar, çözülmüş bir bayrak değerini doğrulama, değerlendirme bağlamına veri ekleme veya değiştirme, günlüğe kaydetme, telemetri ve izleme gibi işlevler ekleyerek OpenFeature SDK’yı genişletmenize olanak tanır.