2012-07-11 20 views
7

क्या कोई अच्छी तरह से एकीकृत अनुप्रयोग-प्रबंधन स्टैक है जो गैर-.war जावा अनुप्रयोगों के निर्माण, तैनाती और अद्यतन को सर्वर के रूप में चलाने की अनुमति देता है? उदाहरण के लिए संदेश उपभोक्ता जो सर्वर हैं (लेकिन वेबसर्वर नहीं हैं और कोई Servlets नहीं है), या Jetty एम्बेडेड के साथ निष्पादन योग्य .jar एस?जावा सर्वर अनुप्रयोगों को तैनात करना नहीं है। Wars

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

निष्पादन योग्य .jar एस को तैनात करने के विपरीत पहिया को फिर से आविष्कार करना प्रतीत होता है। किसी को निर्भरता को छायांकन करने और मैवेन प्लगइन्स के साथ एक निष्पादन योग्य आर्टेफैक्ट बनाने का सबसे अच्छा तरीका हल करने की आवश्यकता है, इस आर्टेफैक्ट को कहीं भी जमा करें, फिर इसे लक्षित सर्वर पर स्थापित करने का एक तरीका ढूंढें, और यदि आवश्यक हो तो इसे बदलना/अपग्रेड करना (डेबियन पैकेज ऐसा करने का एक तरीका होगा)।

यह सब मेरे लिए बहुत ही 'मैनुअल' लगता है, इस बिंदु पर अनुप्रयोगों को .war एस के रूप में अनुप्रयोगों को तैनात करना फायदेमंद लगता है, भले ही वे ऐसे माहौल के लिए प्राकृतिक फिट न हों, बस आपको उपकरण समर्थन का लाभ।

+0

, संदेश Driven EJB एक अच्छा फिट होगा? जिन्हें एक जार के रूप में ऐप सर्वर पर प्रकाशित किया जा सकता है। – wrschneider

+0

वे अच्छी तरह से हो सकते हैं - दुर्भाग्य से मैं एक छोटे से स्टार्टअप पर हूं जो शैतान का काम होने के लिए "हेवीवेट" कुछ भी मानता है। –

उत्तर

4

आप इसे अपने अनुप्रयोगों को ओजीआई कंटेनर पर तैनात करके कार्यान्वित कर सकते हैं।

ओजीआई बंडल शुरू होने पर आप अपने आवेदन को चलाने के लिए ओजीआई लाइफसाइकिल में लगा सकते हैं। फिर आप कंटेनर को दूरस्थ रूप से प्रारंभ और रोक सकते हैं (यदि कंटेनर इसका समर्थन करता है)।

आपके अनुप्रयोग ओजीआई मैनिफेस्ट के हिस्से के रूप में अपनी निर्भरताओं को परिभाषित कर सकते हैं - लेकिन शेड प्लगइन का उपयोग करते हुए छायांकन जार मैवेन का उपयोग करते समय मुश्किल नहीं है और मुझे लगता है कि आपके कंटेनर में सैकड़ों जारों के निपटारे के बजाय प्रबंधन करना आसान होगा।

This question जेनकींस का उपयोग करते हुए ओजीआई बंडलों की निरंतर तैनाती के बारे में वार्ता।

एक वैकल्पिक (और अधिक मानक) तरीका उन तैयारी को लिखना होगा जो तैनाती को स्वचालित करते हैं - संभवतः puppet या chef जैसे उद्देश्य निर्मित टूल का उपयोग करना। कठपुतली के लिए maven plugin है जो आपको अपनी कठपुतली लिपियों में उपयोग के लिए एक मेवेन रेपो से कलाकृतियों को निकालने की अनुमति देता है।

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

@bagheera की तरह आपके अनुप्रयोगों के आरपीएमएस बनाने का सुझाव देता है और उन्हें शुरू करना सेवाओं के रूप में जाने का एक अच्छा तरीका है और आपकी तैनाती स्क्रिप्ट की जटिलता को कम करता है। संदेश उपभोक्ताओं के लिए

+0

उत्तर के लिए धन्यवाद - मैं ओएसजीआई में देखूंगा।स्क्रिप्ट लिखने के संबंध में, यह आमतौर पर वह दृष्टिकोण था जिसे मैं टालने की उम्मीद कर रहा था, लेकिन ऐसा लगता है कि यह संभव नहीं हो सकता है। –

+0

यदि आप आरपीएम सुझाव के साथ स्क्रिप्ट लेखन जोड़ते हैं तो स्क्रिप्ट बहुत सरल हैं 1.) मेवेन रेपो से आरपीएम डाउनलोड करें 2.) आरपीएम स्थापित करें। यह [स्लाइड शो] (http://www.slideshare.net/actionjackx/automated-java-deployments-with-rpm) दिखाता है कि आरपीएमएस के साथ जाने के बाद स्क्रिप्ट कितनी सरल हो जाती है - यह वेबपैप्स का उपयोग उदाहरण के रूप में करती है लेकिन जार मान्य हैं । – plasma147

3

ऐसा लगता है कि आप अपने स्वयं निहित निष्पादन योग्य जार के निर्माण और तैनाती के लिए एक पैकेज प्रबंधक के लिए एक निर्भरता प्रबंधक की तलाश में हैं। आपके द्वारा उल्लेखित टूल के अलावा, आप लिनक्स पर पैकेज प्रबंधन के लिए बिल्ड + निर्भरता एमजीएमटी और rpmbuild + आरपीएम + यम के लिए ant+ivy देख सकते हैं।