DriGitScale: Drift-Aware GitOps for Consistency-Aware Predictive Autoscaling in Kubernetes
تُعد DriGitScale إطار عمل GitOps مدركاً للانحراف (drift-aware) لبيئات Kubernetes، حيث تعمل على تعزيز استقرار القياس التلقائي واتساق النشر من خلال صياغة قرارات القياس كمسألة إدارة اتساق تُقيّم بشكل مشترك انحرافات التنبؤ والموارد والتهيئة، مما يقلل من إجراءات القياس غير الضرورية مع الحفاظ على استجابة تنافسية عبر ظروف أعباء العمل المتنوعة.
في البنية التحتية الشاسعة وغير المرئية للإنترنت الحديث، لا تعمل التطبيقات على أجهزة فردية ثابتة، بل تعيش في بيئات ديناميكية قائمة على السحابة، حيث تبدأ آلاف الوحدات البرمجية الصغيرة والمستقلة وتتوقف وتتحرك باستمرار للحفاظ على سير الخدمات بسلاسة. إن إدارة هذه الأنظمة تشبه قيادة أوركسترا ضخمة حيث يغير الموسيقيون آلاتهم وإيقاعهم في كل ثانية. وللتعامل مع ذلك، يستخدم المهندسون نظامًا يُسمى "كوبيرنيتيس" (Kubernetes)، والذي يعمل بمثابة المايسترو، حيث يقوم تلقائيًا بتعديل عدد وحدات البرمجيات التي تعمل بناءً على مدى انشغال النظام. فعندما تزداد حركة المرور بشكل مفاجئ، يضيف النظام المزيد من الوحدات؛ وعندما تهدأ، يقوم بإزالتها. ويُعرف هذا التعديل التلقائي باسم "التحجيم التلقائي" (autoscaling). ولسنوات طويلة، كان الهدف هو التنبؤ بتغيرات حركة المرور هذه قبل حدوثها، باستخدام نماذج رياضية لتخمين المستقبل وإعداد الموارد مسبقًا. ومع ذلك، يشير نهج جديد إلى أن مجرد التخمين الدقيق للمستقبل ليس كافيًا للحفاظ على استقرار النظام.
لقد اقترح باحثون من جامعة حلوان، التي أصبحت الآن جامعة العاصمة في مصر، طريقة جديدة لإدارة هذه الأنظمة تُسمى "DriGitScale". ويتحدى عملهم الاعتقاد الراسخ منذ فترة طويلة بأن التنبؤ الأكثر دقة هو الشيء الوحيد الذي يهم لضمان التشغيل السമوح. فقد وجدوا أنه حتى عندما يتنبأ نموذج حاسوبي بدقة بحدوث طفرة في حركة المرور، يمكن للنظام أن يصبح غير مستقر إذا لم تتطابق الموارد الفعلية المتاحة مع الخطة، أو إذا انحرفت التعليمات الخاصة بكيفية ظهور النظام عن الواقع. ولحل هذه المشكلة، بنى الفريق إطار عمل يعامل التحجيم التلقائي ليس فقط كلعبة تخمين، بل كعملية تحقق من الاتساق. لقد صمموا نظامًا يقارن باستمرار بين ثلاثة أشياء مختلفة: ما تنبأ به الحاسوب بحدوثه، وما يحدث بالفعل الآن، وما تقول تعليمات النظام الرسمية بوجوب حدوثه.
الفكرة الجوهرية وراء "DriGitScale" هي أن قرار التحجيم يجب ألا يُتخذ إلا إذا اتفقت جميع هذه الرؤى المختلفة للنظام. في الماضي، كانت العديد من الأنظمة تستجيب فورًا للتنبؤ، حيث تضيف أو تزيل الموارد بمجرد أن تقترح توقعات معينة حدوث تغيير. وقد أدى ذلك غالبًا إلى دورة فوضوية حيث يبالغ النظام في رد فعله تجاه التقلبات الصغيرة، فيضيف موارد كثيرة جدًا ثم يزيلها بسرعة كبيرة، وهو سلوك يُعرف باسم "التذبذب" (oscillation). ويقدم الأسلوب الجديد طبقة "مدركة للانحراف" (drift-aware). فقبل أن يتصرف النظام بناءً على تنبؤ ما، فإنه يتحقق من وجود "انحراف"، وهو ببساطة الفجوة بين ما كان متوقعًا، وما هو واقعي، وما هو مخطط له. وإذا كانت الفجوة كبيرة جدًا، يفترض النظام أن التنبؤ قد يكون مضللاً أو أن البيئة فوضوية للغاية بحيث لا يمكن الوثوق بتغيير سريع، لذا فهو ينتظر. وهذا يمنع النظام من إجراء تعديلات غير ضرورية تهدر الطاقة وتربك البرمجيات.
ولاختبار هذه الفكرة، أجرى الباحثون تجارب باستخدام بيانات من العالم الحقيقي من ناسا (NASA) وويكيبيديا (Wikipedia)، بالإضافة إلى بيانات اصطناعية مصممة لتكون صاخبة وغير متوقعة للغاية. وقارنوا طريقتهم الجديدة بالأنظمة القديمة التي تعتمد فقط على دقة التنبؤ. وأظهرت النتائج فرقًا واضحًا؛ فعندما كان النظام الجديد نشطًا، انخفض عدد التغييرات غير الضرورية في النظام بشكل كبير. فعلى سبيل المثال، في الاختبارات التي استخدمت بيانات ناسا، انخفض عدم استقرار النظام من مستوى مرتفع قدره 0.1315 إلى 0.0097 فقط عند تشغيل فحص الانحراف. وهذا يعني أن النظام توقف عن إجراء تعديلات محمومة وفائضة واستقر في إيقاع أكثر هدوءًا وموثوقية. ومن المثير للاهتمام أن الباحثين وجدوا أن هذا الاستقرار ظل قائمًا حتى عندما استخدموا نماذج تنبؤ بسيطة وأقل قوة. وهذا يشير إلى أن سر استقرار النظام لا يكمن بالضرورة في امتلاك أكثر الأدمغة تعقيدًا لتخمين المستقبل، بل في امتلاك فحص دقيق لضمان أن التخمين منطقي في الواقع الحالي.
كما يدمج إطار العمل طريقة تُسمى "GitOps"، وهي طريقة لإدارة تعليمات النظام عن طريق تخزينها في مكتبة خاضعة للتحكم في الإصدارات، بشكل مشابه لكيفية حفظ الكتاب لمسودات مستنداته. وفي هذا الإعداد، يجب أن يُكتب أي تغيير في عدد الوحدات البرمجية التي تعمل أولاً كتعليمات رسمية في هذه المكتبة. ثم تقوم أداة منفصلة بقراءة تلك التعليمات وتحديث النظام الفعلي ليتطابق معها. وهذا يضمن أن النظام الفعلي الذي يعمل لا ينحرف أبدًا عن الخطة الرسمية. ومن خلال الجمع بين هذا التسجيل الصارم والتدقيق في الانحراف، يخلق "DriGitScale" حلقة مغلقة حيث يتحقق النظام باستمرار من أن تنبؤاته، وأداءه الفعلي، وخططه الرسمية، كلها متوافقة. وإذا لم تكن كذلك، فإن النظام يتوقف وينتظر الوضوح بدلًا من التصرف بناءً على الاندفاع.
تخلص الدراسة إلى أنه لكي تظل أنظمة السحابة مستقرة، يجب أن تتطلع إلى ما وراء دقة توقعاتها. لقد أثبت الباحثون أنه من خلال التحقق من صحة القرارات مقابل اتساق النظام بأكمله، تمكنوا من تقليل عدد إجراءات التحجيم بشكل كبير مع الاستمرار في الاستجابة بسرعة كافية للتعامل مع طفرات حركة المرور الحقيقية. ووجدوا أن مستوى متوسط من الحساسية، يتم ضبطه عند عتبة محددة، قدم أفضل توازن بين البقاء هادئًا والاستجابة بسرعة. لا يتطلب هذا النهج استبدال أدوات التنبؤ الموجودة، بل يضيف طبقة من الحكم التي تصفي الضجيج. وتشير النتائج إلى أن مستقبل الحوسبة السحابية الموثوقة لا يكمن في التنبؤ بالمستقبل بشكل مثالي، بل في ضمان فهم اللحظة الحالية بوضوح قبل اتخاذ أي إجراء. ومن خلال التركيز على الاتساق بدلاً من مجرد التنبؤ، يصبح النظام أكثر قوة، مستخدمًا موارد أقل ومتجنبًا الارتباك الناتج عن التغيير المستمر وغير الضروري.
ملخص تقني: DriGitScale – نظام GitOps المدرك للانجراف لضمان الاتساق في القياس التلقائي التنبؤي في Kubernetes
1. بيان المشكلة
بينما تقدمت عمليات القياس التلقائي التنبؤي بشكل كبير من خلال تقنيات تعلم الآلة والتعلم العميق (مثل ARIMA وLSTM) لتحسين دقة التنبؤ بأعباء العمل، فإن الحلول الحالية تركز أساساً على تحسين أداء التنبؤ. هذا التركيز غالباً ما يهمل الاتساق على مستوى النظام أثناء عمليات القياس. في البيئات السحابية الديناميكية، لا تضمن دقة التنبؤ العالية سلوك قياس تلقائي مستقر. فالتباينات بين أعباء العمل المتوقعة، واستخدام الموارد الفعلي، والتكوينات المنشورة يمكن أن تؤدي إلى:
سلوك قياس تذبذبي (الاضطراب/Thrashing).
عدم اتساق في النشر.
انخفاض الاستقرار التشغيلي رغم دقة التنبؤات.
علاوة على ذلك، بينما يوفر نموذج GitOps منهجاً للحفاظ على الاتساق بين الحالة المرغوبة والحالة الفعلية عبر التكوين التصريحي، فإن أطر القياس التلقائي التنبؤي الحالية نادراً ما تدمج مبادئ GitOps مباشرة في حلقة اتخاذ قرار القياس. المشكلة الجوهرية التي يتم معالجتها هي أن القياس التلقائي يجب أن يُنظر إليه ليس مجرد تحدٍ للتنبؤ بأعباء العمل، بل كـ مشكلة إدارة اتساق على مستوى النظام تشمل انجراف التنبؤ، وانجراف الموارد، وانجراف التكوين.
2. المنهجية: إطار عمل DriGitScale
يُقترح DriGitScale كـ نموذج قياس تلقائي ذاتي التكيف، مدرك للانجراف ومعزز بـ GitOps لبيئة Kubernetes. يعمل كمنظومة مغلقة الحلقة تتحقق من قرارات القياس مقابل شروط الاتساق في وقت التشغيل بدلاً من الاعتماد فقط على دقة التنبؤ.
المكونات الأساسية
استيعاب البيانات ومعالجتها مسبقاً:
جمع المقاييس في الوقت الفعلي (مثل استهلاك وحدة المعالجة المركزية CPU) من مجموعات Kubernetes عبر أدوات مثل Prometheus.
تطبيع البيانات وتحويلها إلى تسلسلات زمنية ثابتة الطول باستخدام آلية النافذة المنزلقة.
النمذجة التنبؤية:
إطار العمل محايد تجاه النموذج (Model-agnostic)، حيث يدعم تقنيات تنبؤ متعددة: البسيط (Simple)، المتوسط المتحرك (MA)، ARIMA، وLSTM.
توليد استهلاك وحدة المعالجة المركزية المتوقع (Cpred) للخطوات الزمنية المستقبلية.
محرك القرار المدرك للانجراف (الابتكار الجوهري): بدلاً من إطلاق عملية القياس بناءً على Cpred فقط، يقوم المحرك بحساب درجة الانجراف الإجمالية (Dtotal) الموحدة عن طريق تجميع ثلاثة أبعاد من عدم الاتساق:
انجراف التنبؤ (Dpred): الفرق المطلق بين الحمل المتوقع والحمل الفعلي (∣Cpred−Cactual∣).
انجراف الموارد (Dres): الانحراف بين الموارد المطلوبة (بناءً على التنبؤ) والموارد المخصصة فعلياً (∣Rrequired−Ractual∣).
انجراف التكوين (Dcfg): الانحراف بين الحالة المرغوبة في مستودع Git والحالة الفعلية في المجموعة (∣Rgit−Ractual∣).
يتم حساب الانجراف الإجمالي كالتالي: Dtotal(t)=αDpred(t)+βDres(t)+γDcfg(t) حيث α,β,γ هي معاملات الوزن. يتم إطلاق إجراء القياس فقط إذا كان Dtotal>θ (عتبة محددة مسبقاً). هذا يعمل على تصفية الضجيج ومنع إجراءات القياس غير الضرورية الناتجة عن التقلبات الطفيفة.
التنفيذ القائم على GitOps:
تُترجم قرارات القياس إلى تحديثات في التكوين التصريحي (ملفات YAML).
تُرفع التغييرات إلى مستودع Git خاضع للتحكم في الإصدارات (المصدر الوحيد للحقيقة).
تقوم أدوات GitOps (مثل ArgoCD) بمزامنة حالة المجموعة مع المستودع، مما يضمن مطابقة النشر الفعلي للحالة المرغوبة.
حلقة التغذية الراجعة المستمرة:
بعد عملية القياس، يراقب النظام باستمرار أعباء العمل، واستخدام الموارد، وحالات النشر لإعادة تقييم الانجراف والتكيف مع الظروف المتطورة.
3. المساهمات الرئيسية
يحدد البحث خمس مساهمات رئيسية:
إطار عمل DriGitScale: نموذج مبتكر ذاتي التكيف يدمج انجراف التنبؤ والموارد والتكوين في عملية اتخاذ قرار مغلقة الحلقة لـ Kubernetes.
صياغة الانجراف الموحدة: صياغة رياضية تجمع ثلاثة أنواع متميزة من الانجراف في درجة اتساق واحدة لاتخاذ قرارات تكيفية.
آلية قياس واعية بالاتساق: آلية تحقق تنفذ إجراءات القياس فقط عندما يتضرر الاتساق على مستوى النظام، بدلاً من الاعتماد على دقة التنبؤ وحدها.
تكامل GitOps: الدمج المباشر لمبادئ GitOps في طبقة تنفيذ القياس التلقائي لتقليل التباينات بين الحالة المرغوبة والمنشورة.
تقييم شامل: تقييم تجريبي باستخدام آثار أعباء عمل ناسا (NASA)، وأعباء عمل ويكيبيديا المتقلبة، وبيانات اصطناعية للتحقق من الاستقرار والاستجابة وسلوك الانجراف.
4. النتائج التجريبية
تم تقييم إطار العمل مقابل مجموعات بيانات واقعية واصطناعية باستخدام مقاييس مثل متوسط درجة الانجراف، وقت الاستدلال، الاستجابة، واستقرار القرار/الواقع.
الحياد تجاه النموذج: حافظ إطار العمل على سلوك قياس تلقائي مستقر عبر نماذج تنبؤ مختلفة (Simple, MA, ARIMA, LSTM). وبينما قدم نموذج LSTM تنبؤاً قوياً، وفرت النماذ الأخف مثل ARIMA وMA استجابة تنافسية مع تكلفة حسابية أقل بكثير.
تأثير الوعي بالانجراف (دراسة الاستئصال):
أدى تمكين تصفية الانجراف إلى تقليل تكرار تغيير النسخ (Replicas) بشكل كبير (مقياس الاستقرار الفعلي، الذي يمثل عدم الاستقرار). على سبيل المثال، في آثار ناسا، انخفض تكرار التغييرات من 0.1315 (بدون الانجراف) إلى 0.0097 (مع الانجراف)، مما أدى إلى تحسين استقرار النظام.
لوحظت تخفيضات مماثلة في تكرار التغييرات في بيانات ويكيبيديا والبيانات الاصطناعية.
نجحت الآلية في تصفية التقلبات العابرة (الاضطراب) مع البقاء مستجيبة لتغيرات أعباء العمل الكبيرة.
حساسية العتبة: تم تحديد عتبة (θ) قدرها 0.05 كأفضل توازن بين الاستجابة والاستقرار. العتبات الأقل تسببت في إجراءات قياس مفرطة، بينما العتبات الأعلى أخرت ردود الفعل الضرورية.
القدرة على التعميم: أظهر إطار العمل متانة عبر أنماط أعباء العمل السلسة (ناسا)، والمتقلبة (ويكيبيديا)، والفوضوية/المشوشة (الاصطناعية).
5. الأهمية والادعاءات
يزعم البحث أن القياس التلقائي يجب إعادة صياغته كمسألة اتساق نظام وليس مجرد مسألة تنبؤ محضة. تكمن أهمية DriGitScale في قدرته على:
فك الارتباط بين الاستقرار ودقة التنبؤ: إثبات إمكانية تحقيق سلوك قياس مستقر حتى مع نماذج تنبؤ متفاوتة من خلال التحقق من القرارات مقابل اتساق النظام.
تقليل الضجيج التشغيلي: تقليل إجراءات القياس غير الضرورية (الاضطراب) بشكل جذري عن طريق تصفية القرارات عبر فحص الانجراف متعدد الأبعاد.
تعزيز موثوقية النشر: من خلال دمج GitOps، يضمن إطار العمل بقاء "الحالة المرغوبة" و"الحالة الفعلية" متزامنة، مما يعالج فجوة في حلول القياس التلقائي التنبؤي الحالية.
يخلص المؤلفون إلى أنه بينما يعد التنبؤ الدقيق بأعباء العمل أمراً مهماً، فإن الحفاظ على الاتساق عبر مخرجات التنبؤ، وتخصيص الموارد في وقت التشغيل، وتكوينات النشر هو العامل الحاسم للقياس التلقائي الموثوق وذاتي التكيف في بيئات Kubernetes الحديثة. ويشير البحث بتواضع إلى أن العمل المستقبلي سيستكشف القياس متعدد المقاييس (أبعد من CPU)، والنماذج المتقدمة (مثل Transformers)، والتحقق على نطاق الإنتاج.