2017-12-01 13 views
5

मैं पता है कि मजबूत कारणों जाना है या नहीं करने के लिए Production.This में अमृत/Erlang आवेदन के साथ डोकर साथ जाने के लिए कर रहे हैं चाहते हैं पहली बार मैं production.I में डोकर के साथ शुरू करने के लिए कहा रहा हूँ उत्पादन पर काम किया है डॉकर के बिना। मैं एक एरलांग/एलिक्सीर डेवलपर हूं। मैंने उच्च ट्रैफिक प्रोडक्शंस सर्वर पर काम किया है जो डॉकर के बिना चल रहे लाखों लेन-देन के साथ काम करता है। मैंने एक दिन बिताया और एलिक्सर एप्लिकेशन छवि को नेटवर्क के साथ कई मुद्दों के साथ चलाने के लिए बिताया मुझे DNS सेटअप आदि के लिए बहुत सारी कॉन्फ़िगरेशन करना पड़ा। उसके बाद मैंने सोचना शुरू कर दिया कि आगे बढ़ने के लिए मजबूत कारण क्या हैं। क्या उत्पादन में एलिक्सीर/एरलांग अनुप्रयोगों के साथ डॉकर के साथ जाने या नहीं जाने के लिए कोई मजबूत कारण हैं।उत्पादन में डॉकर के साथ एलिक्सीर/एरलांग अनुप्रयोग?

मैं मंचों में कारणों में से कुछ के माध्यम से चला गया, लेकिन अभी भी यह लाभ है कि डोकर प्रदान कर रहा है Erlang वीएम में पहले से ही वहाँ है convinced.All नहीं कर रहा हूँ। फॉर्म में कोई एरलांग विशेषज्ञ कृपया मेरी मदद कर सकता है।

उत्तर

0

शायद यह उस सर्वर पर निर्भर करता है जिसका आप उपयोग करना चाहते हैं। जो मुझे पता है, उदाहरण के लिए, डॉकर एडब्ल्यूएस लोचदार बीनस्टॉक पर फीनिक्स एप्लिकेशन की तैनाती को सुविधाजनक बनाता है, लेकिन मैं इस समय आपको बहुत विशिष्ट कारण देने के लिए पर्याप्त सक्षम नहीं हूं।

शायद कोई और विस्तार कर सकता है।

0

डोकर मुख्य रूप से एक तैनाती और वितरण उपकरण है। डॉकर डॉक्स से:

डॉकर डेवलपर्स को स्थानीय कंटेनर का उपयोग करके मानकीकृत वातावरण में काम करने की अनुमति देकर विकास जीवन चक्र को सुव्यवस्थित करता है जो आपके अनुप्रयोगों और सेवाओं को प्रदान करता है। कंटेनर निरंतर एकीकरण और निरंतर विकास (सीआई/सीडी) वर्कफ़्लो के लिए बहुत अच्छे हैं।

आपके आवेदन बाहरी निर्भरता नहीं हैं (उदाहरण के लिए, एक क्रिप्टो पुस्तकालय), अन्य भाषा में लिखे (उदाहरण के लिए, एक डेटाबेस एक अलग प्रक्रिया के रूप में चल) एक और आवेदन के साथ सूचना का आदान प्रदान, या यदि वह कुछ ऑपरेटिंग सिस्टम पर निर्भर करता है/पर्यावरण कॉन्फ़िगरेशन (आपने बताया है कि आपको कुछ DNS कॉन्फ़िगरेशन करना था), फिर अपने एप्लिकेशन को डॉकर कंटेनर में पैकेजिंग करने से आप निर्भरता स्थापित करने और पर्यावरण को कॉन्फ़िगर करने के लिए डुप्लिकेट कार्य करने से बचने में मदद मिलती है। यह निर्भरता के संदर्भ में आपके परीक्षण और उत्पादन पर्यावरण को सिंक करने के लिए अतिरिक्त काम से बचने में मदद करता है या जांच करता है कि एक उपकरण एक मशीन पर एक मशीन पर क्यों काम करता है, लेकिन दूसरा नहीं।

उपर्युक्त एर्लंग एप्लिकेशन के लिए विशिष्ट नहीं है, हालांकि मैं इस बात से सहमत हूं कि एर्लांग क्रॉस-प्लेटफॉर्म होने वाली कुछ समस्याओं को खत्म करने में मदद करता है और कुछ निर्भरताओं को दूर करता है, और ओटीपी रिलीज हैंडलिंग आपको अपने आवेदन को पैकेज करने में मदद करता है।

जब से तुम आप का उल्लेख एक डेवलपर हैं, यह उल्लेख है कि डोकर कोई व्यवस्थापक या एक टीम के बुनियादी ढांचे के बजाय उसे एक डेवलपर के लिए करता है चलाने के लिए और अधिक लाभ प्रदान करता है लायक है।

5

मैं अमृत को तैनात उत्पादन में एडब्ल्यूएस पर 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 के साथ खेलने के लिए प्रोत्साहित करता हूं और इसके साथ प्रयोग करता हूं, यह संभावनाओं का एक नया क्षेत्र खोल सकता है।

+2

वास्तव में। डॉकर का उपयोग एरलांग रनटाइम के साथ अनावश्यक है, बिना किसी लाभ के चीजों को जटिल बनाता है, आपके तैनात रनटाइम के साथ संवाद करने की प्रक्रिया को रोकता है, और इसमें सामान को तोड़ने का एक बहुत ही परेशान तरीका है। किसी भी दुकान में ऐसा करने का एकमात्र कारण यह है कि वे नहीं जानते कि डॉकर से * अन्य * किसी भी तरह से कैसे तैनात किया जाए। यह वास्तव में किसी भी संचालन खंड का एक बहुत दुखद अभियोग है - लेकिन इसकी स्थिति आज कई देवताओं/देवताओं के समूह से निपटती है। – zxq9

+0

टीएल/डीआर, उत्पादन के लिए एक डॉकर में erlang का उपयोग न करें। हालांकि, अगर आप ऐसा करना चाहते हैं तो डेमो (या एक विकास किट) वितरित करना एक आसान तरीका है, हर तरह से डॉकर का उपयोग करें। – Jonke

संबंधित मुद्दे