क्या वर्चुअल मशीन के रूप में वितरित किए गए सॉफ़्टवेयर को स्वीकार नहीं करने के कोई कारण हैं?


40

यह रसद के बारे में एक प्रश्न है, न कि तकनीकी प्रश्न।

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

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

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

मैं वास्तव में एक अच्छे कारण के बारे में नहीं सोच सकता कि क्यों एक वीएम डिलिवरेबल को स्वीकार नहीं करना चाहिए, लेकिन मैं सिर्फ इस समुदाय द्वारा इसे चलाना चाहता था यदि मैं गायब हूं।


24
VM पर विंडोज सॉफ्टवेयर का लाइसेंस दिमाग में आता है।
रॉबर्ट हार्वे

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

19
यह एक तरीका है "मेरे मशीन पर काम करने" का। संकट।
माइकल हाउस

2
मुझे शक है कि कोड छोटी गाड़ी है, लेकिन केवल एक मशीन पर काम करता है। डेवलपर्स नहीं जानते कि वे क्या कर रहे हैं, और सेटअप को फिर से नहीं बना सकता है जो इसे काम करता है, इसलिए उन्होंने बस एक डिस्क छवि बनाई और इसे वीएम में रखा।
MGOwen

क्या आपके पास बाहरी पार्टी (संभवतः विंडोज़ वीएम को सौंपने के अधिकारों के बिना) के लिए आपके द्वारा दिया गया कोई भी लाइसेंस वीएम होगा?
बुरहान अली

जवाबों:


66

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


9
+1, डरावना हिस्सा "गोल्डन इमेज" मुद्दा है जो आपके पास छह वर्षों में हो सकता है।
व्याट बार्नेट

8
यदि ठेकेदार एक सेटअप गाइड (जिसे परीक्षण किया जाना चाहिए) भी प्रदान कर सकता है, तो मुझे इसके साथ कोई समस्या नहीं होगी।
जेमी

2
@ जैमी: लेकिन अगर आप सेटअप गाइड का परीक्षण करते हैं, तो वीएम की जरूरत नहीं रह जाती है,
मैटनज़

10
यह शब्द "कोल्ड स्टार्ट" प्रक्रिया है, जिसका अर्थ है यदि आप एक ठंडी मशीन से शुरू करते हैं - आपको एक चल रही छवि को पाने के लिए क्या करना है? मैं इस तथ्य से भी परेशान हूं कि उन्होंने कॉन्फ़िगरेशन में कुछ बदलाव किया हो सकता है, स्थापित सॉफ़्टवेयर जिसे दस्तावेज नहीं किया गया था, या इसमें एक पिछला दरवाजा भी शामिल हो सकता है। मैं उस मशीन पर मौजूद हर चीज को जानना चाहूंगा।
ipaul

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

36

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

यदि / जब आपके पास वीएम अप और रनिंग है, तो आपको स्रोत कोड को अपने सामान्य कोड रिपॉजिटरी में मोड़ना चाहिए, जैसा कि आपने (शायद) सिर्फ एक स्रोत कोड संग्रह के साथ किया होगा।


11
इस प्रश्न के उत्तर के लिए मैंने केवल +1 दिया है, लेकिन एकमात्र उत्तर में कोड को इन-हाउस संस्करण नियंत्रण में लाने का उल्लेख है। मुझे उम्मीद है कि VM में एक रिपॉजिटरी भी शामिल होगी, लेकिन मैं इस पर दांव नहीं लगाऊंगा, और इसमें कोड का केवल जारी संस्करण हो सकता है।
माइक शेरिल 'कैट रिकॉल'

18

मुझे इस बात की चिंता होगी कि मशीन में कुछ ऐसा कॉन्फ़िगर किया गया है जो कि अनडॉस्म्ड है, जिसे पुन: पेश करना मुश्किल है, या आपके मानक कॉन्फ़िगरेशन में स्वीकार्य नहीं है।

Ymmv, लेकिन मैं वास्तव में तब तक किए गए विकास पर विचार नहीं करता जब तक कि परियोजना को मानक देव मशीनों के निर्माण के लिए प्रदर्शित नहीं किया जा सकता है और कमोडिटी सर्वर / क्लाइंट पर तैनात किया जा सकता है।


1
यह सुनिश्चित करने पर कि VM केवल एक सुविधा सुविधा है। अन्यथा आप किसी चीज़ के साथ समाप्त हो सकते हैं जो केवल उस वीएम पर बनाता है क्योंकि यह कुछ अनिर्दिष्ट, पैच संकलक या लिंकर संस्करण या कुछ समान रूप से भयानक पर निर्भर है।
पीटीएक्स

10

अपने कुछ प्रोजेक्ट्स में, मुझे इस तरह से सॉफ्टवेयर देने के लिए कड़ी मशक्कत करनी पड़ी। यह एक उत्कृष्ट प्रारूप है।

सुनिश्चित करें कि आप:

  1. ठेकेदार से प्राप्त प्रत्येक रिलीज़ का स्रोत कोड प्राप्त करें, और इसे अपने स्वयं के स्रोत नियंत्रण प्रणाली में मर्ज करें
  2. VM के पर्यावरण सेटअप पर प्रलेखन प्राप्त करें, और इसे घर में पुन: पेश कर सकते हैं। प्रलेखन को अपने स्रोत नियंत्रण में भी जोड़ें

