मैं अमृत को तैनात उत्पादन में एडब्ल्यूएस पर Docker
में पैक किया। यह चीजों को करने का मेरा पसंदीदा तरीका होता था, लेकिन अब मैं सब कुछ पूर्वस्थापित के साथ पैकर का उपयोग करके अपना स्वयं का एएमआई बनाने के इच्छुक हूं।
बात की तैनाती में केंद्रीय नियंत्रण है, जो कुछ हद तक मैं महसूस करने के लिए जब डोकर लाभ का त्याग कर दिया है कि है।
डोकर के मुख्य नुकसान यह है कि यह इस तरह epmd
से अधिक का नाजुक कनेक्शन के रूप में Erlang/अमृत की क्षमताओं, को सीमित करता है। इसका मतलब यह भी है कि remsh
व्यावहारिक रूप से प्रश्न से बाहर है और ठंडा :observer.start
एक नो-नो है।यदि आपको कभी भी किसी भी कारण से उत्पादन नोड के साथ बातचीत करने की आवश्यकता है, तो सर्वर में पहले एसएसएच-आईएनजी के प्रवेश की अतिरिक्त बाधा है, डॉकर इत्यादि के अंदर जा रहा है .. ठीक है जब यह कुछ जांचने के बारे में है, निराशाजनक होता है जब उत्पादन जल रहा है पीड़ा में नीचे एक नोड में कई कंटेनरों को लॉन्च करना थोड़े बेकार है क्योंकि बीएएम आपके सभी कोरों का कुशल उपयोग करता है। गर्म उन्नयन व्यावहारिक रूप से प्रश्न से बाहर हैं, लेकिन यह वास्तव में ऐसी सुविधा नहीं है जिसे हम व्यक्तिगत रूप से एक आंतरिक व्यापार की आवश्यकता रखते हैं।
प्रयास जैसे, कंटेनर सेटअप के भीतर काम कर epmd
के लिए किया गया है: https://github.com/Random-Liu/Erlang-In-Docker लेकिन यह है कि कस्टम net_kernel
संशोधन के लिए Erlang के पुनर्निर्माण के लिए की आवश्यकता होगी।
अमेज़ॅन ने हाल ही में एडब्ल्यूएस ईसीएस, AWS VPC Networking मोड में एक नई सुविधा जारी की है, जो शायद अंतर-कंटेनर epmd
संचार की सुविधा दे सकती है और इस प्रकार सीधे आपके नोड से कनेक्ट हो सकती है। मैंने अभी तक मान्य नहीं किया है।
epmd
के मुद्दे के अलावा संचार तैनाती का समय है। डॉकर के साथ अपनी छवि बनाना, भले ही आपके पास 5 एमबी का दावा करने वाली छवियां हों, फिर भी 300 एमबी लेना समाप्त हो जाएगा, जिसमें 200 एमबी के साथ ही आपकी रिलीज के लिए सभी विभिन्न निर्भरताओं के लिए। इसे कम करने के तरीके हो सकते हैं, लेकिन इसके लिए विशेष ज्ञान और समर्पित प्रयास की आवश्यकता है। मैं इस अतिरिक्त स्थान को एक डीलर ब्रेकर के विरोध में परेशानियों के रूप में वर्गीकृत करता हूं, लेकिन मुझे विश्वास है कि अगर आपको अपने अपरिवर्तनीय तैनाती के लिए 25 मिनट का इंतजार करना है, तो आप जिस भी मिनट को बंद कर सकते हैं वह सार्थक होगा।
प्रदर्शन के अनुसार, मैंने नंगे धातु तैनाती और डॉकर तैनाती के बीच एक महत्वपूर्ण अंतर नहीं देखा। एडब्ल्यूएस ईबी डॉकर ईसी 2-इंस्टेंस के कंटेनर संसाधनों को अच्छी तरह से फैलाता है।
पाठ्यक्रम का लाभ पोर्टेबिलिटी का है। यदि आपके पास एक फ्रंट एंड इंजीनियर है जो कि जेएसओएन एपीआई को मारने की जरूरत है तो स्थानीय विकास के मामले में यह एक बड़ी जीत है कि कुछ सावधानीपूर्वक सेटअप के साथ वे अपने स्थानीय पर चल रहे नवीनतम एपीआई को केवल एर्लंग/एलिक्सीर के बारे में जाने बिना/Rserve/Postgres।
इसके अलावा, विक्रेता लॉक-इन बहुत कम है, विशेष रूप से जब से एडब्ल्यूएस Kubernetes
के लिए उनके समर्थन का शुभारंभ इस तालमेल का सवाल है, यदि आप एक डेवलपर हैं जो उत्पादन करने के लिए मिलता है और बहुत कम DevOps की जरूरत है कर रहे हैं ज्ञान, तो शायद एक डॉकर परिनियोजन की आवश्यकता हो सकती है। यदि आप बुनियादी ढांचे, तैनाती इत्यादि से अधिक परिचित हैं, तो डेवलपर के रूप में मेरा मानना है कि अपना स्वयं का एएमआई बनाना आपको अपने पर्यावरण पर अधिक नियंत्रण देता है। सब कुछ, मैं कम से कम Docker
के साथ खेलने के लिए प्रोत्साहित करता हूं और इसके साथ प्रयोग करता हूं, यह संभावनाओं का एक नया क्षेत्र खोल सकता है।
वास्तव में। डॉकर का उपयोग एरलांग रनटाइम के साथ अनावश्यक है, बिना किसी लाभ के चीजों को जटिल बनाता है, आपके तैनात रनटाइम के साथ संवाद करने की प्रक्रिया को रोकता है, और इसमें सामान को तोड़ने का एक बहुत ही परेशान तरीका है। किसी भी दुकान में ऐसा करने का एकमात्र कारण यह है कि वे नहीं जानते कि डॉकर से * अन्य * किसी भी तरह से कैसे तैनात किया जाए। यह वास्तव में किसी भी संचालन खंड का एक बहुत दुखद अभियोग है - लेकिन इसकी स्थिति आज कई देवताओं/देवताओं के समूह से निपटती है। – zxq9
टीएल/डीआर, उत्पादन के लिए एक डॉकर में erlang का उपयोग न करें। हालांकि, अगर आप ऐसा करना चाहते हैं तो डेमो (या एक विकास किट) वितरित करना एक आसान तरीका है, हर तरह से डॉकर का उपयोग करें। – Jonke