बड़ी कंपनियों में निरंतर एकीकरण कैसे आयोजित किया जाता है?


11

मेरी कंपनी में, यह जांचने के लिए कोई इंटरमीडिएट बिल्ड नहीं किया जाता है कि प्रत्येक फीचर / बगफिक्स ब्रांच को देव में कैसे मिलाया जाए। केवल दैनिक निर्माण है, जो हमेशा बहुत सारे परीक्षण विफल रहता है और त्रुटियों का निर्माण करता है। मुझे बताया गया है कि 1000 से अधिक डेवलपर्स के लिए प्रत्येक मर्ज के लिए निर्माण करना अनुचित है।

इसलिए मैंने खोजा कि सीआई उन कंपनियों में कैसे व्यवस्थित है जिनके पास बहुत अधिक डेवलपर्स या अधिक (माइक्रोसॉफ्ट, फेसबुक) हैं, और कुछ भी नहीं मिला। हो सकता है, अंदरूनी सूत्र मुझे तब बता सकते हैं?



@gnat क्या आप पर्याप्त हैं? यह कैसे संबंधित है? मैंने इनसाइडर अनुभव के लिए कहा, और केवल उदाहरण के लिए कंपनियों को इंगित किया। मैंने कोई ग्राहक सहायता नहीं मांगी।
मेगामोज़ग

11
@gnat मैं यह नहीं देखता कि यह किस तरह से संबंधित है। मेगामोज़: सीआई परियोजनाओं के मॉड्यूल द्वारा आयोजित किया जाता है, 1000 डेवलपर्स के साथ कोई मॉड्यूल नहीं है। इसलिए यदि बहुत अधिक लोग हैं, तो अपने प्रोजेक्ट / मॉड्यूल को छोटे हिस्से में काट लें।
वॉलफ्रैट

@Walfrat यह पूरी तरह से संबंधित है। यह साइट बड़ी कंपनियों के सर्वेक्षणों / सर्वेक्षणों को बनाने के लिए नहीं है कि उनकी कंपनियां विभिन्न चीजों को कैसे करती हैं। यदि कोई सामान के बारे में उत्सुक है, तो उन्हें इन कंपनियों के समर्थन चैनलों का उपयोग करना चाहिए
gnat

@gnat मैं वास्तव में यह नहीं देखता कि आपने जो लिंक दिया है वह कैसे लागू होता है, विशेष रूप से वॉलफ्रैट के जवाब में आपके द्वारा दी गई टिप्पणी के साथ। उस टिप्पणी के आधार पर यह IMHO उचित लिंक होगा (पोल प्रकार के प्रश्नों के बारे में हिस्सा) softwareengineering.meta.stackexchange.com/a/6490
Newtopian

जवाबों:


12

यह, मूल रूप से, एक स्केलिंग समस्या है। आप अपने काम को मॉड्यूल में अलग करते हैं, जो आपके उत्पाद की विभिन्न परियोजनाएं और / या अलग-अलग कार्य कर सकते हैं।

आपके पास ऐसी टीम होंगी जो उन मॉड्यूल के सेट को कवर करती हैं। उन टीमों में से प्रत्येक में उनके चक्रों के लिए सीआई चक्र लगाए जाएंगे, और उनके संबंधित चक्र बीतने के बाद ही, कोड को मास्टर रिपोज में धकेल दिया जाएगा, जहां मास्टर सीआई चक्र चलाया जाएगा।

मास्टर CI चक्र इन पहलुओं में टीम स्तर CI चक्रों से सबसे अधिक भिन्न होगा:

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

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


7

@Vladimir_Stokic ने जो कहा, इसके अलावा, कुछ टीमों पर (मेरा ~ 150 डेवलपर्स है), हम हर 24 घंटे से अधिक बार निर्माण करते हैं। जब भी कोई कमिटमेंट होता है, हम 5 मिनट का टाइमर शुरू करते हैं। 5 मिनट के उठने के बाद, 5 मिनट के अंतराल के दौरान हुए सभी कम्बाइन्ड संयुक्त और निर्मित होते हैं। बिल्ड आमतौर पर एक वृद्धिशील बिल्ड है। हमारे पास एक अलग बिल्डर है जो प्रत्येक निर्माण के लिए इकाई परीक्षण चलाता है। बिल्ड के समाप्त होने के बाद, यदि निर्माण के दौरान कोई और कमिट थे (जो कि बदले हुए के आधार पर 1 और 45 मिनट के बीच लेता है), कोई भी लंबित परिवर्तन बनाया जाता है, और इसी तरह। हमारे पास रात्रिकालीन (स्वच्छ, पूर्ण) निर्माण भी है, लेकिन प्रत्येक प्रतिबद्ध (लगभग) पर बनने वाले निर्माण हमें बहुत जल्दी बताते हैं कि क्या कोई परीक्षण विफल है।

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