वर्चुअल मशीन का उपयोग करते हुए विकास पर विचार [बंद]


51

मैं एक स्टार्टअप के लिए एक विकास नेतृत्व के रूप में काम कर रहा हूँ और मैंने सुझाव दिया है कि हम विकास के लिए VMs का उपयोग करते हैं। मैं प्रत्येक डेवलपर के बारे में परीक्षण / विकास के लिए VMs के साथ एक डेस्कटॉप होने के बारे में बात नहीं कर रहा हूं, मेरा मतलब है कि एक सर्वर रैक है जहां सभी VM प्रबंधित हैं और डेवलपर्स को माइक्रोपीसी (ChromeOS किसी से?) स्थानीय रूप से काम करते हैं, या यहां तक ​​कि अपने घर से दूर हैं? संगणक।

मेरे लिए, लाभ तथ्य यह है कि यह अत्यंत स्केलेबल है, लंबे समय में सस्ता है, प्रबंधन करने में आसान है और हम हार्डवेयर को इसकी अधिकतम क्षमता का उपयोग करते हैं। विपक्ष के लिए, मैं किसी विशेष शोस्टॉपर के बारे में नहीं सोच सकता, इसके अलावा हमें सेटअप की स्थापना / रखरखाव के लिए किसी की आवश्यकता होगी।

मैं उम्मीद कर रहा था कि आप में से कुछ लोग अपने रोजगार के स्थान पर एक समान सेटअप कर सकते हैं और अपनी राय के साथ वजन करने में सक्षम हो सकते हैं। धन्यवाद।


7
यह आपके पिता का IBM VM / ESA नहीं है! सभी आईबीएम मेनफ्रेम में वापस आते हैं।
विटोर पाय

23
मेरे लिए एकमात्र शोस्टॉपर के बारे में मल्टीपल स्क्रीन सपोर्ट होगा। मैं 2 से कम स्क्रीन पर विकसित नहीं हो सका।
जस्टिन शील्ड

27
कई विदेशी कारण हैं: कभी-कभी आपको लाइसेंस प्रयोजनों के लिए एक भौतिक कंप्यूटर में प्लग किए जाने के लिए एक यूएसबी कुंजी की आवश्यकता होती है। कभी-कभी आप वास्तविक सीडी के साथ काम कर रहे होते हैं। कभी-कभी आपको चूसने वाले को कड़ी मेहनत से रिबूट करने की आवश्यकता होती है। कभी-कभी आपको प्रदर्शन को मापने की आवश्यकता होती है क्योंकि यह एक वास्तविक कंप्यूटर पर होगा। कभी-कभी आप ड्राइवरों को विकसित कर रहे हैं। कभी-कभी आपको सभी गति की आवश्यकता होती है जो आप प्राप्त कर सकते हैं। कभी-कभी आपको इंटरनेट का उपयोग किए बिना कहीं न कहीं उत्पाद को प्रदर्शित करने की आवश्यकता होती है। कभी-कभी आपको फिंगरप्रिंट सत्यापन का उपयोग करके किसी सिस्टम में साइन-इन करने की आवश्यकता होती है।
नौकरी

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

4
बस ध्यान रखें कि आपको भौतिक मशीनों की भी आवश्यकता है। हमारा परीक्षण सर्वर वीएम के दो सैन यजमानों पर फैला हुआ है। लेकिन हम उन समस्याओं का सामना करते हैं जहां हम चाहते हैं / यह सत्यापित करने की आवश्यकता है कि वर्चुअलाइजेशन एक कारक या अपराधी भी नहीं है। इसके अलावा, सभी वीएम का समर्थन ग्लास के साथ थीमिंग नहीं है और यदि आप जीयूआई विकसित कर रहे हैं, तो आपको अपने जीयूआई को ग्लास थीम वाले वातावरण में भी जांचना होगा।
मार्जन वेनेमा

जवाबों:


96

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

ये वीएम के लिए आपत्ति नहीं हैं, लेकिन दूरस्थ विकास के लिए संभावित आपत्तियां हैं।


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

5
यह दृष्टिकोण वास्तव में एक रखरखाव समय बचा सकता है। लेकिन शायद स्टार्टअप-स्केल पर नहीं। वित्तीय रूप से दिलचस्प होने के लिए यह 20 उपयोगकर्ता या अधिक होना चाहिए।
एसके-लॉजिक

6
यदि आप एक सुसज्जित कमरे में सर्वर का पता लगाते हैं तो आपको एनवायरनमेंटल सेपरेशन मिलता है जो सर्वर और लोगों के लिए बेहतर है। कार्यालय में बैकगाउंड का शोर कम हो जाता है और गर्मी को बेहतर तरीके से प्रबंधित किया जा सकता है।
मटनज़

1
@J_A_X: यदि मशीनें लैपटॉप हैं तो घर से काम करते समय वह विलंबता मौजूद नहीं होगी। वीपीएन पर नेटवर्क विलंबता निश्चित रूप से होगी, लेकिन मशीन के साथ बातचीत करने की विलंबता स्वयं नहीं होगी।
एडम रॉबिन्सन

1
@J_A_X: विलंबता वहाँ नहीं है यदि पूरे विकास का वातावरण डेवलपर के लैपटॉप में निहित है। और तब भी ध्यान देने योग्य विलंबता हो सकती है, जो पूरे कमरे में स्क्रीन अपडेट को धकेलती है, जब प्रत्येक कीस्ट्रोक पर इंटरैक्शन होता है। चरित्र गूंज में पचास मिलीसेकंड की देरी बहुत दर्दनाक होगी। शायद यह सब आसानी से हो जाएगा, लेकिन क्या वास्तव में यह पता लगाने के लिए लायक है?
केविन क्लाइन

