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

النسخة السابقة من التطبيق جزء من الاستعادة فقط. استخدم سجلاً خاصاً بالإصدار ومثال توافق عملياً لتخطيط الرجوع واستعادة البيانات والتحقق من النتيجة.

في هذا المقال

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

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

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

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

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

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

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

البندالسؤال المطلوب حسمهالدليل الذي تحتفظ به
هوية الإصدارما الشفرة والإعداد المشغلان؟المراجعات ومعرّفات الحزم والبيئة المستهدفة
محفز الاستعادةأي فشل يبرر هذا الإجراء؟شرط رحلة المستخدم والإشارة وقاعدة الملاحظة والاستثناءات
سلطة القرارمن يبدأ الاستعادة أو يوقفها أو يصعّدها؟المسؤول وبديله ومسار الاتصال
النسخة المتوافقةأي نسخة تستطيع استخدام الحالة الحالية؟نتائج توافق التطبيق والمخطط والرسائل
حدود البياناتما الذي تغير منذ نشر النسخة؟حالة الترحيل والكتابات الجديدة ونقاط الاستعادة المدعومة
الآثار الخارجيةماذا حدث خارج التطبيق؟مراجع المعاملات والرسائل ومسؤول المطابقة
الإجراء والوصولهل يستطيع المسؤول تنفيذ العملية؟دليل تشغيل بإصدار معلوم وصلاحيات وسجل تجربة
القبولما الذي يثبت عودة التشغيل المفيد؟رحلات المستخدم وفحوص السجلات والإشارات ذات الصلة
التواصلمن يحتاج تحديثاً ومتابعة؟المستلمون ومسؤول أثر المستخدم وسجل الحادث

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

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

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

النسخةالقراءة والسلوكالقيم الجديدة التي تنشئهاحدود الرجوع
A: الأصليةتفهم open وclosed فقطالحالات الأصليةلا تتعامل مع سجلات تستخدم awaiting_customer
B: المهيأةتتعامل مع الحالات الأصلية والجديدة بصورة صحيحةالحالات الأصلية مع الحفاظ على القيم الجديدة الموجودةتتطلب العودة إلى A التأكد من غياب أي حالة غير متوافقة
C: المفعلةتتعامل مع الحالات الأصلية والجديدة بصورة صحيحةيمكنها أيضاً إنشاء awaiting_customerB مسار عودة مرشح؛ A غير متوافقة بعد وجود القيم الجديدة

قبل تفعيل C، تحقق من امتلاك كل جهة تقرأ البيانات السلوك المطلوب، بما فيها العمال الخلفيون والتصدير الدوري ومستهلكو الرسائل المحتفظ بها. اكتمال جزء من نشر التهيئة لا يكفي. يشرح مقال AWS عن سلامة الرجوع هذا الفصل بين التهيئة والتفعيل وخطر تغييرات البروتوكول غير المتوافقة بين النسخ.

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

تضيف تغييرات قواعد البيانات قيوداً أخرى مثل أقفال المخطط، وسلوك التطبيق، واكتمال الترحيل، وإمكان عكس تحويل البيانات. يوصي دليل AWS لتغييرات المخطط بمعالجة التوافق بين النسخ القديمة والجديدة. وجود أمر باسم «ترحيل عكسي» لا يثبت أنه يحافظ على كل سجل مهم أو يعيد معنى البيانات الذي تغير.

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

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

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

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

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

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

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

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

أحضر الإصدار وتغيير البيانات وطريق العودة المقترح إلى مراجعة DevOps والاستعادة. قد تتضمن خطط الاستضافة والتشغيل أعمال نسخ احتياطي أو استعادة محددة؛ راجعها أولاً. وعندما يتطلب التوافق تغييراً في التطبيق، ضمّن هذا العمل صراحة بدلاً من الوعد بأن أداة النشر وحدها تستطيع معالجة المشكلة بكل اعتمادياتها.

ناقش موقعك أو متجرك أو تطبيقك أو مشروع الذكاء الاصطناعي بالعربية أو الإنجليزية. نتفق على النطاق قبل بدء العمل.

احجز مكالمة مجانية لتحديد النطاققارن الخدمات والأسعار