كشفت GitHub أن الانقطاع الذي أصاب منصتها في 17 أغسطس واستمر 7 ساعات و47 دقيقة نتج عن فشل مكوّن بنية تحتية حرج في التوسع مع بلوغ حركة المرور مستوى قياسياً داخل مركز بياناتها في المنطقة الوسطى من الولايات المتحدة. وأدى ضغط السعة الناتج إلى انتشار المشكلات في أنظمة عدة، فتأثرت خدمة github.com والمصادقة وGitHub Actions وواجهات API وطلبات الدمج والقضايا، إضافة إلى Copilot، بينما امتد أثر الانقطاع إلى المطورين والمؤسسات حول العالم.
يمثل الحادث ثاني واقعة كبيرة تواجهها GitHub خلال أغسطس، بعد فشل أصاب Actions في 6 أغسطس. وأوضحت الشركة أن التحقيق لم يجد صلة بين أي من الحادثين بتغيير في الشيفرة أو الإعدادات؛ بل كان جوهرهما قصوراً في السعة، إذ لم تُوسَّع مكوّنات أساسية قبل تجاوز الطلب حدود قدرتها. وارتفع عدد عمليات الإيداع الشهرية، وفق GitHub، من 1.4 مليار في أبريل إلى 2.9 مليار منذ ذلك الحين، لكن الشركة أقرت بأن نمو الاستخدام لا يعفيها من مسؤولية منع الانقطاعات.
كيف تعافت الخدمات؟
احتاجت عملية الاستعادة إلى إعادة توجيه حركة المرور وعزل البنية التحتية المتضررة وإعادة الخدمات على مراحل. استعادت معظم خدمات GitHub عملها في اليوم نفسه، لكن بعض خدمات Copilot استغرقت وقتاً أطول. وتسببت أخطاء تلك الخدمات في حلقة إعادة محاولة من جهة العميل أدت إلى زيادة حركة المرور أثناء التعافي، ما اضطر الفرق إلى الحد من هذا السلوك قبل إعادة توجيه الحركة بأمان.
تقول GitHub إن تقرير تحليل السبب الجذري الكامل يتضمن خطاً زمنياً تقنياً مفصلاً، فيما تواصل الشركة تنفيذ التزامات أعلنتها سابقاً لتحسين التوافر والموثوقية.
ما الذي يتغير عملياً؟
تركز خطة GitHub على زيادة السعة، ورفع الكفاءة، وإزالة الاختناقات المعمارية. وأعلنت الشركة أنها أضافت أكثر من 3 ملايين نواة CPU و120 بيتابايت من التخزين عالي السرعة، إلى جانب قدرات شبكية إضافية. كما ركبت أكبر قدر ممكن من العتاد ضمن الطاقة المتاحة في مراكز بياناتها الحالية، بالتوازي مع تسريع انتقالها إلى Azure.
تشغل Azure حالياً نحو 58% من حمل منصة GitHub، ونصف عمليات Git، مقارنة بـ12% من حمل المنصة في مايو. وقد ساعد هذا التوسع أيضاً في دعم نمو عمليات تشغيل مهام GitHub Actions. وتعمل الشركة على بنية معمارية جديدة لتوسيع قدرة القراءة في المستودعات الضخمة بشكل خطي مع عدد القراء، بما يتيح نظرياً عمليات قراءة غير محدودة، على أن يبدأ طرحها تدريجياً في أكبر المستودعات الأحادية.
تقليل نطاق الأعطال ومنع العواصف
لا ترى GitHub أن التوسع وحده كافٍ؛ فقد وجهت فرقاً وموارد إضافية إلى التوافر، واستثمرت في اختبارات أقوى، وعمليات طرح أكثر أماناً، ورصد أفضل، وتنبيهات أكثر فاعلية. كما تعزل الأنظمة الحرجة وتزيل الاعتماديات المشتركة بينها للحد من احتمال وقوع الانقطاع وتقليص أثره إذا حدث.
وبناءً على حادثي 6 و17 أغسطس، ستطبق الشركة حدوداً وميزانيات موحدة لإعادة المحاولة، إلى جانب مهلات زمنية متغيرة في الاتصالات بين الخدمات، بهدف منع عواصف إعادة المحاولة والأحمال المتسلسلة. كذلك تراجع تنبيهات CPU والذاكرة ذات الأولوية المنخفضة لاكتشاف المكونات التي قد تتعطل أثناء الارتفاعات المفاجئة في حركة المرور. وتكتسب هذه الإجراءات أهمية مباشرة للمطورين والمؤسسات التي تعتمد على GitHub في بناء البرمجيات وشحنها وتشغيلها، إذ إن تعافي المنصة لا يتوقف على استعادة الخدمة فقط، بل على منع تكرار العطل وحصر نطاقه عند وقوعه.