रूस में पिछले फीफा विश्व कप 2018 ने न केवल देश के परिवहन हब के लिए, बल्कि सबसे बड़े रूसी ब्रॉडकास्टर के आईटी बुनियादी ढांचे में भी भारी बोझ लाया, जिसने मैचों को ऑनलाइन प्रसारण प्रारूप में उपलब्ध कराया। हमने रुचि के साथ एक नई चुनौती ली, जो फुटबॉल के बुखार के साथ सर्वर पर आने वाली थी।
प्राक्कथन: उच्च भार?
हाईलोड के बारे में बातचीत अक्सर विषय पर प्रतिबिंबों के साथ शुरू होती है, क्या भार को "उच्च" माना जा सकता है: गतिशीलता के लिए प्रति सेकंड हजारों अनुरोध? या उपलब्ध संसाधनों के संबंध में अनुरोधों की एक छोटी संख्या भी? प्रति दिन लाखों आगंतुक? एक क्लस्टर में सैकड़ों काम का बोझ?
"आपदा के पैमाने" का अंदाजा लगाने के लिए, इस तथ्य को कि हम उपयोगकर्ताओं को
एक साथ प्रसारण देखने के बारे में बात कर रहे हैं, जिनमें से संख्या
2 मिलियन तक पहुंच
गई , पर्याप्त होना चाहिए। यदि आप "अंदर से" मैचों के प्रसारण को देखते हैं, और आपने अभूतपूर्व ट्रैफ़िक का सामना कैसे किया?
तीन व्हेल
1. साइट वास्तुकला और अनुवाद प्रणाली
अंतिम उपयोगकर्ता और अनुवाद प्रणाली के बीच बातचीत की सामान्य योजना निम्न योजना के लिए कम है:
- उपयोगकर्ता उस साइट पर आता है जहां खिलाड़ी वीडियो देखने के लिए लॉन्च किया गया है। खिलाड़ी खुद जावास्क्रिप्ट में लिखा होता है और इसे लोड करने पर स्टैटिक्स के लिए कई अनुरोधों के साथ-साथ अनुवाद से संबंधित विभिन्न एपीआई भी हो जाते हैं।
- अन्य बातों के अलावा, प्लेबैक के लिए एक प्लेलिस्ट के लिए बैलेंसर के लिए एक अपील है।
- एक प्लेलिस्ट लघु वीडियो अंशों का लगातार अद्यतन किया गया सेट है जिसे CDN सर्वर पर कैश किया जाता है।
- वास्तविक समय में उपयोगकर्ता के वीडियो को देखते समय, विभिन्न प्रकार के आंकड़े एकत्र किए जाते हैं, जो विशेष रूप से, सीडीएन द्वारा लोड संतुलन (वास्तविक उपलब्ध बैंडविड्थ के साथ) के लिए ध्यान में रखा जाता है।
वीडियो के प्रत्यक्ष वितरण के लिए वास्तुकला को हमारे सहयोग की शुरुआत से पहले ही ग्राहक के इंजीनियरों की आंतरिक शक्तियों द्वारा डिजाइन और कार्यान्वित किया गया था। बाद में, सेवा के अलावा, हम इसके कुछ घटकों के लिए और साथ ही साइट के लिए बुनियादी ढांचे के डिजाइन और कमीशनिंग में लगे हुए थे, जो समग्र योजना में महत्वपूर्ण भूमिका निभाता है।
साइट, कई साल पहले उत्पादन में लॉन्च की गई, क्षैतिज मापनीयता पर केंद्रित है - जिसमें कई डेटा केंद्र शामिल हैं:

