إدارة الترقيات الدورية للتطبيقات السحابية باستخدام النسخ المتماثل الجغرافي النشط في قاعدة بيانات SQL

ينطبق على: قاعدة بيانات Azure SQL

تعرف على كيفية استخدام النسخ المتماثل الجغرافي النشط في Azure SQL Database لتمكين الترقيات المتجددة لتطبيق السحابة. لأن الترقيات هي عمليات معطلة، يجب أن تكون جزءًا من تخطيط وتصميم استمرارية عملك. في هذه المقالة، نتناول طريقتين مختلفتين لتنظيم عملية الترقية ومناقشة الفوائد والمفاضلات لكل خيار. لأغراض هذه المقالة، نشير إلى تطبيق يتكون من موقع ويب متصل بقاعدة بيانات واحدة باعتباره طبقة البيانات الخاصة به. هدفنا هو ترقية الإصدار 1 (V1) من التطبيق إلى الإصدار 2 (V2) دون أي تأثير كبير على تجربة المستخدم.

عند تقييم خيارات الترقية، ضع في اعتبارك هذه العوامل:

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

قم بترقية التطبيقات التي تعتمد على النسخ الاحتياطية لقاعدة البيانات للتعافي من الكوارث

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

  1. قم بإنشاء قاعدة بيانات ثانوية في نفس منطقة Azure. راقب المرحلة الثانوية لمعرفة ما إذا كانت عملية إدخال البيانات قد اكتملت (1).
  2. قم بإنشاء بيئة جديدة لتطبيق الويب الخاص بك وأطلق عليها اسم "Staging". سيتم تسجيله في Azure DNS باستخدام عنوان URL contoso-staging.azurewebsites.net (2).

ملاحظة

لن تؤثر خطوات الإعداد هذه على بيئة الإنتاج، والتي يمكن أن تعمل في وضع الوصول الكامل.

Diagram shows the SQL Database geo-replication configuration for cloud disaster recovery.

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

  1. قم بتعيين قاعدة البيانات الأساسية إلى وضع للقراءة فقط (3). يضمن هذا الوضع أن تظل بيئة الإنتاج لتطبيق الويب (V1) للقراءة فقط أثناء الترقية، ما يمنع تباعد البيانات بين طبعات قاعدة البيانات V1 وV2.
  2. افصل قاعدة البيانات الثانوية باستخدام وضع الإنهاء المخطط (4). ينشئ هذا الإجراء نسخة متزامنة بالكامل ومستقلة من قاعدة البيانات الأساسية. ستتم ترقية قاعدة البيانات هذه.
  3. قم بتحويل قاعدة البيانات الثانوية إلى وضع القراءة والكتابة وتشغيل البرنامج النصي للترقية (5).

Diagram shows SQL Database geo-replication configuration for cloud disaster recovery that runs the upgrade script.

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

  1. قم بتنشيط عملية التبديل بين بيئات الإنتاج والتشغيل المرحلي لتطبيق الويب (6). تقوم هذه العملية بتبديل عناوين URL الخاصة بالبيئتين. يشير contoso.azurewebsites.net الآن إلى إصدار V2 لموقع الويب وقاعدة البيانات (بيئة التشغيل).
  2. إذا لم تعد بحاجة إلى الإصدار V1، الذي أصبح نسخة مرحلية بعد التبادل، فيمكنك إلغاء تشغيل بيئة التدريج (7).

SQL Database geo-replication configuration for cloud disaster recovery.

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

  1. قم بتعيين نسخة قاعدة البيانات إلى وضع القراءة والكتابة (8). يستعيد هذا الإجراء وظيفة V1 الكاملة لنسخة التشغيل.
  2. قم بإجراء تحليل للسبب الجذري وإيقاف تشغيل بيئة التقسيم المرحلي (9).

في هذه المرحلة، يعمل التطبيق بكامل طاقته، ويمكنك تكرار خطوات الترقية.

ملاحظة

لا يتطلب التراجع تغييرات DNS لأنك لم تقم بإجراء عملية مبادلة بعد.

Diagram shows SQL Database geo-replication configuration for cloud disaster recovery with the staging environment decommissioned.

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

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

قم بترقية التطبيقات التي تعتمد على النسخ المتماثل الجغرافي لقاعدة البيانات للتعافي من الكوارث

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

  • يظل التطبيق محميًا من الإخفاقات الكارثية في جميع الأوقات أثناء عملية الترقية.
  • تتم ترقية المكونات الزائدة عن الحاجة جغرافيًا للتطبيق بالتوازي مع المكونات النشطة.