58

मुझे लगता है कि आप पैसे वाले और पाउंड-मूर्ख हो रहे हैं।

सबसे पहले, मशीन की लागत एक डेवलपर की लागत की तुलना में तुच्छ है। आपको मशीन की लागत कम से कम नहीं, अधिकतम उत्पादकता पर काम करना चाहिए।

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

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

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

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

अधिकांश विशिष्ट परिस्थितियों में, हालांकि, यह मुझे लगता है कि इससे हल करने की तुलना में अधिक समस्याओं का परिचय होने की संभावना है।


4
मुझे पता है कि इसे गंभीरता से लेने का मतलब नहीं था, लेकिन मैं बिल्कुल कुछ "पेंटियम III के डंपस्टर में पाया गया" पर एक अच्छा आभासी वातावरण ले
जाऊंगा

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

19

यह अतीत में मेरे विचारों में से एक था: एक उच्च प्रदर्शन सर्वर वाले जिसमें सभी आवश्यक सॉफ़्टवेयर हैं, और कम प्रदर्शन डेस्कटॉप पीसी का एक गुच्छा जो केवल दूरस्थ डेस्कटॉप के माध्यम से सर्वर से कनेक्ट करने के लिए उपयोग किया जाएगा।

लाभ होगा:

  • ठोस बैकअप। कुछ डेवलपर्स नियमित रूप से अपने डेस्कटॉप कंप्यूटर का बैकअप नहीं लेना चाहते हैं, इसलिए एक केंद्रीय समाधान अधिक विश्वसनीय होगा,
  • संभावना, हर डेवलपर के लिए, कहीं से भी काम करने की। इसके द्वारा मेरा मतलब कंपनी में किसी भी पीसी से काम करना है। मान लीजिए कि सुबह में, डेवलपर मूक काम की स्थिति चाहता है। वह अपने कमरे में जाता है और वहां काम करता है। फिर वह कुछ जोड़ी प्रोग्रामिंग करना चाहते हैं या अधिक सामाजिक वातावरण में काम करना चाहते हैं। वह बस अपने डेस्कटॉप पीसी को बंद कर देता है, दूसरे कमरे में जाता है जहां दस कंप्यूटर हैं, और वहां से कनेक्ट होता है। नहीं "मुझे अपने सभी ऐप्स फिर से लोड करने होंगे"।

खैर, इसके साथ कई गंभीर समस्याएं हैं, जिससे मुझे लगता है कि मैं अगले साल इस तरह की चीज का उपयोग कभी नहीं करूंगा।

  • दूरस्थ समाधान की विशिष्टता। एक साथ कई कंप्यूटर स्क्रीन का उपयोग करके दूर से काम करने के बारे में क्या? मेरा मतलब है, क्या यह आसान है? क्या यह स्पष्ट है? क्या दूर से काम करते समय मैं दैनिक सक्षम किए गए शॉर्टकट का उपयोग करता हूं? मुझे बहुत ज़्यादा यकीन नहीं है। यदि मैं वर्तमान में चल रहे कार्यक्रमों की सूची देखने के लिए Ctrl + Shift + Esc दबाता हूं तो क्या होगा? अरे हाँ, यह काम नहीं करता है, इसलिए अब मुझे इसे अलग तरीके से करना याद रखना चाहिए।

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

  • आपदा का अधिक प्रभाव। क्या आप निरर्थक सर्वर पर समाधान की मेजबानी करेंगे? क्या आपकी कंपनी में बेमानी नेटवर्क है? मान लें कि राउटर नीचे चला गया है, और निरर्थक नहीं है। इसका मतलब है कि सभी डेवलपर्स अब काम करने में असमर्थ हैं। बिल्कुल भी। क्योंकि उनके पास स्थानीय स्तर पर स्थापित सॉफ्टवेयर नहीं है। क्योंकि उनके पास स्रोत कोड भी नहीं है: यह सर्वर पर है। तो हर कोई रुक जाता है, और आप प्रति घंटे उन सभी लोगों को भुगतान कर रहे हैं जो राउटर को बदलने के लिए इंतजार कर रहे हैं।

  • हार्डवेयर की लागत। यदि यह एक और एक ही सर्वर है, तो इसकी लागत कितनी होगी? यदि आपके पास है, तो हम कहते हैं, बीस डेवलपर्स, क्या सर्वर पर 64 जीबी रैम पर्याप्त होगी? पूरा यकीन नहीं। दो CPU के साथ क्वाड-कोर समाधान पर्याप्त होगा? फिर, मुझे कुछ संदेह है। नहीं तो आप क्या सोचते हैं? बादल के कुछ प्रकार? या आपके पास एक स्केलेबल समाधान है जो कई सर्वरों पर काम करता है? क्या आप प्रति मशीन विंडोज सर्वर (यदि आप विंडोज का उपयोग करते हैं) की लागत का भुगतान करने के लिए तैयार हैं?

  • बिजली का खर्च। यदि आप पूरी तरह से दूरस्थ रूप से काम करते हैं, तो इसका मतलब है कि आप लगभग उतना ही पावर सर्वर-साइड खर्च करते हैं जैसे कि आप स्थानीय रूप से काम कर रहे थे, साथ ही स्थानीय मशीन और नेटवर्क द्वारा बर्बाद की गई बिजली की मात्रा।

  • लाइसेंस। मुझे यकीन नहीं है कि मुझे इसे लाभ या समस्या के रूप में रखना चाहिए, लेकिन मुझे लगता है कि इस मामले में सॉफ़्टवेयर लाइसेंसिंग की लागत बहुत अधिक होगी।

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