यहां प्रस्तुत योजना को सरल बनाया गया है और इसका उद्देश्य साइट की मापनीयता की प्रकृति को प्रदर्शित करना है, जिसके घटकों को विभिन्न डेटा केंद्रों में वितरित किया जाता है।
2. सी.डी.एन.
वास्तव में वीडियो देखकर लौटते हुए, यह स्पष्ट है कि मुख्य भार सीडीएन सर्वर पर पड़ता है। पिछले विश्व कप के आंकड़ों में, हम लगातार यातायात के बारे में बात कर रहे हैं, जिसे
प्रति सेकंड टेराबिट्स में मापा जाता है। और कई मामलों में, पीक लोड के साथ अनुवाद के काम की सफलता उन सभी चीज़ों की सीडीएन पर कैशिंग के कारण होती है, जो उन्हें हस्तांतरित की जा सकती हैं, और संसाधन (नेटवर्क, सीपीयू, रैम, ...) को कम करके अन्य ऑपरेशन की लागत।
इसके अलावा, सीडीएन के साथ काम करने में एक महत्वपूर्ण बिंदु कुल और उपलब्ध बैंडविड्थ पर प्रासंगिक जानकारी प्राप्त करने के लिए उनके एपीआई के साथ बातचीत है। प्रसारण प्रणाली में, इस डेटा का उपयोग नए दर्शकों को वितरित करने और वर्तमान को फिर से वितरित करने के लिए किया जाता है।
तो, अगर सीडीएन सर्वर लाखों इंटरनेट दर्शकों के लिए पर्याप्त बैंडविड्थ प्रदान कर सकता है, तो समस्याएं कभी भी हो सकती हैं? चैंपियनशिप के दौरान, हमने दो मुख्य परिदृश्य देखे:
- किसी कारण से, प्रसारण में एक अंतराल है।
उदाहरण के लिए, चैंपियनशिप में से एक पर सिस्टम सेटिंग्स "प्ले" किया गया, जो DDoS सुरक्षा सेवा, जो अचानक लोड की उम्मीद नहीं करता था, ने यह मानना शुरू कर दिया कि हमले के रूप में क्या हो रहा है, सीडीएन सर्वर की उपलब्धता को एक के बाद एक अवरुद्ध कर रहा है ... जब तक कि यह अधिसूचित नहीं किया गया था कि स्थिति एक अर्थ में चरम, लेकिन अभी भी पूर्णकालिक (आवश्यक निष्कर्ष किए गए थे - अगले प्रसारणों में स्थिति दोहराई नहीं गई)।
ऐसे क्षणों में, सभी उपयोगकर्ता जो एक बड़ी समस्या से आगे निकल जाते हैं, खिलाड़ी के साथ पृष्ठ को ताज़ा करना शुरू करते हैं। - एक गोल (विशेषकर पहला), एक नियम के रूप में, सीमित समय में दर्शकों की एक बड़ी संख्या को उकसाता है।
यदि हम अधिक विशिष्ट संख्या के बारे में बात करते हैं, तो इस तरह की आमद 1-1.5 मिनट में सैकड़ों हजारों उपयोगकर्ताओं की हो जाती है।
इन दोनों मामलों ने गतिशील साइट सामग्री के अनुरोधों में तीव्र गति उत्पन्न की जो कि उपलब्ध संसाधनों द्वारा नियंत्रित किए जाने की आवश्यकता थी। ऐसी समस्याओं को कैसे ट्रैक किया गया और हल किया गया?
3. वास्तविक समय की निगरानी और आंकड़े
यह सच की एक महत्वपूर्ण डिग्री के साथ मजाक करना संभव है कि पूरे चैंपियनशिप की अवधि के लिए हमारे पास एक विशेष पद था, जिसके कर्तव्यों में कार्यस्थल पर ध्यान से फुटबॉल देखना शामिल था। बेशक, यह फुटबॉल के बारे में इतना अधिक नहीं था, लेकिन मैच या अन्य परिस्थितियों से उकसाए गए किसी भी घटना के लिए त्वरित प्रतिक्रिया के बारे में ...
"अन्य परिस्थितियों" क्या हैं? ऐसे सार्वजनिक कार्यक्रमों में, यहां तक कि मौसम का प्रभाव भी ध्यान देने योग्य होता है। यहां चैंपियनशिप से दो उदाहरण दिए गए हैं:
- जब एक मैच के दौरान एक आंधी शुरू हुई, तो उपग्रह टीवी प्रदाताओं को उपकरण की समस्या थी (वे एक संकेत नहीं भेज सकते थे)। इससे कुछ ही समय में ट्रैफ़िक (लगभग 10%) में उल्लेखनीय वृद्धि हुई, क्योंकि एक तत्काल वैकल्पिक समाधान की तलाश में, दर्शकों ने बड़े पैमाने पर ऑनलाइन यात्रा करना शुरू कर दिया और वहां ब्राउज़ करना जारी रखा।
- जब फाइनल मैच के दौरान बारिश होने लगी, तो उपयोगकर्ताओं के वियोग और पुनः कनेक्शन (लगभग 5 मिनट के बाद) में एक छोटा (लगभग 3%) ध्यान देने योग्य था। इस मामले में, प्रसारण में कोई समस्या नहीं देखी गई, अर्थात, कूद के कारणों का तकनीकी आधार नहीं था। धारणा यह है कि जो दर्शक सड़क पर फुटबॉल देखते थे (जैसा कि मैंने खुद किया था) बारिश के कारण कमरे में चले गए, और इस संक्षिप्त समय के लिए उन्हें प्रसारण से हटा दिया गया।
खुद की निगरानी के विषय पर लौटना - संपूर्ण चैम्पियनशिप की अवधि के लिए,
नियमित (प्रत्येक शिखर प्रसारण के बाद) बैठकों का
अभ्यास डेवलपर्स के साथ मानक के रूप में लिया गया था, जिन्होंने सभी महत्वपूर्ण परिस्थितियों (या उनके करीब) और उनके परिणामों का विश्लेषण किया - ताकि संभावित समस्याओं को कम किया जा सके। अगली बार सर्वर / सेवाएं किस सीमा पर थीं? विशेष रूप से कौन से प्रश्न पूछ रहे थे? किन अनुरोधों को हटाया जा सकता है (कुछ सेकंड के लिए कैश करने के लिए सीडीएन पर स्थानांतरित)? क्या अनुरोध लंबे समय तक कैश किए जा सकते हैं (प्रत्येक 3 मिनट, प्रति मिनट नहीं)? दर्शकों की संख्या में अनुमानित वृद्धि के साथ क्या होगा, क्योंकि रूस खेलेंगे?
रूस की बात कर रहे हैं। जैसा कि आप अनुमान लगा सकते हैं, औसतन कई बार रूसी राष्ट्रीय टीम के साथ अन्य लोगों की तुलना में अधिक लोग आए। और आगे हमारी टीम ने टूर्नामेंट ब्रैकेट को आगे बढ़ाया, इस मामले में तत्काल कर्तव्यों के प्रदर्शन के साथ हमारी खुशी को जोड़ना जितना मुश्किल था - क्योंकि सब कुछ दर्शकों के अथक विकास से जटिल था। इस तथ्य के बावजूद कि प्रणाली को भारी भार का सामना करने के लिए डिज़ाइन किया गया था, सामान्य कार्य अनुसूची में वे ऐसा अक्सर नहीं करते हैं (एक वर्ष में 10 बार से कम) ... और विश्व कप के मामले में, हमने एक महीने के लिए लगभग दैनिक हाईलोड चोटियों का अवलोकन किया। हालांकि, इस विधा का लाभ वास्तविक अड़चनों का पता लगाने के लिए व्यापक संभावनाएं थीं जो केवल ऐसे भारों के क्षणों में पता लगाया जाता है।इसलिए, यदि विशुद्ध रूप से तकनीकी मुद्दों का हिस्सा निगरानी प्रणालियों से मानक रेखांकन द्वारा हटा दिया गया था, तो अधिक जटिल और / या व्यापार-तर्क-उन्मुख समस्याओं के समाधान में, बोलने वाले आंतरिक नाम "रीयल-टाइम आँकड़े" के तहत परियोजना की उपलब्धियों ने बड़ी भूमिका निभाई।
वास्तविक समय आँकड़े
इंटरनेट प्रसारण बुनियादी ढांचे का यह महत्वपूर्ण घटक खिलाड़ियों द्वारा एकत्र किए गए तकनीकी डेटा के लिए एक व्यापारिक खुफिया उपकरण प्रदान करने के हमारे प्रयासों द्वारा डिजाइन और कार्यान्वित किया गया था जिसमें वीडियो देखें। इसके मूल में, यह एक लॉगिंग सिस्टम है:
- उपयोगकर्ताओं (ब्राउज़र, आईपी इत्यादि) के बारे में सभी प्रकार के उपलब्ध डेटा को एकत्रित करता है - सरलता के लिए, हम कह सकते हैं कि ये वे विशेषताएँ हैं जो हम साइट के दर्शकों पर आँकड़ों में देखते थे);
- प्रसारण (बिटरेट, आदि) और होने वाली घटनाओं / समस्याओं पर तकनीकी डेटा के साथ उन्हें पूरक करता है (सीडीएन स्विचिंग, विफलताओं को देखने ...);
- सीडीएन सर्वर पर इष्टतम लोड संतुलन के लिए डेटा के साथ बैलेंसर प्रदान करता है (प्रत्येक उपयोगकर्ता की विशेषताओं के अनुसार);
- ड्यूटी इंजीनियरों को आवश्यक अलर्ट भेजता है और उपयोगी व्यापार चार्ट बनाता है।
अंतिम बिंदु सबसे दिलचस्प है, क्योंकि:
- इस आँकड़ों की प्रणाली निगरानी का एक प्रमुख घटक है जो आपको प्रसारण के दौरान व्यावहारिक संकेतकों के "बराबर रखने" की अनुमति देता है। उनका विश्लेषण करना (ऐसी जगह जहां स्वचालन पर्याप्त नहीं है), परिचर वास्तविक समय में सेवा की गुणवत्ता में सुधार करने के लिए उचित निर्णय लेता है। उदाहरण के लिए:
- क्या कई उपयोगकर्ता एक ही CDN सर्वर से स्विच करते हैं? इसे अस्थायी रूप से रोटेशन से अक्षम किया जाना चाहिए (या त्वरित प्रतिक्रिया के लिए प्रदाता से संपर्क करें)।
- क्या उपयोगकर्ताओं को वीडियो देखने में भारी समस्याओं का अनुभव करना शुरू हो गया है? कारणों के तत्काल विश्लेषण के लिए समय।
- चार्ट वास्तविक समय के व्यावसायिक आँकड़े हैं जो आपको प्रमुख प्रश्नों के उत्तर देने में सक्षम बनाते हैं, जैसे:
- कितने उपयोगकर्ताओं ने अंतिम मिनट का प्रसारण देखा?
- अंतिम समय में कितने प्रतिशत उपयोगकर्ताओं की समस्याएं थीं और उनकी प्रकृति क्या थी?
चूंकि समान घटनाओं में एक ही ग्राफ़ प्रोफ़ाइल होती है, इसलिए ग्राफ़ स्वयं ही आपको अगले कुछ मिनटों में उपयोगकर्ताओं की संख्या में वृद्धि की भविष्यवाणी करने और यदि आवश्यक हो तो सक्रिय क्रिया करने की अनुमति देता है।
चूँकि ये आँकड़े वास्तविक समय में काम करते हैं और संपूर्ण सेवा की गुणवत्ता के लिए महत्वपूर्ण होते हैं, लाखों उपयोगकर्ताओं द्वारा प्रकृति वीडियो देखने में सरल भी सीडीएन के माध्यम से सामग्री वितरित करने के लिए उबाल नहीं करता है। ClickHouse DBMS कई खिलाड़ियों से नए डेटा की तेज रिकॉर्डिंग प्राप्त करने में मदद करता है (हम प्रत्येक सर्वर पर रिकॉर्डिंग के लिए प्रति सेकंड हजारों अनुरोधों के बारे में बात कर रहे हैं), और सामान्य ग्राफ ग्राफ के लिए उपयोग किया जाता है।
मैच के पहले और बाद में ऑनलाइन वीडियो के दर्शकों के अनुपात का चित्रणवैसे : पीक लोड्स के दौरान एक दिलचस्प बदलाव आँकड़ों के अनुरोधों के लिए HTTPS (HTTP के पक्ष में) को अक्षम कर रहा था, जिसके कारण कुछ सर्वरों पर CPU लोड में दो गुना कमी आई।परिणाम
इतने बड़े पैमाने पर होने वाले कार्यक्रम के ऑनलाइन प्रसारण की सफलता
(यहां तक कि YouTube टीवी हमेशा लोड के साथ सामना नहीं करता था!) को अन्य महत्वपूर्ण जानकारी प्रदान की गई थी:
- सक्षम वास्तुकला (प्रसारण प्रणाली और साइट के लिए), जो कि कुबेरनेट जैसी आधुनिक प्रणालियों के उपयोग के बिना भी शुरू में महत्वपूर्ण भार के लिए उच्च भार, मापनीयता और तत्परता के लिए उन्मुख थी;
- पर्याप्त बैंडविड्थ के साथ सीडीएन सर्वर;
- विशेष निगरानी, जिसने अनुमति दी: ए) वास्तविक समय में समस्याओं को ट्रैक करने के लिए, बी) ताकि भविष्य में उनसे बचने के लिए आवश्यक जानकारी प्रदान की जा सके।
हालांकि वास्तव में अधिक कारक थे ... और उनमें से एक, शायद, सभी तकनीकी लोगों को पार करने में सक्षम है - मानव। सबसे महत्वपूर्ण भूमिका विशेषज्ञों द्वारा निभाई गई थी जो न केवल तकनीकी रूप से सब कुछ करने और करने में सक्षम थे, बल्कि अथक परिणाम भी प्राप्त करते थे, जिसे मैं विशेष रूप से ग्राहक के प्रबंधन की खूबियों को नोट करना चाहता हूं।
उल्लेखित कुबेरनेट्स के बारे में पुनश्च ... एक कहानी जिसे हमारे ब्लॉग के कई पाठकों ने देखने की उम्मीद की होगी। प्रसारण प्रणाली के प्रवास की प्रक्रिया पहले ही शुरू हो चुकी है, लेकिन विश्व कप के दौरान, ये घटनाक्रम अभी तक शामिल नहीं थे।पी पी एस
हमारे ब्लॉग में भी पढ़ें: