12

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

मान लें कि मैं एक स्प्रिंग हाइबरनेट एप्लिकेशन को अमेज़ॅन ईसी 2 पर तैनात करता हूं और मैं टॉमकैट के साथ उबंटू सर्वर का एक उदाहरण बना देता हूं, क्या यह एप्लिकेशन अनिश्चित काल तक स्केल करेगा या क्या मुझे और उबंटू के उदाहरणों की आवश्यकता है? यदि एक से अधिक उबंटू इंस्टेंस की आवश्यकता है, तो क्या अमेज़ॅन दोनों उदाहरणों पर आवेदन चलाने की देखभाल करता है या क्या यह डेवलपर की ज़िम्मेदारी है? डेटाबेस स्टोरेज के बारे में क्या, क्या मैं ईसी 2 पर एक डेटाबेस स्थापित कर सकता हूं जो डेटाबेस के बढ़ने के रूप में स्केल करेगा या क्या मुझे अपने एपीआई का उपयोग करने की ज़रूरत है, अगर मैं इसे अनिश्चित काल तक स्केल करना चाहता हूं?

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

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

तो मूल रूप से, क्या यह स्केल करेगा और इसे स्केल करने के लिए क्या करने की आवश्यकता है?

+2

मुझे लगता है कि स्केलेबिलिटी कभी जादुई नहीं है, और हमेशा बहुत सारे काम की आवश्यकता होती है (विशेष रूप से कई लाख उपयोगकर्ताओं पर विचार करते समय)। –

+0

मान लें कि आपके पास ऐसा एप्लिकेशन बनाने के लिए दो महीने हैं और एक ही समय में स्केलेबिलिटी का ख्याल रखना है, जो प्रदाता आपको अपने मैक/डेस्कटॉप पर ऐप को डेमो करने की अनुमति देगा और फिर अगले दिन 10 एम + उपयोगकर्ताओं को सहजता से लोड करने के लिए एक स्विच खींच देगा ? –

+1

@JanVladimirMostert - AFAIK केवल AppEngine निर्बाध रूप से स्केल करेगा, जैसा कि: आप कोड अपलोड करते हैं और यह बाकी करता है। –

उत्तर

12

यह एक पोस्ट के लिए बहुत सारे प्रश्न हैं। वैसे भी:

  1. अमेज़ॅन ईसी 2 लोड के साथ स्वचालित रूप से स्केल नहीं करता है। ईसी 2 मूल रूप से सिर्फ एक वर्चुअल मशीन है। आप Auto Scaling और Elastic Load Balancing के साथ ईसी 2 उदाहरणों की स्केलिंग प्राप्त कर सकते हैं।

  2. एसक्यूएल डेटाबेस खराब पैमाने पर। यही कारण है कि लोगों ने पहले स्थान पर नोएसक्यूएल डेटाबेस का उपयोग शुरू किया। यह देखना सबसे अच्छा है कि आपका क्लाउड प्रदाता एक प्रबंधित सेवा के रूप में कौन सा डेटाबेस प्रदान करता है: Datastore GAE पर और DynamoDB अमेज़ॅन पर।

  3. ईसी 2 उदाहरणों पर अपना खुद का डेटाबेस स्थापित करना बहुत अव्यवहारिक है क्योंकि ईसी 2 में ephemeral storage है (यह रीबूट होने पर "डिस्क" पर सभी डेटा खो देता है)।

  4. GAE डेटास्टोर वास्तव में इस पर चल रहे सभी अनुप्रयोगों के लिए एक बड़ा डेटाबेस है। तो यह बहुत स्केलेबल है - आपके लाखों उपयोगकर्ताओं को इसके लिए कोई समस्या नहीं होनी चाहिए। http://highscalability.com/blog/2011/1/11/google-megastore-3-billion-writes-and-20-billion-read-transa.html

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

  6. सीमाओं क्या आप AppEngine साथ क्या कर सकते हैं:

    ए कोई स्थानीय भंडारण (फाइल सिस्टम) - आप डेटास्टोर या Blobstore उपयोग करने के लिए की जरूरत है।

    बीधूमकेतु केवल उनके मालिकाना चैनल एपीआई

    सी के माध्यम से समर्थित है। डेटास्टोर एक नोएसक्यूएल डेटाबेस है: कोई जॉइन, सीमित प्रश्न, सीमित लेनदेन नहीं।

  7. जीएई की लागत खराब नहीं है। हम दिन में लगभग 5 डॉलर के लिए 1 एम अनुरोध करते हैं। सबसे बड़ी बचत इस तथ्य से आती है कि आपको जीएई पर सिस्टम एडमिनिस्ट्रेटर की आवश्यकता नहीं है (लेकिन आपको ईसी 2 के लिए एक की आवश्यकता है)। जनशक्ति जीएई की लागत की तुलना में अविश्वसनीय रूप से सस्ते है।

कुछ संकेत पैसे (एक गति को) को बचाने के लिए GAE:

ए का प्रयोग करें डेटास्टोर में क्वेरी दर्ज करने के बजाय (ध्यान से Natiral कुंजी क्राफ्टिंग की आवश्यकता है)।

बी डेटा डेटा कैश करने के लिए memcache का उपयोग करें जिसे आप डेटास्टोर बनाते हैं। यह ऑब्जेक्टिफ़ाई के साथ स्वचालित रूप से किया जा सकता है और यह @Cached annotation है।

सी डेटा को denormalize। मतलब है कि आप विभिन्न स्थानों पर डेटा को अनावश्यक रूप से लिखते हैं ताकि इसे यथासंभव कम से कम संचालन में प्राप्त किया जा सके।

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

ई। adjusting app settings के बारे में पढ़ें। अलग-अलग सेटिंग्स आज़माएं (इस बात पर निर्भर करता है कि आपका ऐप देरी और आपके ट्रैफिक पैटर्न/स्पाइक का अनुरोध करने के लिए कितना सहिष्णु है)। हम फ्रंटेंड उदाहरणों को 70% तक काटने में सक्षम थे।

+0

मान लीजिए कि मैं लोचदार भार संतुलन के लिए जाता हूं, मैं डेटाबेस परत को कैसे स्केल करूं जिससे प्रत्येक उदाहरण को अपना डेटा प्राप्त हो या आरडीएस मेरे लिए बिल्कुल सही करे? –

+1

नहीं, ईसी 2 पर अपना खुद का डेटाबेस चलाना बहुत कठिन है: 1. अस्थिर भंडारण अस्थिर है, 2. ब्लॉक संग्रहण धीमा है। 3. आपको अपने आप पर विघटित सेटअप में डेटाबेस सेट करना होगा। –

+1

छोटा: अमेज़ॅन स्वचालित रूप से आपके डेटाबेस को स्केल नहीं करेगा। इसे प्राप्त करने के लिए आपको अपनी डेटाबेस सेवाओं में से एक का उपयोग करने की आवश्यकता है। –