यदि सर्वर डाउन हो जाता है, तो आप सब कुछ खो देंगे। जब तक आप इस सर्वर को भी दोहराते हैं ...
रूडी

4
@ रूडी: ज्यादातर दुकानों में, अगर सर्वर डाउन हो जाता है, तो आप वास्तव में या तो स्थानीय रूप से काम नहीं कर सकते हैं (कोई डीबी परीक्षण के लिए नहीं, कोई चेकइन नहीं, कोई चेकआउट नहीं, कोई बग ट्रैकिंग का उपयोग नहीं, कोई ईमेल नहीं ...)
sleske

4
@sleske DB, ईमेल और सामान के साथ सहमत हैं, लेकिन DVCS के साथ आप कम से कम चेकइन / शाखा / ...
mbx

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

@ साल्स्के - क्या आज एक डीबी इंजन है जो किसी डेवलपर के वर्कस्टेशन पर नहीं चलाया जा सकता है?
केविन क्लाइन

18

हम डेवलपर मशीनों के रूप में ऑन-डिमांड amazon ec2 इंस्टेंस का उपयोग करते हैं। इससे लागत का कोई लेना-देना नहीं है। हमारे पास कई परियोजनाओं पर काम करने वाले "डेवलपर्स का पूल" है, और हमें परियोजनाओं को जल्दी से स्थानांतरित करने की क्षमता की आवश्यकता है।

सामान्य तौर पर, VM प्रारंभिक सेटअप समय बचाता है। लेकिन लंबे समय तक, यह उत्पादकता के नुकसान के कारण समय बर्बाद करता है। लागत एक गैर-धुरी है, क्योंकि डेवलपर लागत मशीन की लागत से बहुत अधिक है।

उत्पादकता लागत में शामिल हैं - एक वीएम छवि (कई मिनट), खराब जवाबदेही और संसाधन / मेमोरी की कमी शुरू करने के लिए लिया गया समय। ये शुरुआत में ज्यादा नहीं होते हैं, लेकिन समय के साथ इन्हें गुस्सा आने लगता है।

हमारी परियोजनाओं में से एक पर हमने "डाउनलोड कोड और मावेन चलाने" के लिए प्रारंभिक सेटअप को आसान बनाने के लिए कोड को रीलेक्ट किया। इस परिवर्तन के साथ, एक नए डेवलपर के लिए प्रोजेक्ट पर काम करना शुरू करना आसान था - और अब कोई भी अमेज़ॅन वीएम छवि का उपयोग नहीं करता है। हम अन्य परियोजनाओं पर भी इसका अनुकरण करना चाह रहे हैं, लेकिन इसके लिए समय लगेगा। तब तक, हमारे पास हमारे ec2 चित्र हैं।


14

यहाँ बहुत सावधान रहें। मुझे हाल ही में एक ग्राहक के लिए तैनात किया गया था, जहां आईटी विभाग में सभी के पास एक ही कारण के लिए अनिवार्य रूप से उनका वीएम था - उन्हें डेस्क पर लोअर एंड पीसी रखने और फिर वीएम में रिमोट करने और अपना सामान्य काम करने के लिए सक्षम करने के लिए।

वहां का अनुभव बहुत अच्छा नहीं था। प्रति सप्ताह कम से कम एक बार हम विभिन्न कारणों से बेहद धीमी गति से चल रहे थे। आम तौर पर, हम बता सकते हैं कि जब टीम पर कोई व्यक्ति प्रोसेसर गहन एसएसआईएस पैकेज का एक सेट चला रहा था। उन्होंने अंततः हम में से कुछ को अलग-अलग सर्वरों में स्थानांतरित कर दिया, जिससे कुछ को मदद मिली, लेकिन प्रदर्शन कभी भी सही नहीं था।

मुझे लगता है कि यदि आप इसे करने जा रहे हैं - सर्वर पावर में अपने उचित परिश्रम से काम करें, आपकी प्रोसेसिंग की आवश्यकता है, आप कितनी मशीनों की सेवा करने जा रहे हैं, आदि। यह आपको कुछ पैसे बचा सकता है, लेकिन यदि इसे सही तरीके से लागू नहीं किया गया है, तो बहुत सारे काम हो सकते हैं। सिरदर्द।

कृपया ध्यान दें: यह VM आर्किटेक्चर की एक लौ नहीं है - सिर्फ उन लोगों के लिए एक चेतावनी है जो इसे देख रहे हैं - सुनिश्चित करें कि आपके पास कार्यान्वयन से पहले एक पंक्ति में अपने बतख हैं।


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

12

