2010-11-23 14 views
6

मैं वितरित सॉफ्ट-रीयल-टाइम होस्टेड वेब-आधारित टेलीफ़ोनी ऐप के भविष्य के संस्करण के लिए एरलांग को देख रहा हूं (यानी एरलांग इस तरह के लिए बिल्कुल सही विकल्प जैसा दिखता है एप्लिकेशन)। मैं एक .NET पृष्ठभूमि से आया हूं और इस ऐप का वर्तमान संस्करण सेवा देने के लिए सी #, डब्ल्यूसीएफ और JQuery के संयोजन का उपयोग करता है। अब मुझे अपने अप-टाइम में अतिरिक्त 9 एस जोड़ने और मुझे अपने सर्वर रुपये के लिए अधिक धक्का देने की अनुमति देने के लिए एर्लांग की आवश्यकता है।.NET से एरलांग तक पोर्टिंग ऐप को ध्यान में रखते हुए - सलाह की आवश्यकता है

पहले मैंने वीएसएनईटी, जीआईटी, टीमसिटी और एमएसआई फाइलों के ऑटो-परिनियोजन को बनाए रखने वाले विभिन्न वातावरणों में एक विकास प्रक्रिया स्थापित की थी। यह सही नहीं है, लेकिन हम अब इसके साथ बहुत सहज हैं। मैं सोच रहा हूं कि हमारे जैसी प्रक्रिया इतनी मूल रूप से अलग तकनीक ढेर (एलवाईएमई) के लिए भी उचित है?

मुझे विश्वास है कि .NET का उपयोग करके हमने पहले हल किए गए सभी प्रोग्रामिंग चुनौतियों को एरलांग के साथ कम कोड में बेहतर हल किया जा सकता है, इसलिए मैं पूरी तरह से भाषा पसंद पर बेचा जाता हूं। मैं अभी तक एर्लांग पर व्यावहारिक और O'Reilly किताबें पढ़ने से नहीं समझता, यह है कि मुझे अपने प्लेटफार्म के अनुरूप अपने सॉफ्टवेयर इंजीनियरिंग और एप्लिकेशन लाइफ-साइक्ल मैनेजमेंट (एएलएम) प्रक्रियाओं को कैसे अनुकूलित करना चाहिए। मैं देखता हूं कि इन-प्लेस कोड अपडेट मेरे (और मेरे परीक्षण और ऑप्स टीम) जीवन को अधिक आसान बना सकते हैं (विंडोज़ नेटवर्क पर एमएसआई फाइलों को तैनात करने की कोशिश करने के भगवान-भयानक दुख की तुलना में) लेकिन मुझे यकीन नहीं है कि चीजों को कैसे बदला जाना चाहिए जब मैं एरलांग का उपयोग करता हूं।

कैसे होगा आप:

  • Erlang (? यह आमतौर पर इस्तेमाल किया जाता है)
  • एक क्यूए चक्र के दौरान इसका इस्तेमाल (हम अक्सर GIT का उपयोग कर समवर्ती विषय शाखाओं, कि अपने स्वयं के मिनी मिल चलाने में निरंतर एकीकरण करना -qa चक्र, ताकि उन सभी) एक परीक्षण वातावरण में तैनात करने के
  • निर्माण और देव, टेस्ट, UAT, मचान के लिए अपने कोड को वितरित, और उत्पादन वातावरण
  • अपने निर्माण चक्र में एकीकृत कोड पीढ़ी चरणों (हम वर्तमान में MSBuild का उपयोग + टी 4 टेम्पलेट्स)
  • केंद्रस्थ अलग सर्वर का एक समूह के लिए प्रवेश (हम वर्तमान में log4net, MSMQ, आदि का उपयोग करें)
  • SCOM
  • जैसे उपकरणों के साथ चेतावनी है निर्धारित किसी/कुछ अपने उत्पादन सर्वर
  • अनुमति देने के उत्पादन गर्म फिक्स को गलत कॉन्फ़िगर किया है या नहीं केवल पर्याप्त क्यूए (केवल अधिकृत कर्मियों द्वारा)
  • के बाद अपने ऐप्स का प्रदर्शन (संगणना और संचार) प्रोफ़ाइल
  • Windows- आधारित सक्रिय निर्देशिका सर्वर के साथ बातचीत

मुझे लगता है मुझे पता होना चाहिए कि आपके लिए क्या काम किया और क्यों! आप किस उपकरण और ढांचे का उपयोग करते थे? आपने असफल कोशिश की क्या? यदि आप शुरू कर सकते हैं तो आप अलग-अलग क्या करेंगे, यह जानकर कि अब आप क्या जानते हैं?

+0

मैं कुछ ऐसा करने के लिए देख रहा हूं। बाकी ऐप wcf सेवाएं और .NET है। अब 4 साल हो गए हैं, आप कैसे पहुंचे? – codeAline

उत्तर

8

वाह, कितनी लंबी पोस्ट। सबसे पहले, आपको अवगत होना चाहिए कि 99.9% और बेहतर कुल-सहायता अंधेरे के दौरान पीने के लिए थोड़ा खतरनाक है। हां, आप कुछ आश्चर्यजनक स्थिरता आंकड़े प्राप्त कर सकते हैं, लेकिन आपको इसे सुविधाजनक बनाने के तरीके में अपना प्रोग्राम लिखना होगा। यह मुफ्त में नहीं आता है। यह जादू द्वारा भी नहीं होता है। आपका आवेदन इस तरह से डिजाइन किया जाना चाहिए कि अन्य उपप्रणाली ठीक हो जाएं। ओटीपी आपको बहुत मदद करेगा - लेकिन अभी भी सीखने में समय लगता है।