لتحقيق هذه الأهداف، بالإضافة إلى استخدام بيئات تطبيقات الويب، ستستفيد من Azure Traffic Manager باستخدام ملف تعريف تجاوز الفشل بنقطة نهاية نشطة واحدة ونقطة نهاية احتياطية واحدة. يوضح المخطط التالي بيئة التشغيل قبل عملية الترقية. تمثل مواقع الويب contoso-1.azurewebsites.net وcontoso-dr.azurewebsites.net بيئة تشغيل التطبيق مع التكرار الجغرافي الكامل. تتضمن بيئة التشغيل المكونات التالية:

  • بيئة الإنتاج لتطبيق الويب contoso-1.azurewebsites.net في المنطقة الأساسية (1)
  • قاعدة البيانات الأساسية في المنطقة الأساسية (2)
  • مثيل وضع الاستعداد لتطبيق الويب في منطقة النسخ الاحتياطي (3)
  • قاعدة البيانات الثانوية التي يتم نسخها جغرافيًا في منطقة النسخ الاحتياطي (4)
  • ملف تعريف أداء مدير نسبة استخدام الشبكة مع نقطة نهاية عبر الإنترنت تُسمى contoso-1.azurewebsites.net ونقطة نهاية غير متصلة بالإنترنت تُسمى contoso-dr.azurewebsites.net

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

  1. قم بتوزيع بيئة مرحلية لتطبيق الويب في المنطقة الأساسية (6).
  2. أنشئ قاعدة بيانات ثانوية في منطقة Azure الأساسية (7). قم بتكوين البيئة المرحلية لتطبيق الويب للاتصال به.
  3. قم بإنشاء قاعدة بيانات ثانوية زائدة عن الحاجة جغرافية في منطقة النسخ الاحتياطي عن طريق نسخ قاعدة البيانات الثانوية في المنطقة الأساسية. (تُسمى هذه الطريقة بالنسخ المتماثل الجغرافي المتسلسل.) (8).
  4. قم بتوزيع بيئة مرحلية لمثيل تطبيق الويب في منطقة النسخ الاحتياطي (9) وقم بتكوينها لتوصيل قاعدة البيانات الثانوية الزائدة عن الحاجة الجغرافية التي تم إنشاؤها في (8).

ملاحظة

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

Diagram shows SQL Database geo-replication configuration for cloud disaster recovery with a fully synchronized copy of the application.

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

  1. قم بتعيين قاعدة البيانات الأساسية في بيئة التشغيل إلى وضع للقراءة فقط (10). يضمن هذا الوضع أن قاعدة بيانات الإنتاج (V1) لن تتغير أثناء الترقية، وبالتالي يمنع تباعد البيانات بين طبعات قاعدة البيانات V1 وV2.
-- Set the production database to read-only mode
ALTER DATABASE [<Prod_DB>]
SET READ_ONLY
  1. إنهاء النسخ المتماثل الجغرافي بفصل الثانوي (11). يؤدي هذا الإجراء إلى إنشاء نسخة مستقلة ولكنها متزامنة بالكامل من قاعدة بيانات الإنتاج. ستتم ترقية قاعدة البيانات هذه. يستخدم المثال التالي Transact-SQL ولكن PowerShell متوفر أيضًا.
-- Disconnect the secondary, terminating geo-replication
ALTER DATABASE [<Prod_DB>]
REMOVE SECONDARY ON SERVER [<Partner-Server>]
  1. قم بتشغيل البرنامج النصي للترقية مقابل contoso-1-staging.azurewebsites.netوcontoso-dr-staging.azurewebsites.net وقاعدة البيانات الأساسية المرحلية (12). سيتم نسخ تغييرات قاعدة البيانات تلقائيًا إلى المرحلة الثانوية.

Diagram shows SQL Database geo-replication configuration for cloud disaster recovery with database changes replicated to staging.

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

  1. قم بتنشيط عملية المبادلة بين بيئات الإنتاج والتشغيل المرحلي لتطبيق الويب في المنطقة الأساسية (13) وفي منطقة النسخ الاحتياطي (14). أصبح الإصدار 2 من التطبيق الآن بيئة تشغيل، مع وجود نسخة احتياطية في منطقة النسخ الاحتياطي.
  2. إذا لم تعد بحاجة إلى تطبيق V1 (15 و16)، فيمكنك إيقاف تشغيل بيئة التقسيم المرحلي.

Diagram shows SQL Database geo-replication configuration for cloud disaster recovery with optional decommissioning of the staging environment.

إذا لم تنجح عملية الترقية (على سبيل المثال، بسبب خطأ في البرنامج النصي للترقية)، ضع في اعتبارك أن بيئة التقسيم المرحلي في حالة غير متسقة. لاستعادة التطبيق إلى حالة ما قبل الترقية، ارجع إلى استخدام V1 للتطبيق في بيئة التشغيل. يتم عرض الخطوات المطلوبة في المخطط التالي:

  1. قم بتعيين قاعدة البيانات الأساسية في بيئة التشغيل إلى وضع للقراءة والكتابة (17). يستعيد هذا الإجراء وظائف V1 الكاملة في بيئة التشغيل.
  2. قم بإجراء تحليل السبب الجذري وإصلاح أو إزالة بيئة التقسيم المرحلي (18 و19).

في هذه المرحلة، يعمل التطبيق بكامل طاقته، ويمكنك تكرار خطوات الترقية.

ملاحظة

لا تتطلب العودة إلى الحالة السابقة إجراء تغييرات DNS لأنك لم تقم بإجراء عملية التبديل.

Diagram shows SQL Database geo-replication configuration for cloud disaster recovery with the upgrade process rolled back.

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

وتتمثل المقايضة الرئيسية في أنها تتطلب تكرارًا مزدوجًا لكل مكون من مكونات التطبيق وبالتالي تتكبد تكلفة أعلى بالدولار. كما أنها تنطوي على سير عمل أكثر تعقيدًا.

الملخص

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

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