आभासी मशीनों पर विकास काफी अच्छी तरह से काम कर सकता है, लेकिन केवल अगर सही किया जाता है:

  • सिर्फ इसलिए कि VMs का उपयोग करने से आपको अपनी पूरी टीम के लिए एक ही कंप्यूटर रखने की अनुमति मिलती है, बजाय एक डेवलपर के लिए इसका मतलब यह नहीं है कि यह एक अच्छा विचार है
  • रिबूटिंग को 24 घंटे के प्रतिक्रिया समय के साथ समर्थन टिकट खोलने की आवश्यकता नहीं होनी चाहिए
  • विकास वीएम डेवलपर्स से 5000 मील दूर डेटासेंटर में नहीं होना चाहिए।
  • जबकि VM डेवलपर्स द्वारा प्रबंधित किया जा सकता है और इसलिए असमर्थित है, इसका मतलब यह नहीं है कि उन्हें नेटवर्क सेवाओं जैसे स्रोत नियंत्रण तक पहुंचने में असमर्थ होना चाहिए।
  • दूरस्थ डेस्कटॉप कनेक्शन मानक होना चाहिए, न कि कुछ कस्टम "उच्च सुरक्षा" एप्लेट जो किसी भी उद्धरण को umlauts में बदल देता है।
  • एक नया वीएम प्राप्त करना या किसी मौजूदा का पुनर्निर्माण करना मिनटों का होना चाहिए, हफ्तों का नहीं

मैंने इन सभी मुद्दों को देखा है, और विशेष रूप से उनके साथ काम करने का आनंद नहीं लेते हैं। हालाँकि मेरे पास घर पर एक वीएम सेटअप है जो मैं पसंद से उपयोग करता हूं। स्थानीय इंस्टालेशन की तुलना में यह तेजी से चलता है और अलग-अलग प्रोजेक्ट्स के लिए अलग-अलग वातावरण जैसी चीजों की अनुमति देता है और जब पर्यावरण अस्थिर हो जाता है तब तेजी से पुनर्निर्माण होता है।


9

मैं VMs के साथ काम करता हूं, लेकिन मैं इसे आपके मुख्य प्रोजेक्ट के लिए अनुशंसित नहीं करता हूं।

विकास के लिए VM का उपयोग करने का कारण यह है क्योंकि मुझे विरासत परियोजनाओं (जैसे VB6, .NET 1.1, आदि ...) का समर्थन करना है और मैं VS2003 / 2005 / vb6 / etc स्थापित करके अपनी मुख्य मशीन को गंदा नहीं करना चाहता। ... यह ठीक है, लेकिन यहाँ और वहाँ रुक-रुक कर मुद्दे हैं।

इसके अलावा, इंटरैक्शन धीमा है, VMs को शुरू / बंद करने में थोड़ा समय लगता है, मूल UI प्रभाव (जैसे Win7 में एयरो), आदि नहीं है ...

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


मैं तीन मॉनिटर के विकास के लिए VMWare वर्कस्टेशन का उपयोग करता हूं।
JC01

8

विकास का # 1 नियम अपने डेवलपर्स को खुश रखने के लिए है। आप पाएंगे कि दूरस्थ वीएम के साथ निकट-असंभव। मल्टी-मॉनीटर सपोर्ट स्पोटी है, नेटवर्क लैग और ब्लिप्स तकलीफदेह हैं और लागत बचत आम तौर पर न्यूनतम है।

वीएम पर काम करें, सुनिश्चित करें, लेकिन स्थानीय वीएम के लिए भी अनुमति दें, और भौतिक कंप्यूटर को एक हास्यास्पद तेज जानवर भी बनाएं।

मैं 100% टेलीकॉम करता हूं, और मेरे व्यक्तिगत आईएसपी और वीपीएन के बीच - उच्च विश्वसनीयता के बावजूद - उनके पास पर्याप्त ब्लिप्स हैं जो मुझे पागल कर देंगे अगर मैं ऑफ़लाइन मोड में काम नहीं कर सका।

मैं आमतौर पर बस वर्चुअलबॉक्स छवियों की एक किस्म को स्पिन करता हूं और उनसे काम करता हूं। अगर आपको स्थानीय स्तर पर भी नए की जरूरत है, तो तार पर कुछ सौ एमबी कॉपी करना बहुत समय के लिए आसान नहीं है।


5

मेरी टीम ने "धीमी पीसी / फास्ट वीएम सर्वर" कॉन्फ़िगरेशन को सफलतापूर्वक लागू किया। 20 डेवलपर्स की एक टीम के लिए, हमारे पास एक 8 प्रोसेसर, 256GB रैम सर्वर था जो फाइबर के माध्यम से बहुत तेज सैन से जुड़ा था। यह महंगा था, लेकिन प्रत्येक डेवलपर को समान प्रदर्शन के साथ वर्कस्टेशन देने से सस्ता था। एक छोटी सी टीम (4 डेवलपर्स) के लिए मुझे यकीन नहीं है कि पैमाने की अर्थव्यवस्था में किक होगी और वास्तव में आपको कुछ भी बचाएगी।


1
जब आप किसी बड़ी परियोजना को संकलित करना शुरू करते हैं या अन्य संसाधन गहन कार्यों को करते हैं तो क्या आप अन्य VM में मुद्दों में भाग लेते हैं?
TheLQ

@ TheLQ कोई समस्या नहीं है, लेकिन सिस्टम को डिज़ाइन करने वाले व्यक्ति ने इसे पहले किया था इसलिए हार्डवेयर का चयन किया गया था और इस कार्य के लिए इसे ट्यून किया गया था। आखिरी मैंने उनसे पूछा, उन्होंने कहा कि प्रोसेसर हमेशा निष्क्रिय थे, लेकिन डिस्क पागल की तरह घूमती थी।
क्रिस्टोफर बिब्स

