5

मेरी टीम तीन माइक्रोस्कोप विकसित करती है। एक व्यापार परिदृश्य प्रदान करने के लिए तीन काम एक साथ काम करते हैं। वे आरईएसटी और खरगोश एमक्यू के साथ संवाद करते हैं। ऐसा लगता है कि Toby Clemson's presentation on Microservice Testing में।मैं माइक्रोसॉर्सेस में कई निरंतर वितरण पाइपलाइनों में एंड-टू-एंड परीक्षण कैसे शामिल करूं?

प्रत्येक माइक्रोस्कोयर की अपनी सतत वितरण पाइपलाइन है। वे वितरण, परिनियोजन पाइपलाइनों का अर्थ है, जिसका अर्थ है कि अंत में एक मैन्युअल रिलीज निर्णय है।

मैं व्यापार परिदृश्य, अर्थात सभी microservices भर के लिए एंड-टू-एंड परीक्षण, वितरण पाइपलाइनों में कैसे शामिल हो?

हम एक साझा एंड-टू-एंड चरण कि तीनों microservices तैनात हैं और उन पर एंड-टू-एंड परीक्षण चलाता जोड़ें:

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

  • एंड-टू-एंड चरण में एक अड़चन है:

    Shared end-to-end stage

    मेरे लिए, यह सब स्वतंत्रता microservice वास्तुकला पहली जगह में जीतता है बलिदान करने के लिए लगता है। एक तेज पाइपलाइन धीमी पाइपलाइनों को विफल कर सकती है क्योंकि यह अंततः अंत तक चरण को सुरक्षित रखती है, जिससे दूसरों को अपने परीक्षण चलाने से पहले इंतजार करना पड़ता है।

  • एक पाइपलाइन में विफलता अन्य पाइपलाइनों को वितरित करने से रोकती है, जिससे उन्हें तत्काल बग फिक्स शिपिंग से अक्षम कर दिया जाता है।

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

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

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

तो ऐसा करने का बेहतर तरीका क्या है?

+0

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

उत्तर

0

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

अधिक व्याख्या:

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

+0

यदि हम टीमों में एंड-टू-एंड टेस्ट खींचना चाहते हैं, तो इसका मतलब यह होगा कि प्रत्येक माइक्रोस्कोप का अपना अंत-टू-एंड टेस्ट चरण होता है। ऐसा मंच क्या करेगा? क्या यह अपने स्वयं के माइक्रोस्कोस और अन्य दो माइक्रोस्कोविसेज के नवीनतम रिलीज संस्करणों को तैनात करेगा, फिर एक एंड-टू-एंड टेस्ट सूट चलाएं जो किसी स्वतंत्र भंडार में कहीं संग्रहीत है? – Florian

+0

ऐसे परीक्षण चरण में मैं सभी सेवाओं के उत्पादन संस्करण और एक नया सेवा संस्करण तैनात करूँगा जिसे आप परीक्षण करना चाहते हैं। Btw। आम तौर पर निर्भरता माइक्रोस्कोर्सेस दृष्टिकोण के साथ बहुत सीमित होनी चाहिए और इस प्रकार "एकीकरण" का जोखिम होना चाहिए-कम विफलता। इसका मतलब है कि आपको यह भी सोचना होगा कि क्या निवेश उचित है या नहीं। –

+0

@OswinNoetzelmann यह बहुत कुछ लगता है जैसे मैं स्वतंत्र टीमों/तैनाती के साथ एक माइक्रोस्कोप आर्किटेक्चर में ई 2 ई परीक्षण की उम्मीद कर रहा था। क्या आप इस विषय के बारे में कोई भी लेख, किताबें, वार्ता या कुछ जानते हैं? या यह एक आम ज्ञान है? – foxylion

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