Aracılığıyla paylaş


Özellik yönetimine genel bakış

Geleneksel olarak, yeni bir uygulama özelliği göndermek için uygulamanın kendisini tamamen yeniden dağıtmanız gerekir. Bir özelliğin test edilmesi için genellikle uygulamanın birden çok dağıtımı gerekir. Her dağıtım özelliği değiştirebilir veya özelliği test için farklı müşterilere gösterebilir.

Özellik yönetimi, kod dağıtımından özellik yayınını ayıran ve isteğe bağlı olarak özellik kullanılabilirliği üzerinde hızlı değişikliklere olanak tanıyan modern bir yazılım geliştirme uygulamasıdır. Bir özelliğin yaşam döngüsünü dinamik olarak yönetmek için özellik bayrakları (özellik geçişleri ve özellik anahtarları olarak da bilinir) adlı bir teknik kullanır.

Özellik yönetimi, geliştiricilerin aşağıdaki sorunları çözmesine yardımcı olur:

  • Kod dal yönetimi: Şu anda geliştirme aşamasında olan yeni uygulama işlevselliğini sarmak için özellik bayraklarını kullanın. Bu tür işlevler varsayılan olarak "gizlidir". Tamamlanmamış olsa da özelliği güvenle gönderebilirsiniz ve üretimde hareketsiz kalacaktır. Koyu dağıtım olarak adlandırılan bu yaklaşımı kullanarak, her geliştirme döngüsünün sonunda tüm kodunuzu serbest bırakabilirsiniz. Belirli bir özelliğin tamamlanması için birden fazla döngü gerektirdiğinden artık birden çok geliştirme döngüsünde kod dallarını korumanız gerekmez.
  • Üretimde test etme: Üretimdeki yeni işlevlere erken erişim vermek için özellik bayraklarını kullanın. Örneğin, ekip üyelerine veya iç beta test edenlere erişimi sınırlayabilirsiniz. Bu kullanıcılar, test ortamında simülasyon veya kısmi deneyim yerine tam uygunlukta üretim deneyimi yaşar.
  • Uçuş: Yeni işlevleri son kullanıcılara artımlı olarak kullanıma açmak için özellik bayraklarını kullanın. Önce kullanıcı popülasyonunuzun küçük bir yüzdesini hedefleyebilir ve zaman içinde bu yüzdeyi kademeli olarak artırabilirsiniz.
  • Anında sonlandırma anahtarı: Özellik bayrakları, yeni işlevler yayınlamak için doğal bir güvenlik ağı sağlar. Herhangi bir kodu yeniden dağıtmadan uygulama özelliklerini açıp kapatabilirsiniz. Gerekirse, uygulamanızı yeniden derlemeden ve yeniden dağıtmadan bir özelliği hızla devre dışı bırakabilirsiniz.
  • Seçmeli etkinleştirme: Kullanıcılarınızı segmentlere ayırmak ve her gruba belirli bir özellik kümesi sunmak için özellik bayraklarını kullanın. Yalnızca belirli bir web tarayıcınızda çalışan bir özelliğiniz olabilir. Özelliği yalnızca bu tarayıcının kullanıcılarının görebilmesi ve kullanabilmesi için bir özellik bayrağı tanımlayabilirsiniz. Bu yaklaşımı kullanarak, daha sonra kod değişikliği yapmanıza gerek kalmadan desteklenen tarayıcı listesini kolayca genişletebilirsiniz.

Temel kavramlar

Özellik yönetimiyle ilgili çeşitli yeni terimler şunlardır:

  • Özellik bayrağı: Özellik bayrağı, ikili durumu açık veya kapalı olan bir değişkendir. Özellik bayrağının da ilişkili bir kod bloğu vardır. Özellik bayrağının durumu, kod bloğunun çalışıp çalışmadığını tetikler.
  • Özellik yöneticisi: Özellik yöneticisi, bir uygulamadaki tüm özellik bayraklarının yaşam döngüsünü işleyen bir uygulama paketidir. Özellik yöneticisi ayrıca özellik bayraklarını önbelleğe alma ve durumlarını güncelleştirme gibi ek işlevler de sağlar.
  • Filtre: Filtre, özellik bayrağının durumunu değerlendirmeye yönelik bir kuraldır. Olası filtreler kullanıcı gruplarını, cihaz veya tarayıcı türlerini, coğrafi konumları ve zaman pencerelerini içerir.

Özellik yönetiminin etkili bir şekilde uygulanması, birlikte çalışan en az iki bileşenden oluşur:

  • Özellik bayraklarını kullanan bir uygulama.
  • Özellik bayraklarını ve bunların geçerli durumlarını depolayan ayrı bir depo.

Kodunuzda özellik bayraklarını kullanma

Uygulamada özellik bayrakları uygulamak için temel desen basittir. Özellik bayrağı, kodunuzda koşullu bir deyimi denetleyen bir Boole durum değişkenidir:

if (featureFlag) {
    // Run the following code
}

değerini featureFlag statik olarak ayarlayabilirsiniz:

bool featureFlag = true;

Bayrağın durumunu belirli kurallara göre değerlendirebilirsiniz:

bool featureFlag = isBetaUser();

Her iki durumda da uygulama davranışını ayarlamak için koşulluyu genişletebilirsiniz:

if (featureFlag) {
    // This following code will run if the featureFlag value is true
} else {
    // This following code will run if the featureFlag value is false
}

Özellik bayrağı deposu

Özellik bayraklarını etkili bir şekilde kullanmak için bir uygulamada kullanılan tüm özellik bayraklarını dışlaştırmanız gerekir. Uygulamanın kendisini değiştirmeden ve yeniden dağıtmadan özellik bayrağı durumlarını değiştirmek için bu yaklaşımı kullanabilirsiniz.

Azure Uygulaması Yapılandırması, özellik bayrakları için merkezi bir depo sağlar. Farklı özellik bayrakları tanımlamak ve durumlarını hızlı ve güvenli bir şekilde işlemek için kullanabilirsiniz. Ardından, uygulamanızdan bu özellik bayraklarına kolayca erişmek için çeşitli programlama dili çerçeveleri için Uygulama Yapılandırması kitaplıklarını kullanabilirsiniz.

ASP.NET Core uygulamasındaki özellik bayrakları, Uygulama Yapılandırması .NET sağlayıcısı ve Özellik Yönetimi kitaplıklarının ASP.NET web uygulamanız için özellik bayraklarını uygulamak için nasıl birlikte kullanıldığını gösterir. Azure Uygulaması Yapılandırmasındaki özellik bayrakları hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Sonraki adımlar