8 डेवलपर्स के साथ किनारे पर एक सैन डिस्क जा रहा था - आप 20 को क्या कहेंगे? उस कार्य के लिए हमें कितने सान की आवश्यकता है?
तोस्कन

1
@Toskan नहीं, हमारे पास सर्वर में 20 डेवलपर्स और 8 सीपीयू थे। डिस्क की संख्या के लिए, मेरा मानना ​​है कि हमारे SAN में 12 डिस्क थे, लेकिन मैं निश्चित नहीं हो सकता।
क्रिस्टोफर Bibbs

5

विकास के लिए VMs देखने लायक हैं, लेकिन वित्तीय लागत गलत कारण है।

यह मार्क होम्स की एक्सपर्ट .NET डिलीवरी में संक्षेप में NAnt और CruiseControl.net का उपयोग करके कवर किया गया था - संक्षेप में VM पर विकसित करने के लिए तर्क यह है कि यह कार्य के किसी भी पहलू को डेवलपर के विशेष कॉन्फ़िगरेशन पर निर्भर होने से हतोत्साहित करता है। आप हर प्रोजेक्ट की शुरुआत में अपने वीएम को न्यूक करते हैं, और जब तक आपको वास्तव में किसी विशेष टूल की आवश्यकता नहीं होती है, तब तक यह चारों ओर नहीं टिकता है। यह उस संभावना को कम करता है जो आपके द्वारा किए जाने वाले बदलावों को किसी की मशीन पर तोड़ रही होगी लेकिन आपकी। डेवलपर्स अपने खिलौनों को दूर ले जाने पर रो सकते हैं - लेकिन आखिरकार, उपकरणों पर निर्भरता एक कमजोरी है और आप स्वच्छ वातावरण में सहज रूप से ऐसा नहीं कर सकते कुछ भी एक गंध है।

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


7
यही कारण है कि आपके पास एक बिल्ड इंजन है - निरंतर एकीकरण को इस तरह की निर्भरता को पकड़ना चाहिए। हालाँकि, डेवलपर्स को उन सभी साधनों की आवश्यकता होती है जो उन्हें मिल सकते हैं।

4
हाँ - मेरे खिलौने मत निकालो। सामान बनाने के लिए वे मुझे उत्पादक बनाते हैं। तैनाती के लिए निर्माण, और लक्ष्य वातावरण में परीक्षण अलग-अलग समस्याओं को हल करना है।
जल्दी_अगले

एक विकल्प सेट-अप स्क्रिप्ट विकसित करना है जो आपके उपनाम, कॉन्फ़िगरेशन फ़ाइलों और अन्य सेटअप फ़ाइलों में कॉपी होगा। उदाहरण के लिए लिनक्स पर मेरे पास एक उर्फ ​​सेट है, जो उस सामान को गिट से नीचे खींचता है।
माइकल डुरंट

4

संभावित कमियां

  • यदि VM होस्ट नीचे जाता है ... आप सभी hosed हैं। यदि आपके पास कभी 20 लोगों की एक टीम होती है तो "GAH! HOST NOT RESPONDING !?" अनसन में ... यह मजेदार नहीं है।
  • यदि आप स्नैपशॉट की अनुमति दे रहे हैं ... तो वे संसाधनों को जल्दी से खाते हैं। 20 लोग * 10-20 स्नैपशॉट प्रत्येक को एचडीडी के बहुत सारे स्थान के लिए बनाता है (या कम से कम समस्या पैदा करने के लिए पर्याप्त है)।
  • यदि आप होस्ट पर संसाधन उपयोग के साथ समस्याओं का सामना करते हैं, तो फिर से, हर कोई दर्द का अनुभव करता है।

IME, यह एक अच्छा समाधान है और यह काम करता है, लेकिन आपको मेजबान पर कुछ सभ्य हार्डवेयर की आवश्यकता होती है और जब बुरी चीजें होती हैं, तो वे सभी के लिए होती हैं।


4

यह जोएल परीक्षण के सबसे महत्वपूर्ण मानदंडों में से एक में विफल रहता है।

मैं यह सुनिश्चित करता हूं कि मेरे सभी डेवलपर्स के पास कम से कम एक i3 या बेहतर लैपटॉप या डेस्कटॉप हो, जितना संभव हो उतना रैम हो।

8GB है जो मैं के लिए प्रयास करते हैं।

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

डेवलपर्स को कंपनी में सबसे तेज़ मशीनों की आवश्यकता होती है, जिसमें उनके स्थानीय मशीनों पर सबसे अधिक रैम और रूट अनुमतियाँ होती हैं। कहानी का अंत।


4

मैंने विकास के लिए पहले वीएम पर काम किया है, दोनों स्थानीय वीएम (स्थानीय पीसी पर चल रहे हैं) और रिमोट वाले। दूरदराज के लोगों के साथ काम करने के लिए स्थानीय लोग बहुत अच्छे थे ।

रिमोट वीएम, जिसे हम आरडीपी द्वारा जोड़ रहे थे, में प्रत्येक कीस्ट्रोक और एक्शन के बीच थोड़ी सी अंतराल थी। थोड़े समय के लिए ऐसी परिस्थितियों में विकसित करना संभव है लेकिन दिन-प्रतिदिन यह बहुत निराशाजनक हो गया।

