सेवा के बारे में
अनुवादितमैं अर्लांग/ओटीपी पर ऐसे सिस्टम बनाता हूँ जो वर्षों तक काम करने चाहिए, घंटों नहीं। मेरा प्रोफ़ाइल — सॉफ़्टवेयर जहाँ डाउनटाइम का मतलब असुविधा नहीं बल्कि पूरे व्यवसाय का पतन है: भुगतान गेटवे, मैसेजिंग बैकएंड, वास्तविक समय सिग्नल नोड, IoT डिवाइस बेड़े, सत्र ब्रोकर और टेलीकॉम प्लेटफार्म जो लाखों समवर्ती कनेक्शनों की सेवा करते हैं। यदि आपको एक सेवा की आवश्यकता है जो दुर्घटनाओं, नेटवर्क टूटने, और अपने खुद के बग के बिना तीन बजे सुबह किसी को जगाए बिना जीवित रहती है — यह वही समवर्तीता मॉडल है जिसे मैंने वर्षों तक अध्ययन किया है।
मेरा काम ओटीपी टूलकिट पर निर्भर करता है, न कि घरेलू प्रक्रियाओं पर। मैं पूर्ण पर्यवेक्षक पेड़ डिजाइन करता हूँ ताकि एक विफलता सबसे छोटे संभव नोड में अलग हो जाए और साफ-सुथरे तरीके से पुनः प्रारंभ हो जाए, बजाय इसके कि विफलताओं की एक श्रृंखला को ट्रिगर करे। मैं gen_server, gen_statem, और एप्लिकेशन व्यवहारों को उनके इरादे के अनुसार लागू करता हूँ, प्रत्येक कनेक्शन या कार्य को एक अलग हल्के प्रक्रिया के रूप में मॉडल करता हूँ, और "इसे दुर्घटनाग्रस्त होने दो" दर्शन पर निर्भर करता हूँ जो कोड को सरल बनाता है और पुनर्प्राप्ति को स्वचालित करता है। जब लोड की मांग होती है, तो मैं मशीनों के बीच नोड्स वितरित करता हूँ, क्लस्टरिंग और स्थिति स्थानांतरण जोड़ता हूँ, शेड्यूलर्स और मेमोरी को ट्यून करता हूँ ताकि थ्रूपुट दबाव के तहत पूर्वानुमानित बना रहे।
मुख्य परिदृश्य के परे, मैं वही करता हूँ जिसके लिए अर्लांग को चुना गया है: गर्म कोड अपडेट के साथ रिलीज़ हैंडलिंग जो लाइव सत्रों को तोड़े बिना तैनाती की अनुमति देती है, बैक-प्रेशर और प्रवाह नियंत्रण ताकि एक स्पाइक नोड को क्रैश न करे, और अंतर्निहित ट्रेसिंग और मैट्रिक्स के माध्यम से अवलोकनीयता। मैं एक प्रोजेक्ट को शून्य से पहले रिलीज़ तक उत्पादन में ले जा सकता हूँ, एक मौजूदा अर्लांग कोडबेस को बचा सकता हूँ जो नाजुक हो गया है, या विश्वसनीयता के लिए आपकी टीम में शामिल हो सकता हूँ। प्रत्येक प्रोजेक्ट परीक्षणों, लोड बेंचमार्क, और स्पष्ट दस्तावेज़ के साथ वितरित किया जाता है।
आपको सामान्यतः क्या मिलता है:
— पर्यवेक्षक पेड़ों और अनुप्रयोगों की वास्तुकला
— प्रक्रिया मॉडलिंग gen_server / gen_statem और ओटीपी रिलीज़
— वितरण, क्लस्टरिंग, और नोड हैंडऑफ
— गर्म कोड अपडेट और डाउनटाइम के बिना तैनाती
— लोड परीक्षण, ट्रेसिंग, और युद्ध तत्परता
मेरा काम ओटीपी टूलकिट पर निर्भर करता है, न कि घरेलू प्रक्रियाओं पर। मैं पूर्ण पर्यवेक्षक पेड़ डिजाइन करता हूँ ताकि एक विफलता सबसे छोटे संभव नोड में अलग हो जाए और साफ-सुथरे तरीके से पुनः प्रारंभ हो जाए, बजाय इसके कि विफलताओं की एक श्रृंखला को ट्रिगर करे। मैं gen_server, gen_statem, और एप्लिकेशन व्यवहारों को उनके इरादे के अनुसार लागू करता हूँ, प्रत्येक कनेक्शन या कार्य को एक अलग हल्के प्रक्रिया के रूप में मॉडल करता हूँ, और "इसे दुर्घटनाग्रस्त होने दो" दर्शन पर निर्भर करता हूँ जो कोड को सरल बनाता है और पुनर्प्राप्ति को स्वचालित करता है। जब लोड की मांग होती है, तो मैं मशीनों के बीच नोड्स वितरित करता हूँ, क्लस्टरिंग और स्थिति स्थानांतरण जोड़ता हूँ, शेड्यूलर्स और मेमोरी को ट्यून करता हूँ ताकि थ्रूपुट दबाव के तहत पूर्वानुमानित बना रहे।
मुख्य परिदृश्य के परे, मैं वही करता हूँ जिसके लिए अर्लांग को चुना गया है: गर्म कोड अपडेट के साथ रिलीज़ हैंडलिंग जो लाइव सत्रों को तोड़े बिना तैनाती की अनुमति देती है, बैक-प्रेशर और प्रवाह नियंत्रण ताकि एक स्पाइक नोड को क्रैश न करे, और अंतर्निहित ट्रेसिंग और मैट्रिक्स के माध्यम से अवलोकनीयता। मैं एक प्रोजेक्ट को शून्य से पहले रिलीज़ तक उत्पादन में ले जा सकता हूँ, एक मौजूदा अर्लांग कोडबेस को बचा सकता हूँ जो नाजुक हो गया है, या विश्वसनीयता के लिए आपकी टीम में शामिल हो सकता हूँ। प्रत्येक प्रोजेक्ट परीक्षणों, लोड बेंचमार्क, और स्पष्ट दस्तावेज़ के साथ वितरित किया जाता है।
आपको सामान्यतः क्या मिलता है:
— पर्यवेक्षक पेड़ों और अनुप्रयोगों की वास्तुकला
— प्रक्रिया मॉडलिंग gen_server / gen_statem और ओटीपी रिलीज़
— वितरण, क्लस्टरिंग, और नोड हैंडऑफ
— गर्म कोड अपडेट और डाउनटाइम के बिना तैनाती
— लोड परीक्षण, ट्रेसिंग, और युद्ध तत्परता