2011-01-02 8 views
6

सबसे पहले, नया साल मुबारक हो।रेल ऐप के कई उदाहरणों को तैनात करना - एक ही कोड, एकाधिक

मैं रेल के लिए नया हूँ, इसलिए शब्दावली के किसी भी गलत उपयोग ...

मैं एक साधारण रेल आवेदन, एक MySQL डेटाबेस द्वारा समर्थित विकसित किया है बर्दाश्त करें।

अब मैं इस एप्लिकेशन को उपयोगकर्ताओं के एकाधिक, स्वतंत्र समूहों में तैनात करना चाहता हूं (यानी यह एक क्लब एप्लिकेशन है, और मैं इसे कई पूरी तरह से स्वतंत्र क्लबों में तैनात करना चाहता हूं)।

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

प्रत्येक उदाहरण एक ही सर्वर पर चल रहा होगा (जब तक कि सर्वर लोड एक मुद्दा साबित न हो) मुझे लगता है कि मैं प्रत्येक समूह सर्वर के लिए एक अलग पोर्ट का उपयोग कर सकता हूं ताकि उपयोगकर्ता सही समूह में जा सकें?

मैं पढ़ता हूं कि परीक्षण और उत्पादन मोड हैं, क्या उत्पादन मोड के कई [अतिरिक्त] उदाहरण हैं, उदाहरण के लिए क्लब 1, क्लब 2, सभी एक ही कोड साझा करते हैं, अद्वितीय डेटाबेस के साथ?

मेरे प्रश्न हैं कि कई अलग-अलग डेटाबेस उदाहरणों का समर्थन कैसे करें, और इनके लिए सबसे अच्छा तरीका कैसे है?

इस बारे में कोई सलाह है कि इस बारे में कितना सराहना की जाए।

उत्तर

1

यदि आप गिट का उपयोग कर रहे हैं (मुझे सुझाव है कि आपको होना चाहिए!) तो आप एक ही स्थान पर अपने कोड का एक केंद्रीय संस्करण रख सकते हैं और फिर इसे कई बार तैनात कर सकते हैं, केवल डेटाबेस.इमल फ़ाइल को बदलना (इसे चेक नहीं किया जाना चाहिए उस मामले में अपने गिट भंडार में)। http://git-scm.com/

मान लीजिए कि आप अपना पूरा कोड उपयोगकर्ता नाम 'स्निप' के साथ github.com पर डाल दें और परियोजना को 'क्लबस्टर' कहा जाता है।

git clone https://github.com/snips/clubster.git 
cd clubster 
heroku create boxingclub 

क्योंकि Heroku अपने डेटाबेस ऑटो कॉन्फ़िगर करता है एक database.yml फ़ाइल

git push heroku master 

लिए कोई जरूरत नहीं है और आप अपने कोड का एक संस्करण होगा: Heroku की तरह कुछ आप तो क्या करना होगा का उपयोग करना boxingclub.heroku.com

पर तैनात जब आप अपने कोड में परिवर्तन आप बस अपने प्रतिष्ठानों से प्रत्येक के लिए जाने के लिए और कार्य करें:

git pull origin master 
git push heroku master 

आपके आवेदन के उस विशेष उदाहरण पर आपके कोड को कौन सा अपडेट करता है।

और यदि आप थोड़ा अधिक उन्नत हो रहे हैं तो आप शेफ को आपके लिए पूरा सेटअप प्रबंधित करने के लिए देख रहे होंगे। http://www.rubyinside.com/chef-tasty-server-configuraiton-2162.html

अन्य दृष्टिकोण किसी प्रकार का सबडोमेन सिस्टम होना होगा, लेकिन मैं इसे दूसरों को कवर करने के लिए छोड़ दूंगा।

+0

धन्यवाद स्टीफ, यह निश्चित रूप से एक दिलचस्प समाधान है। मुझे यह स्पष्ट करना चाहिए कि रेल सर्वर एक ही सर्वर पर चल रहे होंगे और यदि संभव हो तो * आदर्श * उसी कोड से चल रहे होंगे। मैं आपके सुझाव को कुछ विचार दूंगा। – Snips

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

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