मेरी टीम तीन माइक्रोस्कोप विकसित करती है। एक व्यापार परिदृश्य प्रदान करने के लिए तीन काम एक साथ काम करते हैं। वे आरईएसटी और खरगोश एमक्यू के साथ संवाद करते हैं। ऐसा लगता है कि Toby Clemson's presentation on Microservice Testing में।मैं माइक्रोसॉर्सेस में कई निरंतर वितरण पाइपलाइनों में एंड-टू-एंड परीक्षण कैसे शामिल करूं?
प्रत्येक माइक्रोस्कोयर की अपनी सतत वितरण पाइपलाइन है। वे वितरण, परिनियोजन पाइपलाइनों का अर्थ है, जिसका अर्थ है कि अंत में एक मैन्युअल रिलीज निर्णय है।
मैं व्यापार परिदृश्य, अर्थात सभी microservices भर के लिए एंड-टू-एंड परीक्षण, वितरण पाइपलाइनों में कैसे शामिल हो?
हम एक साझा एंड-टू-एंड चरण कि तीनों microservices तैनात हैं और उन पर एंड-टू-एंड परीक्षण चलाता जोड़ें:
मेरी टीम इस सुझाव दिया। प्रत्येक बार पाइपलाइनों में से एक इस चरण तक पहुंचता है, यह तैनाती और परीक्षण करता है। एक सेमफोर सुनिश्चित करता है कि पाइपलाइन दूसरे के बाद मंच को पार कर जाए। विफलता सभी तीन पाइपलाइनों को रोकती है।
एंड-टू-एंड चरण में एक अड़चन है:
मेरे लिए, यह सब स्वतंत्रता microservice वास्तुकला पहली जगह में जीतता है बलिदान करने के लिए लगता है। एक तेज पाइपलाइन धीमी पाइपलाइनों को विफल कर सकती है क्योंकि यह अंततः अंत तक चरण को सुरक्षित रखती है, जिससे दूसरों को अपने परीक्षण चलाने से पहले इंतजार करना पड़ता है।
एक पाइपलाइन में विफलता अन्य पाइपलाइनों को वितरित करने से रोकती है, जिससे उन्हें तत्काल बग फिक्स शिपिंग से अक्षम कर दिया जाता है।
समाधान नए व्यावसायिक परिदृश्यों के अनुकूल नहीं है जिन्हें माइक्रोस्कोप के विभिन्न संयोजनों की आवश्यकता होती है। हम या तो एक सुपर-स्टेज के साथ समाप्त हो जाएंगे जो सभी सूक्ष्मदर्शी तारों को चलाता है, या प्रत्येक व्यावसायिक परिदृश्य को अपने स्वयं के, नए अंत-टू-एंड चरण की आवश्यकता होगी।
अंत-टू-एंड चरण केवल एक संकीर्ण परिणाम दिखाता है क्योंकि यह केवल माइक्रोस्कोव संस्करणों का एक सटीक संयोजन एक साथ काम करता है। यदि उत्पादन में विभिन्न संस्करण हैं, तो यह गारंटी नहीं देता है कि यह भी काम करेगा।
चरण अंत में मैन्युअल रिलीज निर्णय के साथ भी संघर्ष में है: क्या होगा यदि कोई निर्माण अंत तक समाप्त हो गया लेकिन हम इसे उत्पादन में जारी नहीं करने का निर्णय लेते हैं? तब उत्पादन में एंड्रॉइड का एक अलग संस्करण अंत-से-अंत की तुलना में होता है, जिसके परिणामस्वरूप विकृत परिणाम होते हैं।
तो ऐसा करने का बेहतर तरीका क्या है?
व्यापक रूप से सहमत हैं। इस प्रस्ताव के साथ मेरी समस्या यह है कि यह एक अंतर्निहित धारणा बनाता है कि आप कभी भी सॉफ्टवेयर जारी नहीं करना चाहते हैं जब तक कोई विशेष व्यावसायिक मामला संतुष्ट न हो। मैं पाइपलाइन के बाहर व्यापार केस परीक्षणों को पूरी तरह से चलाने और समय-समय पर चलाने का लुत्फ उठाऊंगा। विफलताओं को तब प्रत्येक सेवा के बैकलॉग के खिलाफ मुद्दों के रूप में उठाया जाना चाहिए। –