मैं VMWare पर एक स्थानीय वीएम के तहत खुशी से विकसित हुआ क्योंकि मुझे लिनक्स मशीन पर फ्लैश बिल्डर चलाने की आवश्यकता थी, और जब तक इसके पास पर्याप्त मेमोरी थी, तब तक यह काफी खुश था - यह काफी उपयोग करने योग्य था।


मुझे बस इतना जोड़ना है, कि अच्छा प्रदर्शन पाने के लिए आपको नेस्टेड पेज टेबल्स (2.Gen वर्चुअलाइजेशन सपोर्ट) के साथ CPU की आवश्यकता है। साझा किए गए पथों के साथ VM वेयर का उपयोग करना काफी धीमा है जब आपके पास SSDs नहीं है (यह 7k फ़ाइलों के साथ रेपो पर git addया 20sec पर ले जाता है git status)
mbx

3

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


2

मेरी आखिरी नौकरी में, हमने काफी हद तक ऐसा ही किया:

हमने एक विंडोज टर्मिनल सर्वर का उपयोग किया, जहां हर डेवलपर का एक खाता था। डेवलपर्स के पास अभी भी नियमित पीसी थे (क्योंकि वे पहले से ही वहां थे), लेकिन पीसी ने केवल आरडीपी क्लाइंट चलाया।

हमने जावा का विकास किया, इसलिए सॉफ्टवेयर का इस्तेमाल किया जहां जावा कंपाइलर + आईडीई (ज्यादातर ग्रहण), प्लस वेब ब्राउज़र, डीबी क्वेरी टूल्स, वर्जन कंट्रोल क्लाइंट और कभी-कभार ऑफिस स्वाइप (OpenOffice.org हमारे मामले में)।

हमने किसी वास्तविक समस्या का सामना नहीं किया, और प्रदर्शन काफी सभ्य था।

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

तो चेतावनी यह है: जितनी जल्दी हो सके प्रदर्शन का मूल्यांकन करें, और अपने हार्डवेयर और इसके उपयोग की योजना बनाएं।


क्या डेवलपर्स इन खातों में सॉफ़्टवेयर स्थापित कर सकते हैं? कभी-कभी ग्रहण काम का साधन नहीं है।
केविन क्लाइन

@kevin cline: हाँ, sw इंस्टॉलेशन की अनुमति दी गई थी और संभव था। हालांकि, देवों के पास व्यवस्थापक अधिकार नहीं थे, इसलिए आप केवल SW स्थापित कर सकते हैं जिन्हें स्थापित करने या चलाने के लिए व्यवस्थापक अधिकारों की आवश्यकता नहीं थी। मैं उन सभी चीजों को स्थापित कर सकता हूं जिनकी मुझे समस्याओं के बिना ज़रूरत थी, लेकिन मैंने सुना है कि अभी भी ऐसे ऐप हैं जो स्थापित करने के लिए व्यवस्थापक अधिकारों की आवश्यकता है या यहां तक ​​कि बस चलाने के लिए भी।
sleske

@sleske मेरे अनुभव में डेवलपर्स को अपनी विकास मशीन, वर्चुअल या नहीं पर व्यवस्थापक अधिकार होना चाहिए। मेरी राय में एक डेवलपर को उनके द्वारा उपयोग किए जाने वाले उपकरणों का स्वामित्व लेने की आवश्यकता है और विकास मशीन सिर्फ एक और उपकरण है।
मैनफ्रेड

@ जॉन: यह वास्तव में उन उपकरणों पर निर्भर करता है जिनकी आपको आवश्यकता है। यदि आपके किसी भी उपकरण को व्यवस्थापक एक्सेस की आवश्यकता नहीं है, तो आपको व्यवस्थापक एक्सेस की आवश्यकता नहीं है। मैं नहीं देखता कि आपको हमेशा व्यवस्थापक पहुँच की आवश्यकता क्यों होनी चाहिए । बेशक, अगर आपको डिवाइस ड्राइवर स्थापित करने या पोर्ट 80 पर सामान चलाने की ज़रूरत है, तो आपको व्यवस्थापक पहुंच की आवश्यकता होगी।
Sleske

2

TL; DR: मैंने इसे कई नौकरियों में किया है और अब मैं इसे पसंद करता हूं।

लागत पर ध्यान केंद्रित करने का गलत कारण है। यहाँ कुछ बेहतर हैं।

कारण

  • विभिन्न परिवेशों (देव, परीक्षण और उत्पादन) में मंच की स्थिरता।
    • क्यों: यह पूरी तरह से एक दोष वेक्टर को समाप्त करता है, विभिन्न वातावरणों में प्लेटफॉर्म के अंतर से दोष।
  • सिस्टम परिवर्तन को विकास vms में पहले होने की पुष्टि करने की अनुमति देता है, सत्यापित किया जाता है, परीक्षण करने के लिए रोल अप किया जाता है, सत्यापित किया जाता है, और उत्पादन में रोल किया जाता है; विकास के साथ सभी बहुत आसान (और परीक्षण) वीएमएस।
    • क्यों: नियंत्रण। मैं स्नैपशॉट, रोलबैक कर सकता हूं, डेल्टास की पहचान कर सकता हूं, एक सर्वर पर परिवर्तन कर सकता हूं और केवल वीएम, आदि की नकल करके सफलता का प्रचार कर सकता हूं।
  • कभी-कभी आपके द्वारा विकसित सिस्टम केवल एक सुरक्षित नेटवर्क पर उपलब्ध होता है। वैकल्पिक रूप से, आपका सॉफ़्टवेयर जिस सर्वर पर चलेगा, उसमें केवल सीमित पहुंच या विभिन्न नेटवर्क विशेषताएँ हो सकती हैं।
    • क्यों: विकास वीएमएन वीएलएएन पर हो सकता है जिसमें लॉक डाउन सिस्टम या सेवा तक पहुंच हो। वैकल्पिक रूप से अगर देव सर्वर का परीक्षण और उत्पादन सर्वर के समान सीमित उपयोग होता है, तो नेटवर्क विशेषता या एक्सेस पर गलती से कोडिंग की आवश्यकता का प्रश्न कभी नहीं होता है जो उपलब्ध नहीं होगा।

