आप संस्करण नियंत्रण, परीक्षण और सिस्टम प्रशासन के लिए निरंतर एकीकरण / तैनाती जैसी विकास प्रथाओं को कैसे लागू करते हैं?


18

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

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

आमतौर पर, या विशेष रूप से, आप सिस्टम प्रशासन में इसे कैसे प्राप्त करते हैं?

(पहली बात जो दिमाग में आती है, वह है वर्चुअल मशीन का इस्तेमाल करना और वर्जन कंट्रोल में वर्चुअल मशीन की इमेज डालना, लेकिन मुझे यकीन है कि बहुत सारा साहित्य और चतुर समाधान मौजूद है, जिसकी मुझे जानकारी नहीं है।)


क्या आप तकनीकी उपकरणों के बारे में पूछ रहे हैं या इस तरह के प्रबंधन के लिए रूपरेखा के बारे में पूछ रहे हैं? क्योंकि आईटीआईएल अनुशासन से परिवर्तन और रिलीज प्रबंधन जैसी चीजों का उल्लेख किए बिना बाद के विकल्प के बारे में बात करना मुश्किल होगा।
रोब मोइर

@ DJPon3 मैं सामान्य दृष्टिकोण के बारे में जानना चाहता हूं (इसके बारे में कैसे सोचते हैं), और इसे करने के लिए उपकरण। शुरुआती बिंदु के रूप में मेरे अंतिम पैराग्राफ का उपयोग करने के लिए स्वतंत्र महसूस करें।
arex1337

जवाबों:


15

संक्षिप्त उत्तर "OS परिनियोजन प्रबंधन", "कॉन्फ़िगरेशन प्रबंधन" और "सॉफ़्टवेयर पैकेजिंग" है। लंबे उत्तर इस प्रकार है।

मैं सिस्टम प्रशासन में "सिस्टम" के रूपों के टूटने के साथ डैनियल पिटमैन के उत्तर को जोड़ना चाहूंगा।

एक प्रणाली या वातावरण में निम्नलिखित शामिल हैं:

  • सर्वर
  • ऑपरेटिंग सिस्टम
  • विन्यास
  • विक्रेता पैकेज; तथा
  • स्थानीय पैकेज

इन्हें अलग करने की प्रक्रिया इस प्रकार होगी:

  • ओएस परिनियोजन या इमेजिंग
  • विन्यास प्रबंधन
  • सॉफ्टवेयर पैकेज प्रबंधन
  • लेखा परीक्षा / लॉगिंग
  • निगरानी
  • बैकअप

और आप गैर-कार्यात्मक लक्ष्यों को प्राप्त करने में सहायता करने के लिए इन्हें एक साथ जोड़ना चाहेंगे:

  • repeatability
  • रख-रखाव
  • मापन योग्यता
  • प्रदर्शन
  • trackability
  • testability
  • चंचलता

यह एक त्वरित मस्तिष्क डंप है। मुझे यकीन है कि सभी सूचियों में अधिक जोड़ा जा सकता है।

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

इसमें आपकी सहायता करने के लिए बहुत सारे उपकरण हैं, उनमें से कुछ का डैनियल ने उल्लेख किया है। कुछ अन्य हैं:

  • किकस्टार्ट्स (रेडहैट आधारित), प्राइस्ड (डेबियन आधारित), डब्ल्यूडीएस (एमएस विंडोज) ज्ञात ओएस वातावरण की तैनाती के लिए
  • स्पेसवॉक / सैटेलाइट (रेडहैट आधारित), कॉन्फ़िगरेशन और पैकेज प्रबंधन के लिए समूह नीतियां (एमएस विंडोज)
  • YUM और APT पैकेजिंग सिस्टम जनरेट करने, तैनात करने, अपग्रेड करने और हटाने के लिए पैकेज (बायनेरिज़, डेटा और कॉन्फ़िगरेशन जिसमें सॉफ्टवेयर का एक टुकड़ा शामिल है)
  • निगरानी के लिए Nagios, OpenNMS और SCOM
  • बैकअप के लिए अमांडा, बकुला और विंडोज बैकअप सर्वर
  • प्रदर्शन की निगरानी के लिए मुनिन, पीसीपी और हाइपरिक
  • संस्करण नियंत्रण के लिए सीवीएस, एसवीएन, जीआईटी या बाजार
  • निर्माण प्रबंधन के लिए हडसन और जेनकिंस
  • परीक्षण के लिए सेलेनियम और रोबोट
  • रिकॉर्डिंग, संचार और ट्रैकिंग के लिए Bugzilla, रिक्वेस्ट ट्रैकर और जीरा

फिर, यह एक व्यापक सूची नहीं है, लेकिन कुछ ऐसा है जो मुझे मार्गदर्शन करने के लिए मेरे सिर में रहता है और उम्मीद है कि यह आपकी मदद भी करेगा।


मार्विन क्या है? मुझे इसका संदर्भ नहीं मिल रहा है, या यह एक टाइपो है?
thelsdj

एस / मारविन / हडसन / - कि @thelsdj :-) खोलना के लिए धन्यवाद
nearora

16

अस्वीकरण: मैं कठपुतली के डेवलपर्स में से एक हूं।

स्पष्ट तरीका सिर्फ अवधारणाओं को लागू करना है: विकास / परीक्षण / उत्पादन के एक चक्र को परिभाषित करना, और उनके माध्यम से परिवर्तन को धक्का देना। सिस्टम को ट्रैक करने के लिए संस्करण नियंत्रण का उपयोग करें।

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

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

यह कैसे करना है, इस बारे में अच्छी जानकारी का एक और स्रोत है DevOps आंदोलन। डेवलपर्स और ऑपरेशन्स स्टाफ के बीच एक बेहतर सहयोग है, लेकिन यह भी इसी दिशा में आगे बढ़ता है।


15
अब हम जानते हैं कि हमारे कठपुतली प्रश्नों के बारे में किसे परेशान करना है ...
ewhite

1

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

सिस्टम सेंटर वर्चुअल मशीन मैनेजर (SCVMM) में, सेवाओं को 'सर्विस टेम्प्लेट्स' (उदाहरण के लिए एक थ्री-टियर सर्विस) और निष्पादन वातावरण को 'क्लाउड्स' (जैसे विकास, मंचन, उत्पादन) के रूप में परिभाषित किया जाता है। सेवा टेम्प्लेट को विभिन्न क्लाउड्स के लिए (स्वचालित शैली में) संस्करण और रोल आउट किया जा सकता है। कवर के तहत, SCVMM वर्चुअलाइज्ड हार्डवेयर (VMs आदि) और सॉफ्टवेयर (OS, ऐप कंपोनेंट्स आदि) को प्रोविजनल, परिनियोजित और कॉन्फ़िगर करने का काम करता है।

सिस्टम सेंटर सर्विस मैनेजर वह टुकड़ा होता है जो इसे प्रोसेस पॉइंट-ऑफ-व्यू से एक साथ जोड़ता है। उदाहरण के लिए, मुद्दा प्रबंधन और परिवर्तन नियंत्रण।

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