बुनियादी ढांचे की तैनाती के लिए परीक्षण संचालित विकास?


11

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

जवाबों:


3

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

मूल रूप से आपको सर्वरों को तैनात करने, परीक्षण मोड में सेवाओं को शुरू करने और फिर सेवाओं के खिलाफ किसी अन्य सर्वर (या सर्वरों की श्रृंखला) से परीक्षण चलाने की आवश्यकता होगी। फिर अंत में उन्हें उत्पादन में डाल दिया।

शायद डेटाबेस, वेबपेज और ssh सेवाओं से जुड़ने के लिए अजगर लिपियों का उपयोग करना। और फिर PASS / FAIL वापस करें। आपके लिए एक अच्छी शुरुआत होगी।

या आप इसे ज़ेनॉस, नगियोस या मुनिन की तरह एक निगरानी समाधान में रोल कर सकते हैं। फिर आप परीक्षण कर सकते हैं, तैनाती के दौरान; और उत्पादन के दौरान निगरानी करें।


मैं यहाँ हर टिप्पणी को +1 करता हूँ। वाह।
जोसेफ केर्न

1

मुझे लगता है कि निगरानी उपकरण के साथ जोसेफ केर्न सही रास्ते पर हैं। विशिष्ट टीडीडी चक्र है: एक नया परीक्षण लिखें जो विफल रहता है, फिर सिस्टम को अपडेट करें ताकि सभी मौजूदा परीक्षण पास हो जाएं। यह नागियो के अनुकूल होना आसान होगा: फेलिंग चेक को जोड़ना, सर्वर को कॉन्फ़िगर करना, सभी चेक को फिर से चलाना। यह सोचने के लिए आओ, मैंने कभी-कभी ऐसा किया है।

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


1
मैंने कैनोनिकल टीडीडी चक्र में एक कदम छोड़ दिया: रिफैक्टिंग। सर्वर व्यवस्थापक के लिए यह प्रत्येक परिवर्तन के बाद बेहतर कॉन्फ़िगरेशन प्राप्त करने के लिए सेवाओं को माइग्रेट करने या पुनर्वितरित करने के लिए अनुरूप है: मुझे लगता है कि इन दिनों पहले से ही अधिकांश एडमींस के लिए नौकरी का वर्णन बहुत अधिक है
Zac थॉम्पसन

यह दृष्टिकोण काफी हद तक है जो मैं पहले से ही कर रहा हूं (हालांकि s / Nagios / Zabbix /) हालांकि, ये परिवर्तन सीधे उत्पादन में जाते हैं, और ऐसा लगता है कि मैं बेहतर कर सकता था।
जॉन टॉपर

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

1

हालांकि मैं अभी तक कठपुतली मैनिफेस्टों के साथ TDD नहीं कर पाया, लेकिन हमारे पास परीक्षण के बाद उत्पादन में बदलाव को रोकने के लिए एक अच्छा चक्र है। हमारे पास दो कठपुतली स्थापित हैं, एक हमारा उत्पादन कठपुतली है और दूसरा हमारा विकास कठपुतली है। हम निम्नलिखित सेट करने के लिए कठपुतली के "वातावरण" का उपयोग करते हैं:

  • विकास वातावरण (कठपुतली मैनिफेस्टों पर काम करने वाले प्रत्येक व्यक्ति के लिए)
  • परीक्षण वातावरण
  • उत्पादन वातावरण

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

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

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


1

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

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

एक उदाहरण यह होगा कि यदि आप अलग-अलग हिस्सों के लिए अपाचे और अलग-अलग कॉन्फ़िगरेशन फ़ाइलों का उपयोग करते हैं, तो आप भागों का परीक्षण कर सकते हैं और साथ ही साथ अपने परीक्षण मशीन पर चलने के लिए उन्हें लपेटने के लिए एक अलग httpd.conf फ़ाइल का उपयोग कर सकते हैं। फिर आप परीक्षण कर सकते हैं कि परीक्षण मशीन पर वेबसर्वर वहां सही परिणाम देता है।

जिस तरह से आप एक ही मूल पैटर्न का पालन करते हैं। परीक्षण लिखें, परीक्षा पास करें, आपके द्वारा किए गए कार्य को फिर से करें। जैसा कि ऊपर उल्लेख किया गया है, इस रास्ते का पालन करते समय, परीक्षण हमेशा स्वीकार किए गए टीडीडी तरीके से विफल नहीं हो सकते हैं।

रिक


1

मेरा मानना ​​है कि निम्नलिखित लिंक रुचि के हो सकते हैं

  1. cucumber-nagios - प्रोजेक्ट जो आपको अपने ककड़ी सूट को Nagios प्लगइन में बदलने की सुविधा देता है और जो SSH, DNS, Ping, AMQP और जेनेरिक "एग्जीक्यूट कमांड" प्रकार के कार्यों के लिए चरण परिभाषाओं के साथ आता है
    http://auxesis.github.com/cucumber- nagios /
    http://www.slideshare.net/auxesis/behaviour-driven-monitoring-with-cucumbernagios-2444224
    http://agilesysadmin.net/cucumber-nagios

  2. चीजों की कठपुतली / अजगर पक्ष पर भी कुछ प्रयास है http://www.devco.net/archives/2010/03/27/infrastructure_testing_with_mcollective_and_cucumber.php

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