9

मैं प्रोजेक्ट बिल्डिंग और तैनाती को स्वचालित रूप से करने के लिए कुछ अनुशंसाओं की तलाश में हूं।asp.net के साथ उपयोग के लिए एक अच्छा निर्माण स्वचालन और तैनाती प्रक्रिया क्या है?

हमारे वर्तमान विकास सेटअप dev सर्वर निर्माण के लिए एएसपी.नेट, एसवीएन, सीसीएनईटी और एक एमएसबिल्ड स्क्रिप्ट का उपयोग करता है। मैं सीसीएनईटी के बजाय क्रूज़ पर स्विच करने की सोच रहा था, हालांकि मुझे यकीन नहीं है कि इससे मुझे कुछ अतिरिक्त मिलता है जो मेरे पास पहले से नहीं है।

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

इस के लिए प्रेरणा के मेरे स्रोतों में से एक this video के साथ-साथ हर महीने अपडेट करने में अनंत घंटे बिताए।

+0

सिर्फ 6 वर्षों के बाद एक अपडेट; [एप्लिकेशन रिलीज ऑटोमेशन] (https://en.wikipedia.org/wiki/Application_release_automation) टूल विशेष रूप से इस के लिए डिज़ाइन किए गए हैं। BuildMaster वहां मौजूद टूल में से एक है और [यह ट्यूटोरियल] (http://inedo.com/support/tutorials/building-and-deploying-a-net-web-plication-using-buildmaster) उल्लिखित प्रक्रिया की रूपरेखा देता है। –

उत्तर

4

छोटे या निजी परियोजनाओं के लिए, मैं जेटब्रेन द्वारा मुफ्त (और उत्कृष्ट) TeamCity जैसे कुछ का उपयोग करने की सलाह दूंगा। यूनिट टेस्ट ऑटोमेशन, सतत एकीकरण, और निर्माण के बाद क्या होता है इसके नियम (विभिन्न स्थानों पर इसे स्थानांतरित करने सहित)।

बड़ी टीमों के लिए, मुझे वास्तव में कस्टम एमएसबिल्ड कार्यों के रूप में कुछ निर्माण स्वचालन मिला है और RoboCopy सर्वोत्तम काम करता है। मैन्युअल रूप से पर्यावरण के बीच बनाता है और एमएसबिल्ड & का उपयोग करके रोबो कॉपी इस प्रक्रिया के हिस्सों को स्वचालित करने के लिए रोबोकोपी वातावरण के बीच साफ ब्रेक बनाता है (बहुत कम 'ओप्स के साथ मुझे वहां' गलतियों को धक्का देना नहीं था)। यह हमें प्रचार करने से पहले क्यूए समीक्षा बनाता है।

अद्यतन 2014/07/31:

मैं सफलता के साथ custom TFS build templates का उपयोग किया है। वे थोड़ा जटिल हैं, लेकिन आप उनके साथ कुछ शांत चीजें कर सकते हैं।

गीताहब पर खुली स्रोत परियोजनाओं (जैसे NuGet पुस्तकालयों) के लिए होस्ट किया गया, मुझे नहीं लगता कि आप AppVeyor को हरा सकते हैं। मेरे पास Mailchimp.NET जैसी कुछ परियोजनाएं हैं जिनके पास पूर्ण निर्माण और NuGet स्वचालन तैनाती है।

+1

अब मैंने क्रूज़ कंट्रोल.नेट से टीमसिटी में अपग्रेड किया है और इसे प्यार किया है। कस्टम MSBuild स्क्रिप्ट के साथ भी इसका उपयोग करना कहीं अधिक आसान रहा है। –

0

मैंने पूर्व में नंत का उपयोग इसी तरह के कार्यों के लिए बहुत भाग्य के साथ किया है। आप अपने स्वचालित निर्माण का उपयोग कर इसे लात मार सकते हैं। (http://nant.sourceforge.net/)

आप कुछ और अधिक व्यापक आप wix की जाँच कर सकते हैं (http://wix.sourceforge.net/)

अब तुम सच में लगता है कि सब कुछ एक autmatic निर्माण की शुरूआत की आप लाइव साइट को अपडेट करना चाहते हैं? या क्या आपका मतलब है कि आप अपने सीसी उपकरण का उपयोग करके एक बिल्ड को लात मारते हैं, और फिर यह लाइव बनाने के लिए एक बिल्ड उत्पन्न करता है?

किसी फ़ाइल के नए संस्करण में चेक किए जाने पर मुझे लाइव साइट अपडेट होने से नफरत होगी।

आपके डेटाबेस अपडेट शायद सबसे चुनौतीपूर्ण पहलू होंगे। हालांकि, जब तक डेटाबेस अद्यतन के लिए चेक इन किया गया है, एक बदलाव स्क्रिप्ट है, यह बुरा नहीं है।

+0

हमारे पास अभी 2 बिल्ड प्रकार हैं। एक देव निर्माण है और दूसरा एक रिलीज है। देव बिल्ड कोड के चेकइन के बाद हर एक्सएक्स मिनट चलाते हैं और यूनिट टेस्ट इत्यादि चलाते हैं, जबकि रिलीज केवल तभी होता है जब हम इसे लात मारते हैं और अधिकांश डिवी बिल्ड करता है लेकिन रिहाई मोड में और इसे एक संस्करण के रूप में टैग करता है SVN। –

0

आपके कोड परिवर्तनों को तैनात करने के लिए दो प्रमुख कार्यों की तरह लगता है: 1. फ़ाइलों की प्रतिलिपि बनाना और 2. डीबी स्क्रिप्ट परिवर्तन निष्पादित करना। यदि आप MsBuild Community Tasks का उपयोग करना चाहते हैं तो बहुत सारे आसान कार्य कार्य हैं जो आपको रास्ते में मदद कर सकते हैं। SqlExecute और RoboCopy ध्वनि जैसे वे आपको उपयोग करने की आवश्यकता होगी। इसके लिए आपको अपनी प्रोजेक्ट फ़ाइलों को उनके निर्माण व्यवहार को बढ़ाने के लिए संशोधित करने की आवश्यकता होगी, लेकिन एक बार ऐसा करने के बाद आप जो भी किया जा रहा है उसके मैन्युअल हिस्से को "स्क्रिप्ट" करने में सक्षम होंगे।

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