المرونة والتعافي من الكوارث

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

بنية عالية التوافر

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

Geo-redundant stores

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

تجاوز الفشل بين مخازن التكوين

من الناحية الفنية، لا يقوم تطبيقك بتنفيذ تجاوز الفشل. إنها تحاول استرداد نفس المجموعة من بيانات التكوين من متجرين لتكوين التطبيقات في وقت واحد. رتب التعليمات البرمجية بحيث يتم تحميلها من المتجر الثانوي أولا ثم المتجر الأساسي. يضمن هذا النهج أن تكون لبيانات التكوين في المتجر الأساسي الأسبقية كلما كانت متوفرة. يوضح مقتطف التعليمات البرمجية التالي كيفية تنفيذ هذا الترتيب في .NET Core:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            var settings = config.Build();
            config.AddAzureAppConfiguration(settings["ConnectionString_SecondaryStore"], optional: true)
                  .AddAzureAppConfiguration(settings["ConnectionString_PrimaryStore"], optional: true);
        })
        .UseStartup<Startup>();
    

لاحظ أن المعلمة optional مرت إلى الدالة AddAzureAppConfiguration . عند التعيين إلى true، تمنع هذه المعلمة التطبيق من الفشل في المتابعة إذا لم تتمكن الدالة من تحميل بيانات التكوين.

المزامنة بين مخازن التكوين

من المهم أن تحتوي جميع مخازن التكوين الزائدة جغرافيا على نفس مجموعة البيانات. هناك طريقتان لتحقيق ذلك:

النسخ الاحتياطي يدويا باستخدام وظيفة التصدير

يمكنك استخدام وظيفة التصدير في تكوين التطبيق لنسخ البيانات من المتجر الأساسي إلى المتجر الثانوي عند الطلب. تتوفر هذه الوظيفة من خلال كل من مدخل Azure وواجهة سطر الأوامر (CLI).

من مدخل Azure، يمكنك دفع تغيير إلى مخزن تكوين آخر باتباع الخطوات التالية.

  1. انتقل إلى علامة التبويب استيراد/تصدير، وحدد ExportApp>ConfigurationTargetحدد>>موردا.

  2. في الشفرة الجديدة التي تفتح، حدد الاشتراك ومجموعة الموارد واسم المورد لمتجرك الثانوي، ثم حدد تطبيق.

  3. يتم تحديث واجهة المستخدم بحيث يمكنك اختيار بيانات التكوين التي تريد تصديرها إلى متجرك الثانوي. يمكنك ترك قيمة الوقت الافتراضية كما هي وتعيين كل من من التسمية والتسمية إلى نفس القيمة. اختر ⁧⁩تطبيق⁧⁩. كرر ذلك لجميع التصنيفات في متجرك الأساسي.

  4. كرر الخطوات السابقة كلما تغير التكوين.

يمكن أيضا تحقيق عملية التصدير باستخدام Azure CLI. يوضح الأمر التالي كيفية تصدير كافة التكوينات من المخزن الأساسي إلى المخزن الثانوي:

    az appconfig kv export --destination appconfig --name {PrimaryStore} --dest-name {SecondaryStore} --label * --preserve-labels -y

النسخ الاحتياطي تلقائيا باستخدام وظائف Azure

يمكن أتمتة عملية النسخ الاحتياطي باستخدام وظائف Azure. إنه يستفيد من التكامل مع Azure Event Grid في تكوين التطبيق. بمجرد الإعداد، سينشر "تكوين التطبيق" الأحداث إلى "شبكة الأحداث" لأي تغييرات يتم إجراؤها على القيم الرئيسية في مخزن التكوين. وبالتالي ، يمكن لتطبيق Azure Functions الاستماع إلى هذه الأحداث والنسخ الاحتياطي للبيانات وفقا لذلك. للحصول على التفاصيل، راجع البرنامج التعليمي حول كيفية عمل نسخة احتياطية من متاجر تكوين التطبيقات تلقائيا.

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

في هذه المقالة، تعلمت كيفية زيادة التطبيق الخاص بك لتحقيق المرونة الجغرافية أثناء وقت تشغيل تكوين التطبيق. يمكنك أيضا تضمين بيانات التكوين من تكوين التطبيق في وقت الإنشاء أو النشر. لمزيد من المعلومات، راجع التكامل مع خط أنابيب CI/CD.