सभी प्रक्रियाओं को Supervisord में समेकित करके अराजकता इंजीनियरिंग की तैयारी करना

8 min

language: ja bn en es hi pt ru zh-cn zh-tw

नमस्ते, मैं मुनो हूँ।
आप सब कैसे हैं?
कल मैं कुल 6 घंटे साइकिल चलाने गया था, रास्ते में दोस्तों से मिला।

Image
Image

यह एक जैज़ उत्सव था, इसलिए मैंने संगीत सुनते हुए शहर में घूमना पसंद किया, और मुझे बुजुर्गों के कपड़ों में कई दिलचस्प और प्रेरणादायक चीज़ें मिलीं।
सड़क पर निकलकर, बाहर के लोगों को सीधे देखना स्ट्रीट स्नैप्स आदि से ज़्यादा वास्तविक होता है।

और, क्योंकि मेरे दोस्त ने अपने घर पर बोलोग्नीज़ पास्ता बनाने की पेशकश की थी, हम एक व्यावसायिक सुपरमार्केट गए और 'PRAI नेस्ट पास्ता' नामक एक बहुत मोटी नूडल का उपयोग करके इसे बनाने की कोशिश की, और यह बहुत स्वादिष्ट निकला।
इस तरह, हमने विंटेज कपड़ों की दुकानों का दौरा किया, प्रोजेक्ट मिराई के बारे में अपनी राय साझा की, और मुझे इष्टतम परिवहन और प्राकृतिक भाषा प्रसंस्करण के बारे में बताया गया, और हम रात 2 बजे तक बात करते रहे, और फिर मैं अपनी फिक्सी बाइक पर कई किलोमीटर वापस चला गया।

परिचय

हाल ही में, मैं अपने घर के बुनियादी ढांचे के वातावरण को फिर से व्यवस्थित कर रहा हूँ क्योंकि मैं इसे अराजकता इंजीनियरिंग के लिए एक परीक्षण वातावरण के रूप में उपयोग करना चाहता हूँ, जिसमें मेरी पहले से ही रुचि थी।
पहले, Netflix ने ChaosMonkey नामक कुछ जारी किया था, लेकिन ऐसा लगता है कि वे फोर्क किए गए बंदर अब लुप्तप्राय प्रजातियाँ बन गए हैं।

वे क्रिप्टोकरेंसी की तरह तेज़ी से गायब हो रहे हैं, लेकिन इस बीच, ChaosBlade नामक एक OSS है जिसे वास्तविक समय में अपडेट किया जा रहा है। मैं इसे चलाना चाहता हूँ।
यह वह है जिसे चीन के Alibaba Cloud ने अपनाया है, और इसे वास्तव में कहाँ लागू किया गया है, इसका सारांश Issues में दिया गया है।
Who is using ChaosBlade
जापान में बहुत कम जानकारी है, लेकिन दस्तावेज़ काफी अच्छी तरह से बनाए गए हैं और इसे वास्तविक समय में कमिट किया जा रहा है, इसलिए इसका उपयोग किया जा सकता है।

मैं विवरणों पर तब काम करूँगा जब मैं वास्तव में इसे करना शुरू कर दूँगा।

Supervisord में माइग्रेट करने से पहले डेमॉन शुरू करना

कई चीजें ऐसी थीं जिनके बारे में मैंने कभी नहीं सोचा था कि वे इतनी देर तक चलेंगी।
वास्तव में, मैंने सर्वर की rc.local फ़ाइल में एक स्क्रिप्ट लिखी थी और इसे स्टार्टअप पर एक रैपर स्क्रिप्ट के माध्यम से शुरू किया था।
विशेष रूप से,

rc.local