अतिरिक्त फायदे:

  1. यदि आप वीएम प्रारूप में रिलीज़ को संग्रहीत करते हैं (.vhd या कुछ बचाएं) तो उन्हें लाइन में लाना और लाइन से कई साल नीचे चलाना बहुत आसान है, भले ही मूल टीम खंडित हो या चली गई हो।
  2. अलग-अलग वर्जन को साइड से चलाना काफी आसान है।
  3. कुछ VMWare एकीकरण के साथ (यह हाइपरवी के साथ भी संभव हो सकता है), आप इनको एक सीआई बिल्ड में स्वचालित रूप से एकीकृत कर सकते हैं।
  4. यह डेवलपर समय बचाता है (शुरुआत में), क्योंकि कोई भी वातावरण सेटअप नहीं है।

मैं कहूंगा कि इसके लिए जाना चाहिए।


हम्म। अच्छे अंक।
MGOwen

1
समय के साथ धीमी गति से प्रदर्शन की तुलना में पर्यावरण सेटअप समय सस्ता है। हमारे पास एक वीएम है जैसे घर में हम रिलीज बिल्ड का निर्माण करते हैं, लेकिन दिन के उपयोग के लिए, वीएम विधि बस बहुत सुस्त है और आपको केवल एक स्क्रीन (ज्यादातर मामलों में) का उपयोग करने के लिए मिलता है। यह 1000 कट बनाम एक अच्छी साफ-सुथरी बीथिंग से मौत की तरह है।
नावक

@ Mark0978 मुझे लगता है कि # 4 एक YMMV स्थिति है, यह हमें प्रलेखन से एक पर्यावरण सेटअप को रिवर्स करने में इंजीनियर को तीन सप्ताह का समय लगा, क्योंकि अब हमें मूल सर्वर सेटअप (IIS 6+ 3 पार्टी लाइब्रेरी / http हैंडलर्स का एक गुच्छा) तक पहुंच नहीं थी। । मेरा कहना है कि काम करने का उदाहरण उपयोगी है। अधिकांश आलोचना मैंने सुनी है क्योंकि आमतौर पर VM होस्ट पर्याप्त नहीं है। हाहा- 'अच्छा साफ सुथरा।'
ज़ाचरी येट्स

1
मैं वास्तव में इसे एक विकास पर्यावरण दंड के रूप में सोच रहा था (जो कि पूछा नहीं जा सकता था), डेवलपर को हर समय धीमा करना बस इसके लायक नहीं है। हमारे सभी उत्पादन सर्वर एक होस्टिंग सुविधा में VMs पर चलते हैं, लेकिन वे सभी गैर-ग्राफ़िकल सर्वर हैं।
बोटकोडर

1
@ Mark0978 मुझे वह तरीका पसंद है जो आदमी लिखता है। मुझे लगता है कि मैंने # 4 के साथ अपनी बात स्पष्ट नहीं की है। मैं एक धीमी गति से VM के काम करने की वकालत नहीं कर रहा हूँ। जब आपको काम करने के लिए एक या दो दिन का समय मिल जाता है, और पर्यावरण को स्थापित करने में आपको तीन सप्ताह लगते हैं, तो बस वीएम का उपयोग करें। आपको पूरी स्थिति का संज्ञान होना चाहिए।
Zachary Yates

6

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

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

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


4

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

एक उपकरण जो मैं एक नई विंडोज मशीन को स्थापित करने / स्वचालित करने में मदद करने के लिए प्रयोग कर रहा हूं, वह चॉकलेटी है

चॉकलेट नुगेट एक मशीन पैकेज मैनेजर है, जो कुछ हद तक उपयुक्त है, लेकिन विंडोज को ध्यान में रखकर बनाया गया है।

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


जैसा कि मैं समझता हूँ कि यह एक उपकरण है जिसे वैग्रंट कहा जाता है जो विशेष रूप से इस कार्य के लिए बनाया गया है।
एम। डडले

3

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


3

मैंने सोचा होगा कि विकास अनुबंध आपको ठेकेदार के वितरण और दायित्वों को निर्धारित करेगा।

कम से कम मैं इस माध्यम से टहलने और प्रलेखन का काम करने का अनुरोध कर रहा हूं और इस बात के लिए महत्वपूर्ण है कि आप परियोजना को फिर से बना सकते हैं, इसे स्वयं बना सकते हैं और तैनात कर सकते हैं।

कुछ जाने के लिए तैयार होने के संदर्भ में, मुझे लगता है कि VM पूरी तरह से स्वीकार्य है।

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


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

2

यहां तक ​​कि आंतरिक रूप से विकसित एम्बेडेड सिस्टम के लिए भी यह महत्वपूर्ण है कि बिल्ड पर्यावरण को सेटअप करने के तरीके का वर्णन करने के लिए एक दस्तावेज हो। आपको बिल्ड वातावरण सेट करने के लिए आवश्यक सभी बायनेरिज़ / टूल की फ़ाइलों को संग्रहीत करने और पुस्तकालयों को संग्रहीत करने की भी आवश्यकता है।


1

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

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

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

मैं उन्हें या तो:

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

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

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


0

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

हालांकि, जैसा कि अन्य पोस्टरों ने उल्लेख किया है कि दो चीजें हैं जो मुझे करनी होंगी। सबसे पहले, सुनिश्चित करें कि VM को इंस्टॉल करते समय, इसे एक मशीन पर रखें जो आपके नेटवर्क से अलग हो। आप इंटरनेट से एक अज्ञात EXE डाउनलोड नहीं करेंगे और इसे अपनी मशीन पर इंस्टॉल करेंगे।

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

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