2013-03-05 9 views
5

मैं उसी सर्वर में एकाधिक रेडमाइन उदाहरण रखने का सबसे अच्छा तरीका पढ़ रहा हूं (मूल रूप से मुझे प्रत्येक रेडमाइन समूह के लिए डेटाबेस की आवश्यकता होती है)।एकाधिक रेडमाइन उदाहरण सर्वोत्तम प्रथाओं

  1. प्रत्येक समूह
  2. तैनात एकाधिक डाटाबेस

मैं वास्तव में सबसे अच्छा है क्या पता नहीं है के साथ एक redmine उदाहरण के लिए एक redmine उदाहरण तैनात:

अब तक मैं 2 विकल्प हैं इस स्थिति में अभ्यास करते हुए, मैंने कुछ लोगों को यह दोनों तरीकों से किया है।

मैंने nginx और यात्री के साथ कई रेडमाइन्स (3 उदाहरण) की तैनाती का परीक्षण किया है। यह अच्छी तरह से काम करता है लेकिन मुझे लगता है कि बहुत से उदाहरणों के साथ यह संभव नहीं हो सकता है। प्रत्येक ऐप को लगभग 100 एमबी रैम की आवश्यकता होती है, और अनुरोधों में वृद्धि के साथ यह ऐप में अधिक प्रक्रियाओं को आवंटित करता है। अगर हमारे पास बहुत सारे उदाहरण थे तो यह परिदृश्य खराब लगता है।

विकल्प 2 उचित लगता है, मुझे लगता है कि मैं इसे रेल वातावरण के साथ कार्यान्वित कर सकता हूं। लेकिन मुझे लगता है कि सत्रों से संबंधित कुछ सुरक्षा समस्याएं हैं (मुझे लगता है कि साइट ए के उपयोगकर्ता को ए में प्रमाणीकरण के बाद साइट बी पर कार्रवाई करने की अनुमति है)।

इस स्थिति के लिए कोई अच्छा अभ्यास है? इस स्थिति में लेने का सबसे अच्छा अभ्यास क्या है?

इससे संबंधित अन्य आवश्यकता यह है: हम दूसरों को बाधित किए बिना रेडमाइन इंस्टेंस बनाने या बंद करने में सक्षम होना चाहिए (उदा। हमें सर्वर को पुनरारंभ करना चाहिए ..)।

किसी भी सलाह के लिए धन्यवाद और मेरी अंग्रेजी के लिए खेद है!

संपादित करें:

मेरे समाधान: मैं प्रत्येक समूह के लिए एक redmine उदाहरण का इस्तेमाल किया। मैंने प्रत्येक उदाहरण को स्वतंत्र रूप से प्रबंधित करने के लिए nginx + यूनिकॉर्न का उपयोग किया (क्योंकि यात्री ने मुझे प्रत्येक उदाहरण को स्वतंत्र रूप से प्रबंधित करने की अनुमति नहीं दी थी)।

उत्तर

3

दो विकल्प हैं के साथ जाने के सब के बाद इतना अलग नहीं है। केवल अंतर यह है कि विकल्प 2 में, आपके पास केवल अपनी डिस्क पर कोड की एक प्रति है।

किसी भी मामले में, आपको अभी भी प्रत्येक उदाहरण के लिए अलग-अलग कार्यकर्ता प्रक्रियाओं को चलाने की आवश्यकता है, क्योंकि Redmine (और आमतौर पर अधिकांश रेल ऐप्स) प्रत्येक अनुरोध के लिए डेटाबेस स्विचिंग का समर्थन नहीं करते हैं और कुछ निश्चित वातावरण से संबंधित कुछ डेटा प्रक्रिया में कैश किए जाते हैं।

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

लेकिन फिर से तनाव के लिए: भले ही आप उदाहरण के बीच डिस्क पर एक ही कोड साझा करते हैं, आप चल रहे कार्यकर्ता प्रक्रियाओं को साझा नहीं कर सकते हैं।

1

उसी कोडबेस से कई उदाहरण चलाना आधिकारिक तौर पर Redmine द्वारा समर्थित नहीं है। हालांकि, Debian/Ubuntu के संकुल इस तरह के दृष्टिकोण का समर्थन करने लगते हैं ... देखें:

तो, आम तौर पर:

  • आप Debian/Ubuntu के # 2 विकल्प के साथ जाना का उपयोग करते हैं
  • अन्यथा # 1
+0

मैं डेबियन आधारित सर्वर का उपयोग कर रहा हूं, मैं # 2 का उपयोग करके तैनाती करने की कोशिश करूंगा लेकिन उस लिंक के बारे में अधिक जानकारी नहीं है कि यह कैसे करें –

0

कुछ वर्षों तक आगे बढ़ना, और अब आप अपने प्रत्येक रेडमाइन उदाहरणों के लिए डॉकर कंटेनर का उपयोग करने का तीसरा विकल्प विचार करना चाहेंगे।

मैं https://github.com/sameersbn/docker-redmine.git का उपयोग कर रहा हूं, और इसके साथ काफी खुश हूं, सिवाय इसके कि यह अभी तक टिकट बनाने और टिप्पणी करने के लिए आने वाली मेल को संभालने का समर्थन नहीं करता है।

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