2008-09-11 16 views
30

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

  • वेब अनुप्रयोग परियोजना
    • दृश्य स्टूडियो: तो मैं stackoverflow भीड़ के लिए सवाल पेश करने के लिए ... क्या निम्नलिखित विन्यास का उपयोग कर एक स्वचालित निर्माण और तैनाती प्रणाली स्थापित करने का सबसे अच्छा तरीका हो सकता है चाहता था
    • CruiseControl.NET

    पहले बातें मैंने कोशिश की CCnet के लिए था में से एक स्वचालित रूप से उत्पादन ज़िप और सर्वर पर प्रतिलिपि है, लेकिन फिर गंतव्य पर अनज़िप करने के लिए शारीरिक श्रम की आवश्यकता है कि। हालांकि, अगर हम सभी फ़ाइलों को अलग-अलग कॉपी करने का प्रयास करते हैं, तो यह संभवतः लंबे समय तक ले सकता है यदि यह एक बड़ा एप्लीकेशन है (बिल्ड सर्वर हमारे कार्यालय में डेटासेंटर के बाहर रहता है ... मुझे पता है)।

    विशेष रुचि यह भी है कि हम कई वातावरण का समर्थन कैसे करेंगे क्योंकि हमारे पास देव, क्यूए, यूट, और फिर निश्चित रूप से प्रोड है।

    MSDeploy वास्तव में दिलचस्प लगता है, लेकिन जब तक कि मैं गलत तरीके से साहित्य की व्याख्या नहीं कर रहा हूं, बिल्ड सर्वर के आउटपुट से तैनाती के परिदृश्य में मदद नहीं करता है। यदि कुछ भी हो, ऐसा लगता है कि यह एक निर्माण फार्म में एक निर्माण को तैनात करने में उपयोगी होगा ... लेकिन एक पर्यावरण से दूसरे वातावरण में तैनाती के लिए भी, आपको कॉन्फ़िगरेशन सेटिंग्स और वेब सेवा यूआरएल आदि मैन्युअल रूप से बदलना होगा।

    उत्तर

    15

    मैंने हाल ही में अपनी कंपनी में तैनाती स्वचालित करने पर काम करने में कुछ दिन बिताए।

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

    हमारा समाधान संक्षेप में इस सवाल का Automate Deployment for Web Applications?

    6

    आपको MSDeploy में रुचि हो सकती है। इस पर Here's एक स्कॉट हंसेलमैन पोस्ट। यह फिलहाल एक तकनीकी पूर्वावलोकन के रूप में उपलब्ध है (सितंबर 2008) लेकिन आपकी आवश्यकताओं के मुकाबले मूल्यांकन करने योग्य है।

    +0

    हम्म, हालांकि यह बहुत अच्छा लगता है ... यह स्वचालित निर्माण के परिदृश्य में मदद नहीं करता है (जब तक कि मैं दस्तावेज़ गलत नहीं पढ़ता)। –

    1

    मेरे पास एक स्वचालित निर्माण से फ़ाइलों का एक तैनाती सेट प्राप्त करने के बारे में related question था। मुझे वेब परिनियोजन प्रोजेक्ट (लिंक और पुराने प्रश्न में सभी) मिला जो मुझे चाहिए - वे एक वीएस और एमएसबिल्ड ऐड-ऑन हैं।

    2

    क्या आपके पास कमांड को दूरस्थ रूप से चलाने की क्षमता है? PsExecSystinternals से उपयोगिता रिमोट मशीन पर कमांड लाइन अनजिप प्रोग्राम चलाने देगी। यदि आपके पास ऐसी स्क्रिप्ट है जो रिमोट साइट पर .zip फ़ाइल के रूप में बिल्ड की प्रतिलिपि बनाता है, तो आपको फ़ाइलों को अनजिप करने के लिए PsExec कॉल के लिए केवल एक और पंक्ति की आवश्यकता होगी।

    3

    एक और नए निर्माण उपकरण (एक बहुत बुद्धिमान आवरण) NUBuild कहा जाता है के लिए एक उत्तर में वर्णित है। इसका हल्का, खुला स्रोत और सेटअप करने में बेहद आसान है और लगभग कोई स्पर्श रखरखाव प्रदान करता है। मुझे वास्तव में यह नया टूल पसंद है और हमने अपनी परियोजनाओं के निरंतर निर्माण और एकीकरण प्रक्रिया के लिए इसे मानक टूल बनाया है (हमारे पास 75 डेवलपर्स में लगभग 400 परियोजनाएं हैं)। कोशिश करके देखो।

    http://nubuild.codeplex.com/

    • आसान कमांड लाइन इंटरफेस का उपयोग करने के
    • की क्षमता सभी नेट ढांचे संस्करण को लक्षित करने के यानी 1.1, 2.0, 3.0 और 3.5
    • XML आधारित विन्यास
    • दोनों परियोजना का समर्थन करता है का समर्थन करता है और फ़ाइल संदर्भ
    • स्वचालित रूप से "पूर्ण आदेश उत्पन्न करता है एड बिल्ड सूची "किसी दिए गए प्रोजेक्ट के लिए - कोई स्पर्श रखरखाव नहीं। का पता लगाने और परिपत्र निर्भरता प्रदर्शित करने के लिए
    • प्रदर्शन समानांतर निर्माण
    • की क्षमता - स्वचालित रूप से जो उत्पन्न निर्माण सूची में परियोजनाओं की स्वतंत्र रूप से बनाया जा सकता है फैसला करता है। प्रॉक्सी विधानसभाओं को संभालने के लिए
    • क्षमता
    • जैसे निर्माण प्रक्रिया के लिए दृश्य सुराग प्रदान करता है दिखा "% पूरा", "वर्तमान स्थिति" आदि
    • उत्पन्न विस्तृत निष्पादन लोग इन दोनों एक्सएमएल और पाठ स्वरूप में
    • आसानी Cruise-Control.Net निरंतर एकीकरण प्रणाली
    • कस्टम लकड़हारा उपयोग कर सकते हैं के साथ एकीकृत XMLLogger की तरह जब लक्षित कर 2.0 + संस्करण त्रुटि लॉग पार्स करने के लिए उपयोगकर्ता निर्दिष्ट स्थान पर बनाया विधानसभाओं को तैनात करने के
    • क्षमता
    • क्षमता
    • स्रोत नियंत्रण प्रणाली
    • संस्करण प्रबंधन क्षमता
    1

    यह एक आम समस्या है के साथ स्रोत कोड सिंक्रनाइज़ करने की क्षमता (और मैं चाहता हूँ मैं इसे जल्दी ही पढ़ा था) सभी विकास ही नहीं, ASP.NET के लिए। अपने डेवलपर्स में से एक होने के नाते, मेरी टीम स्वाभाविक रूप से पूरी रिलीज प्रक्रिया के लिए BuildMaster का उपयोग करती है, और अधिकांश परिदृश्यों के लिए यह मुफ़्त है। उपकरण के भीतर, हम कलाकृतियों को बनाने के लिए सभी मानक सीआई निर्माण करने में सक्षम हैं और फिर विशिष्ट कला या पर्यावरण के आधार पर आंतरिक रूप से या बाहरी रूप से होस्ट किए गए 40+ सर्वरों में से किसी एक को इन कलाकृतियों को तैनात करने के लिए एक स्वचालन प्रक्रिया स्थापित कर सकते हैं ।

    के बाद से आप विशेष रूप से विभिन्न परीक्षण वातावरण के लिए तैनाती उल्लेख किया है, इस उपकरण का एक मूलभूत पहलू है। विचार पर्यावरण वर्कफ़्लो को मॉडल करना है (उदा। एकीकरण -> क्यूए -> उत्पादन) जो आपके पास पहले से मौजूद है और अनिवार्य रूप से स्रोत नियंत्रण से उत्पादन तक सभी तरह के निर्माण को बढ़ावा देता है। ज्यादातर बार, यह एक तैनाती क्रिया को जोड़ने के समान सरल है जो पर्यावरण के लिए एक आर्टिफैक्ट तैनात करता है, अन्य बार यह अधिक जटिल हो सकता है।

    तुम भी लापरवाही से उल्लेख किया विन्यास फाइल परिवर्तन तैनाती का हिस्सा है, जो BuildMaster के लिए एक और निर्मित घटक है कर रहे हैं। हमारे पास यह विचार था कि उपकरण को सभी कॉन्फ़िगरेशन फ़ाइलों और तैनाती के लिए केंद्रीय केंद्र के रूप में उपयोग करना था, इस प्रकार यह सुनिश्चित करना कि नवीनतम परिवर्तन स्वचालित रूप से आपकी तैनाती योजना में एक सरल "तैनाती विन्यास फाइल" कार्रवाई के साथ लागू होते हैं।

    एक प्रक्रिया जिसे आपने इस प्रक्रिया के संबंध में उल्लेख नहीं किया है डेटाबेस परिनियोजन पहलू है। अधिकांश एएसपी.नेट अनुप्रयोगों को एक संबंधित डेटाबेस की आवश्यकता होती है, अन्यथा वे केवल स्थिर HTML फाइलें हो सकती हैं। यह महत्वपूर्ण है कि डेटाबेस स्कीमा प्रत्येक तैनाती के साथ उपयुक्त डेटाबेस संस्करण में अद्यतन हो जाए। आश्चर्य की बात नहीं है, BuildMaster के भीतर एक मॉड्यूल जो आपके लिए भी इसे संभालता है। विचार उपकरण के भीतर डीडीएल-डीएमएल स्क्रिप्ट को स्टोर करना है, और स्क्रिप्ट को प्रति माह प्रति माह निष्पादित करके, यह सुनिश्चित करता है कि प्रत्येक वातावरण में आपके सभी डेटाबेस अद्यतित हैं क्योंकि आपके निर्माण उनके द्वारा तैनात किए गए हैं। अन्य स्क्रिप्ट (जैसे संग्रहित प्रक्रियाएं, विचार, ट्रिगर्स इत्यादि) अनिवार्य रूप से कोड फाइलें हैं और इसलिए स्रोत नियंत्रण में हैं। इन ड्रोप-क्रिएट-कॉन्फ़िगर प्रकार स्क्रिप्ट को अधिकांश मामलों में एक साधारण तैनाती कार्रवाई के साथ हर बार चलाया जा सकता है।

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

    जबकि मुझे एहसास हुआ कि मैंने जवाब से सीसी.NET छोड़ा है, तो हमारे एप्लिकेशन बिल्डमस्टर के माध्यम से बनाए गए और तैनात किए गए हैं, इसलिए हमें अब इसकी आवश्यकता नहीं है, हालांकि हम एक ड्रॉप स्थान से कलाकृतियों को आसानी से उठा सकते हैं और उन्हें तैनात कर सकते हैं बाद के वातावरण में।

    1

    मुझे लगता है कि बहुत से लोग अपनी .NET परियोजनाओं के लिए सीसी का उपयोग करते हैं, लेकिन जेनकिन्स, सोनारक्वे का उपयोग क्यों नहीं करते? उन्हें आपकी ज़रूरत है। मैं यह सब 3 दिनों में स्थापित करता हूं। मेरे पास एक विन 2008 सर्वर आर 2, एमएसएसक्यूएल, जेनकींस, विसुअल एसवीएन और सोनारक्वे है।

    यह सब बहुत अच्छा काम करता है और आपको अपनी परियोजना पर सभी मीट्रिक मिलते हैं। सोनारक्वे आपके मेट्रिक्स प्राप्त करने के लिए गैलियो, गेन्डर्म, एफएक्सकोप, स्टाइलकोप, एनडीप्थ और पार्टकॉवर का उपयोग करता है और यह सब बहुत सीधे आगे है क्योंकि सोनारक्यूब बिना किसी कॉन्फ़िगरेशन के स्वचालित रूप से ऐसा करता है।

    मैं आपके लिए कुछ चित्र पोस्ट करता हूं, इसके लिए भी एक भावना महसूस होती है। यहाँ है जेनकींस डायन आईआईएस

    और Sonarqube, अपने प्रोजेक्ट के लिए सभी मैट्रिक करने के लिए स्वचालित रूप से लागू करने के बनाता है और सोनार मीट्रिक प्राप्त है और एक दूसरी नौकरी। यह एक सरल MVC4 एप्लिकेशन है, लेकिन यह काम करता है महान !:

    आप अधिक जानकारी मैं और अधिक विशिष्ट हो सकता है चाहते हैं, लेकिन मुझे लगता है कि आप कम से कम जेनकींस पर विचार करना चाहिए है। यदि सीसी आपको बेहतर बनाती है, तो कम से कम आपने चुने जाने से पहले अच्छे विकल्प को देखा।

    यह पूरा सेटअप एमएसबिल्ड का उपयोग करता है, ऐप्स को भी बना और तैनात करता है।