لاب التطوير

زر التراجع ليس خطة تعافٍ: أدخل تغييرات البيانات ضمن خطة الإصدار

نشر:

6 دقائق للقراءة

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

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

افصل أربع حالات يكثر الخلط بينها

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

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

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

اكتب خريطة القراءة والكتابة

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

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

مثال افتراضي: فصل حالة الطلب إلى مرحلتين

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

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

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

النسخة الاحتياطية تحتاج تجربة وقرارًا

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

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

اجعل قرار التعافي قابلًا للتنفيذ

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

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

قائمة قبول مختصرة

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

أسئلة شائعة

هل نحتاج خطة بيانات لكل إصدار؟

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

هل يمكن اختبار الرجوع بقاعدة فارغة؟

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

هل الإصلاح الأمامي فشل لخطة التعافي؟

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

ماذا نطلب قبل التسعير؟

أرسل وصف تغيير البيانات، وقائمة القراء والكتّاب، وطريقة النشر الحالية، والأدلة المتاحة عن الاستعادة. يبدأ النطاق من هذه الاعتماديات، لا من وعد عام بأن «لدينا نسخة احتياطية».

مرجع

AWS: ضمان سلامة الرجوع أثناء النشر، تمت مراجعته في 26 أكتوبر 2026. المثال وقائمة القبول إرشادات أصلية لتحديد النطاق.

لاب التطوير

هل تحتاج إلى مساعدة في هذا المجال؟

تعرّف على خدمة البنية ككود وأتمتة النشر من لاب.