चुनौतियां

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

दूरस्थ विकास की कई विविधताएं हैं, लेकिन वे आमतौर पर 2 मुख्य अंतरों को उबालते हैं।

  • दूरस्थ वातावरण में अपने विकास उपकरण चलाएं और प्रोटोकॉल का उपयोग करें जैसे कि RDP क्लाइंट, दूरस्थ X11 क्लाइंट, आदि।
  • स्थानीय स्तर पर अपने विकास उपकरण चलाएं और ट्रांसपोर्ट लेयर के रूप में ssh का उपयोग करके, दूरस्थ सर्वर पर पारदर्शी रूप से सिंक या निष्पादित करने के लिए प्रोटोकॉल का उपयोग करें।

उपकरण

ऐसे उपकरण हैं जो दूरस्थ विकास में मदद करेंगे, और आईडीई हैं जो इसे सुविधाजनक बनाते हैं। आपको यह जांचना होगा कि यह किस हद तक दूरस्थ विकास करने में सक्षम है, कई बिना उसी सर्वर पर नहीं चल रहे हैं जिस कोड को विकसित किया जा रहा है। हालाँकि अन्य उपकरण भी हैं।

  • सुरक्षित शेल: अधिकांश सफल दूरस्थ विकास सेटअप पासवर्ड समय पर लॉगिन (कुंजी प्रमाणीकरण का उपयोग करके), पारदर्शी मल्टीहॉप्स (जंप सर्वर समस्या को हल करता है) और प्रतिक्रिया समय को बेहतर बनाने के लिए अन्य कॉन्फ़िगरेशन विकल्पों का उपयोग करके ssh का उपयोग अधिक से अधिक डिग्री तक करते हैं। नोट: मेरे पास हमेशा SSH के गैर-ओपनएसएसएच कार्यान्वयन का उपयोग करने के मुद्दे हैं।
  • GNU स्क्रीन / TMUX: टर्मिनल मल्टीप्लेक्सर्स। स्क्रीन उनमें से पोती है और अभी भी मजबूत हो रही है, लेकिन मुझे लगता है कि ज्यादातर लोग टीएमयूएक्स पर स्विच करना शुरू कर रहे हैं (या यहां तक ​​कि)।
  • विम / Emacs : पुराने गार्ड, लेकिन दोनों अलग-अलग तरीकों से दूरस्थ विकास के लिए महान काम करते हैं। यह विम है इसलिए इसकी सभी जरूरतों को एक खोल है, जबकि Emacs स्थानीय रूप से चला सकते हैं और रिमोट डेवलपमेंट के लिए TRAMP का उपयोग कर सकते हैं।

1

थोड़े अलग सौदे पर - क्या आपने अपने प्रबंधकों / लेखाकारों को इन धीमी मशीनों के उपयोग की लागत को उजागर करने वाली एक स्प्रेडशीट दी है? उन्हें इंगित करें कि एक वीएम समाधान (जब तक सही नहीं किया जाता है, और यह आसान नहीं है) केवल डेवलपर्स और इसलिए कंपनी को एक ही नाव में डाल सकता है।


1

यह इस बात पर निर्भर करेगा कि आपके पास VMware स्थापित करने के लिए कितनी सहानुभूति शक्ति है, अगर आपको कम प्राथमिकता वाले सबपूल में डाल दिया जाता है तो आपके पास अन्य सबपूल की गतिविधि के आधार पर धीमी मशीनें होंगी।


1

हार्डवेयर सस्ता है, प्रोग्रामर महंगे हैं।

आप अपने प्रोग्रामर को धीमी विकास मशीन देकर निराश क्यों करना चाहेंगे? प्रदर्शन लाभ की तुलना में हार्डवेयर ताल को अपग्रेड करने की लागत से उन्हें लाभ होगा।

बेहतर मशीनों के लिए पूछें। बहुत कम से कम 4 जीबी रैम के लिए पूछें। एक और 2 जीबी टैबलेट जोड़ने से एक सप्ताह से भी कम समय में कमाया जाएगा।


समस्या 32 बिट विंडोज़ है जो नोटबुक पर स्थापित है
तोस्कन

1

दोहरी स्क्रीन समर्थन का अभाव हमेशा सौदा हत्यारा रहा है। मैं सिर्फ एक स्क्रीन पर महत्वपूर्ण विकास कार्य करने की कल्पना नहीं कर सकता।

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


RDP नवीनतम संस्करण में मल्टी-मॉनिटर का समर्थन करता है।
एंड्रयू लुईस


मुझे लगा कि हम यहां वीपीडी नहीं आरडीपी के बारे में बात कर रहे हैं। । ।
व्याट बार्नेट

