हमारे सिस्टम में कई .NET वेबसाइटें, कक्षा पुस्तकालय, और एक MSSQL डेटाबेस शामिल हैं। हम स्वचालित रूप से एक टेस्ट सर्वर पर निर्माण करने के लिए स्रोत नियंत्रण और टीमसिटी के लिए एसवीएन का उपयोग करते हैं।रिलीज के लिए निर्भरताओं के प्रबंधन पर युक्तियाँ?
हमारी टीम आम तौर पर एक समय में 4 या 5 परियोजनाओं पर काम कर रही है। हम हर 2-4 सप्ताह में एक बड़े पैमाने पर रोलआउट में कई बदलावों को एक साथ लाने की कोशिश करते हैं।
मेरी समस्या रोलआउट के लिए सभी निर्भरताओं का ट्रैक रखने के साथ है। उदाहरण:
वेबसाइट एक लाइव जब तक हम कक्षा पुस्तकालय बी की शाखा एक्स उपलब्ध कराई गई, कक्षा के ट्रंक पुस्तकालय सी, जो कॉन्फ़िग अपडेट Y और Z और डाटाबेस अद्यतन डी, जरूरत के खिलाफ बदले में बनाया नहीं जा सकते हैं जो जरूरत प्रवासन स्क्रिप्ट ई ...
यह और भी जटिल हो जाता है - सुनिश्चित करें कि प्रत्येक डेवलपर के प्रोजेक्ट वास्तव में अन्य लोगों के साथ संगत है और एक ही संस्करण के खिलाफ निर्माण कर रहे हैं होने की पुष्टि करने की तरह। हां, यह तकनीकी समस्या जितना अधिक प्रबंधन समस्या है।
वर्तमान में हमारे गैर इष्टतम समाधान है:
- किसी व्हाइटबोर्ड सुविधाओं लिस्टिंग कि अभी तक
- लाइव जब रोलआउट की योजना बना हमारी स्मृति और अंतर्ज्ञान पर भरोसा नहीं गए, जब तक हमें यकीन है कि कर रहे हैं हमने सबकुछ सोचा है ...
- हमारे स्टेजिंग वातावरण पर एक ड्राई-रन। यह एक अच्छा संकेत है, लेकिन हम अक्सर यह सुनिश्चित नहीं करते हैं कि स्टेजिंग लाइव के साथ सिंक में 100% है - समस्या का हिस्सा मैं हल करने की उम्मीद कर रहा हूं।
- रोलआउट दिन पर इसे विंग करने की कुछ मात्रा।
अभी तक इतना अच्छा है, कुछ करीबी कॉल घटाएं। लेकिन जैसे ही हमारी प्रणाली बढ़ती है, मैं एक और वैज्ञानिक रिलीज प्रबंधन प्रणाली चाहता हूं जो अधिक लचीलापन की अनुमति दे, जैसे कि एक ही बदलाव या बगफिक्स को अपने आप पर रोल करने में सक्षम होना, ज्ञान में सुरक्षित है कि यह कुछ और नहीं तोड़ देगा।
मैं सबसे अच्छा समाधान अनुमान लगा रहा हूं जिसमें कुछ प्रकार की संस्करण संख्या प्रणाली शामिल है, और शायद एक परियोजना प्रबंधन उपकरण का उपयोग करना शामिल है। हम स्टार्ट-अप हैं, इसलिए हम कठोर प्रक्रियाओं पर धार्मिक रूप से चिपके रहने पर बहुत गर्म नहीं हैं, लेकिन हमें शुरुआत करने में प्रसन्नता हो रही है, यह प्रदान करने से यह अधिक मूल्यवान नहीं है।
मुझे इस समस्या का समाधान करने वाली अन्य टीमों से सलाह सुनना अच्छा लगेगा।
परियोजनाएं एक ही भंडार में अलग फ़ोल्डरों में हैं। परस्पर निर्भरता का एक उदाहरण हमारी वेबसाइट, मोबाइल साइट और एपीआई सभी एक ही व्यापार तर्क पुस्तकालय का संदर्भ है। कुछ अन्य परियोजनाओं के साथ, एक ही उपयोगिता पुस्तकालयों का संदर्भ लें। सहमत हैं कि हम पूरी तरह से सीआई का उपयोग नहीं कर रहे हैं, और मुझे स्थिर शाखाओं के विचार पसंद हैं। लेकिन यह कोड का ख्याल रखता है। डेटाबेस, विन्यास, माइग्रेशन स्क्रिप्ट, और अन्य कारकों के बारे में क्या? – realworldcoder
@Andrew: यह सब आपके svn repo में आपके कोड के बगल में है। –