Latest articles
JOURNAL INDEX
ديف أوبس والبنية التحتية/2026.10.12/5 VIEWS/5 MIN READ

Infrastructure Drift: Detect and Remediate Unrecorded Production Changes

عبدالرحمن ربيع علي
Abdelrahman Rabie Ali Software Engineer & AI Builder

A practical guide to detecting infrastructure drift and safely reconciling real resources with Infrastructure as Code.

انحراف البنية التحتية: كيف تكتشف تغييرات الإنتاج غير المسجلة وتديرها؟

انحراف البنية التحتية: دليل عملي لاكتشاف تغييرات الإنتاج غير المسجلة وإدارتها

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

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

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

1. ما المقصود بانحراف البنية التحتية؟

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

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

2. كيف ينشأ الانحراف؟

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

4. تفسير الفروق وتحديد الأولوية

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

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

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

تتصل إدارة الانحراف بممارسات تشغيل أخرى؛ راجع دليل Cloud Native وDevOps لفهم البيئة التشغيلية، ودليل إدارة الأسرار في DevOps عند تقييم تغييرات الصلاحيات والمتغيرات الحساسة.

التعامل مع الحالات الحدية وخطة التحقق

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مقالات ذات صلة

رفوف خوادم تمثل البنية التحتية الفعلية التي يجب مقارنتها بالتعريف
المصدر: Unsplash — تصوير Kevin Ache
شاشة شيفرة تساعد على توضيح إدارة إعدادات البنية التحتية ككود
المصدر: Unsplash — تصوير Rob Wingate
هاتف لمراقبة التنبيهات وتغييرات البنية التحتية أثناء التشغيل
المصدر: Unsplash — تصوير Lorin Both
SHARE Share this article
عبدالرحمن ربيع علي
Written by

Abdelrahman Rabie Ali

Software Engineer & AI Builder

Full-stack software engineer and graphic designer with 4+ years building modern web applications using PHP, JavaScript, HTML, and CSS. Strong UI/UX background and advanced use of AI tools to boost development efficiency, automation, and decision-making.

Article tags

#Infrastructure as Code #IaC #Terraform #Cloud Infrastructure #إدارة البنية التحتية #Configuration Management
COMMENTS

Comments

Be the first to comment on this article.

Add your comment

Your comment appears after review.