क्षमा करें, मैं दूरस्थ VMs की बात कर रहा था। आप VMWare वर्कस्टेशन 7+
एंड्रयू लुईस

मुझे लगता है कि यह मॉनीटर के आकार पर निर्भर करता है।
मैनफ्रेड

0

यदि आपके पास RAID10 में 50 एसएसडी डिस्क के साथ मेनफ्रेम है, और केवल उस मेनफ्रेम पर 3-4 मशीनों का उपयोग करते हैं, तो यह काम कर सकता है।

अन्यथा वे सुस्त हैं, वास्तव में पिछड़ जाते हैं (हालांकि कुछ दुर्लभ मामलों में स्नैपशॉट इसकी भरपाई कर सकता है)।


0

मेरे पास कार्यालय में एक सभ्य डेस्कटॉप मशीन है जिसे मैं स्क्रीन शेयरिंग का उपयोग करके वीपीएन पर अपने लैपटॉप से ​​कनेक्ट कर सकता हूं।

यह घंटों की समर्थन घटनाओं और सामयिक मजबूर दूरस्थ कार्य के लिए काम करता है। यह निश्चित रूप से एक दूसरी मशीन पर पूरी तरह से कॉन्फ़िगर किए गए वातावरण को बनाए रखने से बेहतर है, या ऐसे सामान को विकसित करने के लिए जो किसी WAN में डेटासेंटर के लिए कम विलंबता की आवश्यकता होती है।

हालांकि, लंबे समय तक उस तरह से काम करना निराशाजनक है। मैंने इस अवसर पर दिन के दूसरे भाग में काम करने के लिए प्रेरित किया, जो कुछ भी था वह यह था कि मुझे घर पर रखा गया था।

लेटेंसी और स्क्रीन रियल एस्टेट मेरे लिए दो हत्यारे हैं।


0

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

हम iMacs पर विकसित होते हैं, जो वास्तव में अच्छा है, लेकिन हमारे वेब एप्लिकेशन उत्पादन में लिनक्स वातावरण पर चल रहे हैं। इसके साथ समस्या यह है कि अंततः, हम एक ऐसे मुद्दे पर चल सकते हैं जो केवल लिनक्स पर होता है और समस्या निवारण के लिए मुश्किल हो सकता है। यहीं पर वर्चुअल मशीनों की शक्ति आती है। हालांकि, मुझे 100% वीएम का उपयोग करने का विचार पसंद नहीं है।

मैंने हाल ही में वर्चुअल बॉक्स के साथ काम करना आसान बनाने के लिए वैग्रंट (http://vagrantup.com/docs/getting-started/why.html) और शेफ के बारे में सीखा। Vagrant आपको आसानी से वीएम शुरू करने की क्षमता देता है जब आपको इसकी आवश्यकता होती है, और जब आप नहीं करते हैं तो वीएम को फाड़ देते हैं। तो मैं अपने मैक का उपयोग करके अपना सारा विकास कर सकता था। फिर जब मैं अपने कोड का परीक्षण करने के लिए तैयार होता हूं, तो मैं इसका परीक्षण करने के लिए एक वीएम शुरू कर सकता हूं, और केवल जब तक मुझे इसकी आवश्यकता होती है, तब तक इसे चारों ओर रख सकता हूं। वैग्रंट आपको अपने सहकर्मियों के साथ वीएम को आसानी से साझा करने की क्षमता भी देता है ताकि आप सभी सुनिश्चित हो सकें कि आप एक ही वातावरण में काम कर रहे हैं।

मैं Vagrant की जाँच करने की सलाह दूंगा ताकि आप कम से कम उपलब्ध विकल्पों के बारे में जान सकें जब यह VMs के साथ काम करने और विकसित करने के लिए आता है।


0

मैं 5 मशीनों से संबंधित एक विरासत-परियोजना पर काम कर रहा हूं, प्रत्येक की एक गणना पाइपलाइन में एक भूमिका है (मशीन 1 मशीन 2 को अनुरोध भेजता है, बदले में मशीन 3 आदि के लिए अनुरोध भेजेगा)। वर्चुअल मशीन पर सेटिंग की तैनाती ने हमें बहुत बड़ा समय बचा लिया: 1. प्रणाली अविश्वसनीय थी क्योंकि देवता आलसी थे / उनके पास डिजाइन में परीक्षण करने के लिए समय नहीं था। 2. बहुत सारे सेटअप पर तैनात किया गया था और मुझे उन्हें समूहों में व्यवस्थित करने में समय की आवश्यकता थी।

अब मैं इसका उपयोग करता हूं क्योंकि मैं एक ही बार में कई परियोजनाओं पर काम करता हूं। मेरे पास अब मुख्य समस्या है: 1. वीएम बनाए रखने के लिए बहुत अधिक समय ले रहे हैं। 2. वीएम चलाने के लिए भारी मात्रा में मेमोरी का सेवन कर रहे हैं

जब आप ऑर्डर करने के लिए उनका उपयोग करने का प्रयास करते हैं तो यह थोड़े ही वीएम को उपयोग करने के लिए कठिन प्रदान करता है। अपने ईमेल और टेक्स्ट के साथ एक मुख्य मशीन रखें, जो डीएमएकेटेड वीएम पर विकसित हो। अपने जीवन को साफ और स्वच्छ रखता है।


0

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

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

अभी भी यकीन नहीं है कि यह जाने का सही तरीका है, लेकिन यह वह जगह है जहां हम जा रहे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.