2010-10-01 15 views
14

मैं अब एक महीने के लिए अपने [पहले] स्टार्टअप पर काम कर रहा हूं, और शायद यह अल्फा रिलीज से कम से कम एक महीने दूर है, लेकिन मैं जानना चाहता हूं कि इसे सही तरीके से कैसे तैनात किया जाए। इस साइट पर एक नए उपयोगकर्ता के लिए प्रारंभिक उच्च मात्रा में भार (नेटवर्क + सीपीयू) होगा, इसलिए मैं इस प्रारंभिक प्रक्रिया के लिए एक अलग सर्वर/कतार रखने की सोच रहा हूं, ताकि यह मौजूदा उपयोगकर्ताओं के लिए साइट को धीमा न करे।स्केलेबल तरीके से [रूबी ऑन रेल] साइट को कैसे तैनात करें?

अब तक मेरे शोध के आधार पर, मैं वर्तमान में nginx + haproxy + यूनिकॉर्न/पतली + memcached + mysql, और लिनोड पर तैनाती की ओर झुका रहा हूं। हालांकि, मुझे उपर्युक्त में से कोई भी पूर्व अनुभव नहीं है; इसलिए मैं समुदाय के अनुभव को टैप करने की उम्मीद कर रहा हूं।

  • क्या उपर्युक्त वास्तुकला उचित लगता है? कोई सुझाव/लेख/किताबें जिन्हें आप अनुशंसा करेंगे?
  • क्या लिनोड एक अच्छा विकल्प है? हेरोोकू/ईवाई मेरे लिए बहुत महंगा लग रहा है (कम से कम मेरे पास पर्याप्त राजस्व है), लेकिन क्या मुझे कुछ और बेहतर विकल्प याद आ रहा है? MediaTemple?
  • भार संतुलन वास्तुकला पर कोई अच्छा सुझाव? मैं अभी भी इस पर पढ़ रहा हूँ।
  • क्या 2 अलग-अलग लिनोड पर 2 अलग रेल सर्वर सर्वर उदाहरण हैं, या दो बार क्षमता के लिनोड पर 1 उदाहरण चल रहा है (रैम/स्टोरेज/बैंडविड्थ के मामले में)? मुझे कितने लिनोड शुरू करना चाहिए?
  • मुझे कौन सा लिनक्स वितरण चुनना चाहिए? (लिनोड 8 अलग-अलग प्रदान करता है - http://www.linode.com/faq.cfm) क्या रेलवे साइट के लिए उनके बीच कोई सापेक्ष फायदे/नुकसान हैं?

मैं क्षमा चाहता हूं कि मेरे कोई भी प्रश्न बेवकूफ या विरोधाभासी है; कृपया इसे मेरे अनुभवहीनता के लिए श्रेय दें।

उत्तर

18

वास्तुकला

आप सही रास्ते पर हैं। मैं व्यक्तिगत रूप से सुविधाजनक के लिए पतली/यूनिकॉर्न (लंबे समय तक पतली बैकएंड तक दौड़ने के लिए) को यात्री पसंद करता हूं, लेकिन आपका प्रस्तावित सेटअप काफी मानक है। यदि आप रुबी 1.8.7 पर हैं, तो मैं अनुशंसा करता हूं कि आप फ्रेमवर्क मेमोरी बचत के लिए आरईई + यात्री पर विचार करें।

& लोड संतुलन

linode होस्टिंग शानदार है, और मैं उन्हें सब कुछ मैं कर सकते हैं के बारे में के लिए उपयोग करें, लेकिन आप राम सीमाओं के प्रति सजग होने की आवश्यकता होगी। प्रत्येक रेल प्रक्रियाएं रैम की एक अनौपचारिक राशि का उपयोग करती हैं, और आप मशीन को स्वैप में लाने से बचना चाहेंगे। प्रति मशीन पर्याप्त रेल उदाहरण चलाने की योजना है ताकि लिनोड पर आपकी स्मृति आवंटन स्मृति का लगभग 9 0% हो। आप शायद अपने डेटाबेस के लिए समर्पित एक और लिनोड चाहते हैं, हालांकि आप दोनों एक ही मशीन पर उनके साथ शुरू कर सकते हैं; जैसे ही आप बढ़ते हैं, बस MySQL को विभाजित करने के लिए तैयार रहें। आप निजी आईपी पर उसी डेटा सेंटर में लिनोड के बीच संचार स्थापित कर सकते हैं, जो आपके बैंडविड्थ कोटा के खिलाफ नहीं गिना जाता है।

आपका स्केलिंग रणनीति संभव के रूप में क्षैतिज होना चाहिए, तो मैं बस एक दूसरे linode हो रही है और अपने haproxy पूल में जोड़ने जब आप अधिक हॉर्स पावर की जरूरत है की सलाह देते हैं - linode आप 512MB अधिक रैम के लिए $ 20 शुल्क, या तुम सिर्फ कर सकते हैं उसी $ 20 के लिए एक संपूर्ण 'नोटर लिनोड (सीपीयू, रैम, एचडीडी, और बैंडविड्थ कोटा के साथ) प्राप्त करें। एक ब्रेनर लगता है!)। रेल के मामले में, एक उदाहरण एक उदाहरण है, उदाहरण के लिए, यह वास्तव में कोई फर्क नहीं पड़ता कि यह एक ही वीएम पर है या नहीं, जब तक कि आपके डेटाबेस मशीन से कनेक्ट करने का समय या जो भी कम या कम नहीं है। आप 10 लाइनों को चलाने के लिए 10 लाइनों को चलाने के लिए 10 लाइनों को चला सकते हैं।लिनोड आईपी फेलओवर भी प्रदान करता है, ताकि यदि आपका प्राथमिक लिनोड (हैप्रोक्सी के साथ) नीचे चला जाता है, तो यह स्वचालित रूप से एक माध्यमिक लिनोड पर असफल हो सकता है, जिसके बाद आप पहले से ही समान क्षमता में कार्य करने के लिए तैयार हो जाते हैं।

वितरण

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

आप शायद 32-बिट डिस्ट्रो चुनना चाहते हैं जब तक आपके पास 64-बिट डिस्ट्रो लेने का कोई अनिवार्य कारण न हो; 64-बिट निष्पादन योग्यों को अपने 32-बिट समकक्षों की तुलना में अधिक रैम की आवश्यकता होती है, और चूंकि रैम आपके सबसे मूल्यवान संसाधन होने की संभावना है, इसलिए इसे सहेजने के लिए यह समझ में आता है कि आप कहां कर सकते हैं।

+0

आपके विस्तृत उत्तर के लिए धन्यवाद। आपके लिए कुछ फॉलोअप प्रश्न: - (1) मैं रूबी 1.9.2 का उपयोग कर रहा हूं। क्या आरईई का अभी भी उस मामले में फायदा है? (2) पैसेंजर थिन पर क्या लाभ प्रदान करता है? –

+0

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