कल के पोस्ट में जिसमें हालिया GitHub आउटेज का ज़िक्र है, उसमें एक ऐसा विवरण था जिसे नज़रअंदाज़ किया गया था: सैचुरेटेड Istio सिडकार वाली सेवा पर ग़लत कॉन्फ़िगर किए गए ऑटोस्केलिंग पॉलिसी। यह पॉलिसी होस्ट सेवा के लोड को देखती थी लेकिन सिडकार सीमाओं को नहीं देखती थी, जिसके कारण यह सही ढंग से ऑटोस्केल नहीं कर पाई।
ऑटोस्केलिंग वर्तमान लोड के आधार पर संसाधनों को समायोजित करता है। हालांकि CPU उपयोग एक सामान्य मीट्रिक है, सेवाएं यहां तक कि कम CPU उपयोग के साथ भी सैचुरेट हो सकती हैं। उदाहरण के लिए, थ्रेड-पर-रिक्वेस्ट मॉडल में जब डाउनस्ट्रीम लेटेंसी कारण सभी थ्रेड्स I/O पर ब्लॉक हो जाते हैं, तो सैचुरेशन का अनुभव हो सकता है, जैसा कि Slack ने 2021 में अनुभव किया था।
GitHub के विवरण सुझाव हैं कि ऑटोस्केलिंग पॉलिसी केवल सेवा-स्तरीय लोड को ध्यान में रखती थी, इसके साथ ही Istio सिडकार को अनदेखा कर दिया गया था। यह David Woods द्वारा पहचानी गई कंपोनेंट सब्स्टीट्यूशन फॉलैसी को उजागर करता है - केवल व्यक्तिगत घटकों को ठीक करने पर ध्यान केंद्रित करना बिना सिस्टम इंटरैक्शन्स को समझे। आउटेज में कई अंतःक्रियात्मक कारक शामिल थे: बदलते यातायात पैटर्न, ऑटोस्केलिंग पॉलिसी, Istio सिडकार सैचुरेशन, रीट्राय लॉजिक, HAProxy नोड सैचुरेशन, और प्रमाणीकरण यातायात।
प्रमुख इकाइयाँ: कंपनियाँ: GitHub, Slack | लोग: David Woods
स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित