نظرة على إدارة الميزات

تقليدياً، يتطلب شحن ميزة تطبيق جديد إعادة النشر الكامل للتطبيق نفسه. غالبًا ما يتطلب اختبار الميزة عمليات توزيع متعددة للتطبيق. قد يغير كل توزيع الميزة أو يعرض الميزة لعملاء مختلفين للاختبار.

إدارة الميزات هي ممارسة حديثة لتطوير البرامج تفصل إصدار الميزات عن توزيع تعليمة برمجية وتمكّن من إجراء تغييرات سريعة على توفّر الميزة عند الطلب. وهي تستخدم تقنية تُسمى علامات الميزات (تُعرف أيضًا باسم مفاتيح تبديل الميزات ومحوِّلات الميزات) لإدارة دورة حياة الميزة ديناميكيًا.

تساعد إدارة الميزات المطورين على معالجة المشكلات التالية:

  • إدارة فرع التعليمات البرمجية: استخدم علامات الميزات لتضمين وظائف التطبيق الجديدة قيد التطوير حالياً. هذه الوظيفة "مخفية" بشكل افتراضي. يمكنك شحن الميزة بأمان، على الرغم من أنها غير مكتملة، وستبقى غير نشطة في الإنتاج. باستخدام هذا الأسلوب، المُسمى التوزيع الداكن، يمكنك إصدار جميع التعليمات البرمجية الخاصة بك في نهاية كل دورة تطوير. لم تعد بحاجة إلى الاحتفاظ بفروع التعليمات البرمجية عبر دورات تطوير متعددة لأن هناك ميزة معينة تتطلب أكثر من دورة واحدة لإكمالها.
  • الاختبار في الإنتاج: استخدم علامات الميزات لمنح الوصول المبكر إلى وظائف جديدة في الإنتاج. على سبيل المثال، يمكنك تقييد الوصول إلى أعضاء الفريق أو اختبار بيتا الداخلي. سيختبر هؤلاء المستخدمون تجربة الإنتاج كاملة الدقة بدلاً من تجربة محاكاة أو تجربة جزئية في بيئة اختبار.
  • إصدار التقييم: استخدم علامات الميزات لطرح وظائف جديدة بشكل تزايدي للمستخدمين. يمكنك استهداف نسبة صغيرة من عدد المستخدمين أولاً وزيادة هذه النسبة تدريجياً بمرور الوقت.
  • مفتاح الإيقاف الفوري: توفر علامات الميزة شبكة أمان أصلية لإصدار وظائف جديدة. يمكنك تشغيل ميزات التطبيق وإيقاف تشغيلها دون إعادة توزيع أي تعليمة برمجية. إذا لزم الأمر، فإنه يمكنك تعطيل ميزة بسرعة دون إعادة بناء التطبيق وإعادة توزيعه.
  • التنشيط الانتقائي: استخدم علامات الميزات لتقسيم المستخدمين وتقديم مجموعة محددة من الميزات لكل مجموعة. قد يكون لديك ميزة تعمل فقط على مستعرض ويب معين. يمكنك تعريف علامة ميزة بحيث يمكن لمستخدمي هذا المتصفح فقط رؤية الميزة واستخدامها. من خلال استخدام هذا الأسلوب، يمكنك بسهولة توسيع قائمة المتصفحات المدعومة لاحقًا دون الحاجة إلى إجراء أي تغييرات في التعليمات البرمجية.

مفاهيم أساسية

فيما يلي العديد من المصطلحات الجديدة المتعلقة بإدارة الميزات:

  • علامة الميزات: علامة الميزات هي متغير مع حالة ثنائية من on أو off. تحتوي علامة الميزة أيضاً على كتلة تعليمة برمجية مقترنة. تعمل حالة علامة الميزة على تشغيل كتلة التعليمات البرمجية.
  • مدير الميزات: مدير الميزة هو حزمة تطبيقات تعالج دورة حياة جميع علامات الميزات في التطبيق. يوفر مدير الميزات أيضاً وظائف إضافية، بما في ذلك تخزين علامات الميزات مؤقتاً وتحديث حالاتها.
  • عامل التصفية: عامل التصفية هو قاعدة لتقييم حالة علامة الميزة. تتضمن عوامل التصفية المحتملة مجموعات المستخدمين وأنواع الأجهزة أو المتصفحات والمواقع الجغرافية ونوافذ الوقت.

التنفيذ الفعال لإدارة الميزات يتكون من عنصرين على الأقل يعملان بشكل منسق:

  • تطبيق يستخدم علامات الميزات.
  • مستودع منفصل يخزن علامات الميزات وحالاتها الحالية.

استخدام علامات الميزات في التعليمات البرمجية الخاصة بك

النمط الأساسي لتطبيق علامات الميزات في أحد التطبيقات بسيط. علامة الميزة هي متغيّر حالة منطقي يتحكم في عبارة شرطية في التعليمات البرمجية الخاصة بك:

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

يمكنك تعيين قيمة featureFlag بشكل ثابت:

bool featureFlag = true;

يمكنك تقييم حالة العلم استناداً إلى قواعد معينة:

bool featureFlag = isBetaUser();

يمكنك توسيع العبارة الشرطية لضبط سلوك التطبيق لأي من الحالتين:

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
}

مستودع علامة الميزة

لاستخدام علامات الميزات بشكلٍ فعالٍ، تحتاج إلى إضفاء الطابع الخارجي على جميع علامات الميزات المستخدمة في أحد التطبيقات. يمكنك استخدام هذا الأسلوب لتغيير حالات علامة الميزة دون تعديل التطبيق نفسه وإعادة توزيعه.

يقدم تكوين تطبيقات Azure مستودع مركزي لعلامات الميزات. يمكنك استخدامه لتعريف أنواع مختلفة من علامات الميزات والتعامل مع حالاتهم بسرعة وثقة. يمكنك بعد ذلك استخدام مكتبات App Configuration لأطر عمل لغات البرمجة المختلفة للوصول بسهولة إلى علامات الميزات هذه من تطبيقك.

تظهر علامات الميزة في تطبيق ASP.NET Core كيفية استخدام موفر App Configuration .NET ومكتبات إدارة الميزات معا لتنفيذ علامات الميزات لتطبيق الويب ASP.NET. لمزيد من المعلومات حول علامات الميزات في تكوين تطبيق Azure، راجع المقالات التالية:

الخطوات التالية