निरंतर एकीकरण: आसानी से किया गया। यदि आप अपने निर्माण-बॉट के माध्यम से rebar या make पर कॉल कर सकते हैं तो आप शायद पहले ही यहां सेट हैं।यूनिट, कवर और एरलांग क्विक चेक में देखें (मिनी संस्करण स्टार्टर्स के लिए नि: शुल्क है) - सभी को रीबर से चलाया जा सकता है।

क्यूए चक्र: मुझे यहां कोई समस्या नहीं है। दोबारा, यदि rebar का उपयोग कर आप एम्बेडेड रिलीज बना सकते हैं जो कम से कम एरलांग वीएम हैं, तो आप कहीं भी कॉपी कर सकते हैं और चला सकते हैं (वे स्वयं निहित हैं)। कोड कोड को थोड़ा सा बदलकर आप इस तरह के सिस्टम को फिक्स को बहुत आसानी से तैनात कर सकते हैं ताकि आपके पास नए फिक्स का ओवरले हो। आपके विकल्प असंख्य हैं। गिट पहले से ही आपको बहुत मदद करता है।

पर्यावरणकरण: आसानी से किया गया।

लॉगिंग केंद्रीकरण: एसएएसएल और error_logger में देखें। आप यहां कुछ भी कर सकते हैं जो आप चाहते हैं।

चेतावनी: आपके लिए आवश्यक सभी के लिए सिस्टम की जांच की जा सकती है (आत्मनिरीक्षण Erlang में मजबूत है)। लेकिन आपको अपनी पसंद की प्रणाली पर इसे हुक करने के लिए थोड़ा सा कोड करना पड़ सकता है।

गलत कॉन्फ़िगरेशन: कॉन्फ़िगरेशन फ़ाइलें एरलांग शब्द हैं। यदि इसकी गणना की जा सकती है, तो यह किया जा सकता है।

सुरक्षा: सीमित है जिसकी पहुंच है। यह एक राय समस्या है, मेरी राय में एक तकनीकी नहीं है।

प्रोफाइलिंग: cprof, cover, eprof, fprof, instrument + ऐसा करने के लिए कुछ वितरित सिस्टम। यादृच्छिक नमूना भी आसान है (एर्लांग में आत्मनिरीक्षण मजबूत है)।

विंडोज़ इंटरैक्शन: डुनो। (बाईस: आखिरी बार मैंने विंडोज़ का इस्तेमाल 1 99 8 में या तो किया था)।

कुछ व्यक्तिगत टिप्पणियों:

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

ऐसा लगता है कि आपके पास एक अच्छी तरह से स्थापित और सख्त प्रक्रिया है। एक नई तरह की सोच के लिए रास्ता देने के लिए उस प्रक्रिया को कितना त्याग दिया जाना चाहिए?

क्या आपके प्रोग्रामर लगभग अपने सभी ओओ ज्ञान को फेंकने के इच्छुक हैं? यदि नहीं, तो आप एक तकनीकी समस्या के बजाय एक सामाजिक समस्या के साथ खत्म हो जाएगा। यदि वे मेरे जैसे हैं, तो वे उत्साहित होंगे, अपने हाथों में झुकाएंगे और एक दिलचस्प तरीके से एक दिलचस्प तरीके से सुलझाने के साथ काम कर रहे हैं।

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

+0

बकवास जवाब नहीं! हमारे पास कोई अनुभवी एरलांग देव नहीं है (मैं अभी सीख रहा हूं), हम सभी फिर से स्किलिंग करेंगे (सुनिश्चित नहीं है कि अभी तक कौन झुकाएगा)। मैं व्यक्तिगत रूप से ओओ और एमएस के बारे में सोचने के लिए आया हूं कि एक वृद्धि (इस तरह के ऐप के लिए) के बजाय सीधी जैकेट के रूप में सर्वोत्तम अभ्यास के विचार, और AFAICS शुद्ध कार्यात्मक कोड इस वितरित प्रणाली की जटिलता को कम करने का एकमात्र तरीका है। क्या आपको लगता है कि एर्लांग, टुकड़े टुकड़े के साथ विरासत मंच को प्रतिस्थापित करना संभव है? –

+0

पूरा करने के लिए, विंडोज एकीकरण खराब नहीं है, लेकिन लिनक्स डिस्ट्रो पर आपको जो कुछ मिलता है उसके बराबर नहीं।Werl.exe और erl.exe के बीच की पसंद में अलग-अलग पेशेवर और विपक्ष हैं जो आप जो चाहते हैं वह कर सकते हैं या नहीं कर सकते हैं। –

+0

@ एंड्रयू, व्यवहार्यता पुन: सामान्य हां में। Erlang गोंद के रूप में अच्छा है - यह है कि आप कैसे सफलता दर को नियंत्रित करने वाले टुकड़े काटते हैं। वैसे, Erlang शुद्ध नहीं है :) यह "अनिवार्य" संदेश गुजर रहा है। –

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