होस्ट किए गए कस्टम Discord बॉट का uptime पूरी तरह उसके पीछे के infrastructure पर निर्भर करता है, और Noxyr के Custom Bot में यह hosting nodes का एक समूह है, जो आपके बॉट के लिए अपने-आप एक होस्ट चुनते हैं, हर कुछ सेकंड में उसकी जाँच करते हैं, और आपको खुद कभी कोई server छुए बिना उसे इधर-उधर ले जाते हैं। आप एक token चिपकाते हैं; आपको कुछ भी provision, patch या restart नहीं करना पड़ता।
आपको server नहीं चलाना पड़ता, Noxyr के nodes चलाते हैं
हर node एक ही process है जो उसे सौंपे गए हर कस्टम बॉट को होस्ट करता है। यह एक छोटे चक्र में जाँच करता है, जिन बॉट्स को चलना चाहिए उन्हें शुरू करता है, जिन्हें नहीं चलना चाहिए उन्हें रोकता है, और website के पढ़ने के लिए एक heartbeat दर्ज करता है। यही वह पूरा काम है जो infrastructure करता है, जिसे आपको VPS पर खुद करना पड़ता: process को जीवित रखना, उसके बंद होने पर नज़र रखना, और जब Discord किसी ऐसे कारण से disconnect करे जो आपकी गलती नहीं है तो फिर से login करना।
सेटअप के समय होस्ट कैसे चुना जाता है
स्वचालित डिफ़ॉल्ट है, और ज़्यादातर लोगों को इसे ही चुना रहने देना चाहिए। यह हमेशा उसी node पर जाता है जिसमें अभी जगह है, और nodes एक तय क्रम में भरते हैं: एक पूरा भर जाने के बाद ही अगला नए बॉट लेना शुरू करता है, बजाय इसके कि load हर node पर बराबर बाँटा जाए और हर node आधा भरा रहे। किसी एक होस्ट को हाथ से चुनने पर भी आपको पर्दे के पीछे एक असली, काम करने वाले node पर भेजा जाता है: अगर आपने जो चुना वह उसी समय offline या भरा हुआ है, तो setup बस विफल होने की बजाय सबसे अच्छा उपलब्ध node इस्तेमाल होता है।
कोई node "भरा हुआ" कब माना जाता है
इसका फ़ैसला एक नहीं, दो जाँचें करती हैं। कोई node नए बॉट लेना तब बंद कर देता है जब वह अपनी बॉट-गिनती की सीमा तक पहुँच जाए, और अलग से, जब एक और बॉट उसकी मापी गई memory खपत को उसकी सीमा के करीब ले जाए। दूसरी जाँच इसलिए है क्योंकि अकेली गिनती की सीमा यह हिसाब नहीं रखती कि व्यस्त सर्वर हर बॉट के लिए शांत सर्वरों से ज़्यादा memory लेते हैं; बॉट-गिनती के हिसाब से जगह दिखने वाला node भी memory खत्म होने के इतने करीब हो सकता है कि एक और बॉट सुरक्षित रूप से न ले सके। जो भी सीमा पहले छू जाए, नए setups अपने-आप अगले node पर चले जाते हैं।
अपने बॉट को किसी दूसरे होस्ट पर ले जाना
Custom Bot पेज पर Node बदलें से पहले से चल रहा बॉट कहीं और चला जाता है। हर move एक नया Discord login होता है, और Discord सीमित करता है कि कोई एक बॉट कितनी बार ऐसा कर सकता है, इसलिए moves के बीच पाँच मिनट का cooldown है। असली move के दौरान बॉट नए node पर फिर से connect होते समय थोड़ी देर के लिए restart होता है, लेकिन आपके settings, tickets, catalog और बाकी सब अछूते रहते हैं, क्योंकि यह सब साझा database में रहता है, उस node पर नहीं जो संयोग से process चला रहा है।
अगर किसी node में समस्या हो तो क्या होता है
अगर किसी बॉट का heartbeat पुराना हो जाए, यानी उसका node उससे जवाब सुनना बंद कर दे, तो Noxyr का मुख्य बॉट फिर से आकर उस सर्वर को अपने-आप कवर करता है, ताकि सदस्यों को कभी सच में शून्य बॉट जवाब न देता मिले। एक बार node या login ठीक हो जाए, तो कस्टम बॉट अगले check-in पर उस सर्वर को खुद वापस ले लेता है। सामान्य स्थिति में इसके लिए किसी support ticket की ज़रूरत नहीं होती; यह वही self-healing loop है जो पहली बार setup करने पर आपका बॉट शुरू करता है।
nodes फैलने की बजाय तय क्रम में क्यों भरते हैं
यह मान लेना आसान है कि load हर node पर बराबर बँटता होगा, इस पर थोड़ा, उस पर थोड़ा। Noxyr जानबूझकर इसका उल्टा करता है: एक node पूरा भर जाता है, उसके बाद ही अगला एक भी नया बॉट लेता है। इससे किसी भी समय चल रहे nodes की संख्या मौजूदा load के लिए यथासंभव कम रहती है, बजाय इसके कि कई nodes को हल्का-हल्का लोड दिया जाए, और यह इस बात के लिए मायने रखता है कि नीचे का infrastructure कितनी कुशलता से इस्तेमाल होता है। इससे आपके बॉट के व्यवहार पर कोई असर नहीं पड़ता; sync loop और heartbeat, चाहे कोई भी node उसे चलाए, एक जैसे काम करते हैं।
Dashboard के आँकड़ों का असल मतलब
किसी होस्ट के सामने दिखाया गया ping एक असली माप है, अंदाज़ा नहीं: हर node समय-समय पर Discord के अपने gateway endpoint पर एक request का समय लेता है और औसत रिपोर्ट करता है। किसी node की online/offline स्थिति इस पर आधारित है कि वह आखिरी बार कब check-in हुआ था; जो node थोड़ी देर से चुप है उसे भरोसे के लायक मानने की बजाय अनुपलब्ध माना जाता है, और यही वह चीज़ है जो Noxyr के मुख्य बॉट को उस सर्वर पर फिर से आने के लिए प्रेरित करती है जहाँ कस्टम बॉट चुप हो गया हो।
Uptime बनाम पेड VPS
अपना VPS चलाने से मशीन पर पूरा नियंत्रण मिलता है, और उसके बंद होने को पहचानने की पूरी ज़िम्मेदारी भी। होस्ट किया गया कस्टम बॉट उस नियंत्रण के बदले यह सौंपता है कि पहले पता लगाने का काम किसी और का हो। दोनों हर मामले में बेहतर नहीं हैं; अगर आप दोनों के बीच तय कर रहे हैं, तो पूरी तुलना कस्टम बॉट बनाम VPS पर self-hosting में देखें।
अक्सर पूछे जाने वाले सवाल
मैं अभी जाँच करूँ कि मेरा बॉट ऑनलाइन है या नहीं? Dashboard का Custom Bot पेज लाइव स्थिति दिखाता है, सिर्फ़ यह नहीं कि उसे चालू किया गया है या नहीं।
क्या मेरा बॉट किसी दूसरे node पर जाने पर मेरे settings खो जाते हैं? नहीं। Settings साझा database में रहते हैं, इस बात से स्वतंत्र कि बॉट कौन-सा node process चला रहा है।
क्या मैं Automatic की बजाय कोई खास node चुन सकता हूँ? हाँ, लेकिन अगर जो node आपने चुना वह उस समय भरा हुआ या offline है, तो भी आप एक असली, काम करने वाले होस्ट पर ही पहुँचते हैं।
Dashboard पर स्थिति कितनी बार refresh होती है? हर कुछ सेकंड में; जो node आपके बॉट से सुनना बंद कर दे, उसे लंबी देरी के बाद नहीं, जल्दी पकड़ लिया जाता है।
क्या downtime के लिए कोई शुल्क लगता है या दंड होता है? नहीं। इसमें कोई भुगतान शामिल ही नहीं है; uptime की समस्याएँ आपको इसके अलावा कुछ नहीं लगातीं कि बॉट फिर से connect होते समय थोड़ी देर के लिए उपलब्ध नहीं रहता।
पूरी setup की ज़रूरतें Custom Bot docs में हैं, और node चुनने व Node बदलें के सटीक तरीके कस्टम बॉट hosting docs में हैं।