$ sudo cat /etc/rc.local  
[sudo] haturatu のパスワード`  
#!/bin/sh -e  
#  
# rc.local  
#  
# This script is executed at the end of each multiuser runlevel.  
# Make sure that the script will "exit 0" on success or any other  
# value on error.  
#  
# In order to enable or disable this script just change the execution  
# bits.  
#  
# By default this script does nothing.  
#echo never > /sys/kernel/mm/transparent_hugepage/enabled  
[ -d /etc/boot.d ] && run-parts /etc/boot.d  

/root/serverboot.sh &  

इस तरह, मैंने root के होम डायरेक्टरी में एक जल्दी से बनाई गई serverboot.sh स्क्रिप्ट का उपयोग करके प्रत्येक एप्लिकेशन को शुरू किया।
ईमानदारी से कहूँ तो, मैं सिर्फ एक स्क्रिप्ट चला रहा था, इसलिए यह बहस का विषय है कि इसे रैपर कहना सही है या नहीं।

हालांकि, जैसा कि आप देख सकते हैं, यदि कोई प्रक्रिया क्रैश हो जाती है, तो यह व्यक्तिगत लॉग फ़ाइलें भी आउटपुट नहीं करती है।
इसलिए, मैंने उन सभी को Supervisord के साथ प्रबंधित किया।

उसके बाद

अब, यदि किसी कारण से कोई प्रक्रिया क्रैश हो जाती है, तो Supervisor इसे स्वचालित रूप से पुनरारंभ कर देगा और इसे प्रत्येक के लिए कॉन्फ़िगर किए गए लॉग के रूप में आउटपुट करेगा।
कुल 8 प्रक्रियाएँ हो गईं।

इसमें एक घंटे से भी कम समय लगा, इसलिए मुझे इसे पहले ही कर लेना चाहिए था, लेकिन ऐसा होता है। क्योंकि हम इंसान हैं।

अन्य कार्य जो किए जाने चाहिए

HA Proxy के साथ लोड बैलेंसर का उपयोग करना, जिसके लिए एक और सर्वर की आवश्यकता होगी, लेकिन घर पर एक और दूसरा सर्वर रखना बहुत अर्थहीन है, इसलिए मुझे किसी तरह एक सस्ता VPS खोजने की आवश्यकता है।
ऐसा इसलिए है क्योंकि घर के वातावरण में बिजली गुल होने जैसे पर्यावरणीय जोखिम अधिक होते हैं, इसलिए मुझे लगता है कि एक पूरी तरह से अलग स्थान पर एक सर्वर को दूसरे सर्वर के रूप में उपयोग करना बेहतर होगा।
मैं ऐसा क्यों सोचता हूँ, यह केवल घर के सर्वर वातावरण के बारे में नहीं है, मुझे याद है कि 2021 के आसपास AWS के US क्षेत्र में एक बड़ा आउटेज हुआ था। जब मैंने Binance जैसे एक्सचेंजों के डाउन होने का पता लगाया, तो कारण AWS था।
एक ही क्षेत्र में अनावश्यक कॉन्फ़िगरेशन का कोई मतलब नहीं है।
बिजली गुल होना, या मुझे याद है कि मैंने Google DC को Youtube या Google Map के अंदर से देखा था, और यह बिल्कुल असंभव लगता है, लेकिन ऐसा नहीं है कि यह कभी नहीं हो सकता।

आप कह सकते हैं कि HA Proxy के बजाय Nginx के साथ लोड बैलेंसर का उपयोग करना बेहतर होगा, लेकिन मुझे याद है कि मैंने अतीत में यह देखा था।
लोड संतुलन के लिए Nginx का कभी भी उपयोग क्यों नहीं करना चाहिए
इसके अतिरिक्त, यदि वेब सर्वर और लोड बैलेंसर एक ही सॉफ़्टवेयर के साथ चल रहे हैं तो यह भ्रमित करने वाला हो जाता है, इसलिए मुझे लगता है कि HA Proxy का उपयोग करना अधिक स्पष्ट और समझने में आसान होगा।

लेकिन, यदि आप पूछते हैं कि क्या वर्तमान स्थिति में वास्तव में अनावश्यक कॉन्फ़िगरेशन का कोई मतलब है, तो उत्तर पूरी तरह से नहीं है, और ChaosMonkey जैसे सॉफ़्टवेयर के साथ क्लाउड पर अनावश्यक संसाधनों का उपयोग करना परेशानी का कारण बन सकता है, और यदि इसे DNS स्तर पर किया जाता है, तो वह भी।
थोड़ा और सोचने के बाद, मैं ChaosBlade को निष्पादित करने का प्रयास करूँगा।
मैं अभी तक अराजकता इंजीनियरिंग के दौरान सर्वर से जानकारी Get करने के लिए तैयार नहीं हूँ, इसलिए एक तरह से, यह एक अगली कड़ी के रूप में जारी रहेगा।

तो फिर। फिर मिलेंगे।

Related Posts