गूगल ऐप इंजन

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

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

रनटाइम और फ्रेमवर्क
गूगल ऐप इंजन मुख्य रूप से पीएचपी, गो, जावा, पाइथन, नोड.जेएस, डॉटनेट और रूबी अनुप्रयोगों का समर्थन करता है, हालांकि यह "कस्टम रनटाइम" के माध्यम से अन्य भाषाओं का भी समर्थन कर सकता है।

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

गूगल ऐप इंजन कई जावा मानकों और फ्रेमवर्कों का समर्थन करता है। इसका मूल सर्वलेट 2.5 तकनीक है, जो ओपन-सोर्स जेटी वेब सर्वर का उपयोग करता है, साथ में जेएसपी जैसी तकनीकों के साथ जावा सर्वर-फेस कुछ वर्कअराउंड के साथ काम करता है। बीटा में ऐप इंजन मानक जावा का एक नया प्रकाशन जावा-8, सर्वलेट 3.1 और जेटी-9 को सपोर्ट करता है।

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

स्प्रिंग फ्रेमवर्क जीएई के साथ काम करता है। हालाँकि, स्प्रिंग सुरक्षा मॉड्यूल (यदि उपयोग किया जाता है) को वर्कअराउंड की आवश्यकता होती है। अपाचे स्ट्रट्स 1 समर्थित और अपाचे स्ट्रट्स वर्कअराउंड के साथ चलता है।

डीजांगो वेब फ्रेमवर्क और उस पर चल रहे एप्लिकेशन को संशोधन के साथ ऐप इंजन पर उपयोग किया जा सकता है। डीजांगो-नॉनरेल का उद्देश्य डीजांगो को गैर-संबंधपरक डेटाबेस के साथ काम करने की अनुमति देना होता है और परियोजना में ऐप इंजन के लिए समर्थन सम्मिलित होते है।

विश्वसनीयता और समर्थन
सभी बनाए किए गए ऐप इंजन एप्लिकेशन में 99.95% अपटाइम एसएलए होता है।

ऐप इंजन को इस तरह से डिज़ाइन किया गया है कि यह बिना किसी डाउनटाइम के कई डेटासेंटर आउटेज को बनाए रख सकता है। डाउनटाइम के लिए यह विकृति आंकड़ों द्वारा दिखाया गया है कि उच्च रेप्लीकेशन डेटास्टोर ने एक वर्ष की अवधि में 0% डाउनटाइम देखा। प्रीमियर खातों के भागों के रूप में गूगल इंजीनियरों से भुगतान सहायता का प्रस्ताव किया जाता है।

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

प्रतिबंध

 * डेवलपर्स के पास ऐप इंजन पर फ़ाइल सिस्टम तक केवल पढ़ने की पहुंच होती है। एप्लिकेशन केवल वास्तविक फ़ाइल सिस्टम का उपयोग कर सकते हैं, जैसे गै-फ़ाइल स्टोर।
 * ऐप इंजन केवल एचटीटीपी अनुरोध से प्राप्त किए गए कोड को निष्पादित कर सकता है। अनुसूचित बैकग्राउंड कार्य एचटीटीपी अनुरोधों को स्वयं कॉल करने की अनुमति देते हैं।
 * उपयोगकर्ता अपेक्षाकृत तरीके से पायथन मॉड्यूल अपलोड कर सकते हैं, लेकिन केवल तभी जब वे शुद्ध-पायथन हों। सी (प्रोग्रामिंग भाषा) और पाइरेक्स (प्रोग्रामिंग भाषा) मॉड्यूल समर्थित नहीं कर सकते हैं।
 * जावा एप्लिकेशन जेआरई मानक संस्करण से श्रेणियों के केवल एक सबसेट (जेआरई श्रेणी व्हाइट लिस्ट) का उपयोग कर सकते हैं। यह प्रतिबंध ऐप इंजन मानक जावा-8 रनटाइम के साथ उपस्थित नहीं होता है।
 * किसी अनुरोध का उत्तर देने के लिए सर्वर पर प्रारम्भ की गई प्रक्रिया 60 सेकंड से अधिक नहीं चल सकती है। 1.4.0 प्रकाशन के साथ, यह प्रतिबंध निम्न स्तरीय नौकरियों पर लागू नहीं होता है।
 * स्टिकी सत्र, एफ़िनिटी सत्र का समर्थन नहीं करता है, यह केवल दोहराए गए सत्रों का समर्थन करता है, जिसमें क्रमबद्ध होने वाले डेटा की मात्रा और सत्र क्रमांकन के लिए समय की सीमा सम्मिलित होती है।

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

ऐप इंजन की आधारभूत संरचना प्रति सेकंड और उससे आगे सैकड़ों अनुरोधों के पैमाने के लिए अनुप्रयोगों के निर्माण की कई प्रणाली प्रशासन और विकास चुनौतियों को दूर करता है। गूगल एक क्लस्टर में कोड परिनियोजित करने, निगरानी करने, फ़ेलओवर करने और आवश्यकतानुसार एप्लिकेशन शीघ्र लागू करने के कार्य को संभालता है।

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

प्रति दिन और प्रति मिनट कोटा बैंडविड्थ और सीपीयू उपयोग को प्रतिबंधित करता है, अनुरोधों की संख्या, समवर्ती अनुरोधों की संख्या और विभिन्न एपीआई को कॉल करता है तथा व्यक्तिगत अनुरोधों को समाप्त कर दिया जाता है यदि वे 60 सेकंड से अधिक समय लेते हैं या 32 एमबी से अधिक डेटा लौटाते हैं।

एसक्यूएल और जीक्यूएल के बीच अंतर
गूगल ऐप इंजन के एकीकृत गूगल क्लाउड डेटास्टोर डेटाबेस में जीक्यूएल (गूगल क्वेरी भाषा) नामक एक एसक्यूएल-जैसा सिंटैक्स होता है। जीक्यूएल जॉइन कथन का समर्थन नहीं करता है। इसके अतिरिक्त, ReferencePropertyका उपयोग करके एक-से-कई और कई-से-अनेक संबंध पूरे किए जा सकते हैं।

गूगल फायरस्टोर, गूगल क्लाउड डेटास्टोर का उत्तराधिकारी होता है और जीक्यूएल को दस्तावेज़-आधारित क्वेरी पद्धति से प्रतिस्थापित करता है, जो संग्रहीत वस्तुओं को दस्तावेज़ों के संग्रह के रूप में मानता है।

पोर्टेबिलिटी चिंताए
विकासकों को चिंता रहती है कि एप्लिकेशन ऐप इंजन से पोर्टेबल नहीं होंगे और प्रौद्योगिकी में बंद होने का डर है। जवाब में, ऐप इंजन के विभिन्न स्वामित्व/बंद एपीआई, विशेष रूप से डेटास्टोर के लिए ओपन-सोर्स बैक-एंड बनाने के लिए ऐपस्केल, केपड्वार्फ और टायफूनएई कुछ ओपन-सोर्स परियोजनाएं हैं।

ऐपस्केल लोकप्रिय सार्वजनिक, निजी क्लाउड सिस्टम और ऑन-प्रिमाइसेस क्लस्टर पर असंशोधित गूगल ऐप इंजन अनुप्रयोगों को स्वचालित रूप से परिनियोजित और मापता है। ऐपस्केल ईसी-2, गूगल कंप्यूट इंजन, सॉफ्टलेयर, एज़्योर और अन्य क्लाउड विक्रेताओं पर पाइथन, जावा, पीएचपी और गो एप्लिकेशन चला सकता है।

टाइफूनएई लिनक्स मशीनों का समर्थन करने वाले किसी भी क्लाउड पर पायथन ऐप इंजन एप्लिकेशन चला सकता है।

वेब2पाई वेब फ्रेमवर्क एसक्यूएल डेटाबेस और गूगल ऐप इंजन के बीच माइग्रेशन की प्रस्तुति करता है, हालांकि यह कई ऐप इंजन-विशिष्ट सुविधाओं जैसे लेनदेन और नामस्थान का समर्थन नहीं करता है।

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

बैकएंड्स
गूगल आई/ओ 2011 में, गूगल ने ऐप इंजन बैकएंड्स की घोषणा की, जिन्हें लगातार चलने और अधिक मेमोरी की खपत करने की अनुमति होती है। मॉड्यूल एपीआई के पक्ष में 13 मार्च 2014 तक बैकएंड एपीआई को हटा दिया गया था।

गूगल क्लाउड एसक्यूएल
अक्टूबर 2011 में, गूगल ने शून्य रखरखाव एसक्यूएल डेटाबेस का पूर्वावलोकन किया। जो जेडीबीसी और डीबी-एपीआई का समर्थन करता है। यह सेवा ऐप इंजन अनुप्रयोगों के साथ रिलेशनल डेटाबेस बनाने, कॉन्फ़िगर करने और उपयोग करने की अनुमति देती है। गूगल क्लाउड एसक्यूएल माईएसक्यूएल 8.0, 5.7 और 5.6 का समर्थन करता है।

उपयोग कोटा
गूगल ऐप इंजन को आरंभ करने के लिए एक गूगल खाते की आवश्यकता होती है, और एक खाता विकासक को 25 निःशुल्क एप्लिकेशन और असीमित संख्या में भुगतान किए गए एप्लिकेशन को पंजीकृत करने की अनुमति दे सकता है।

गूगल ऐप इंजन निःशुल्क एप्लिकेशन के लिए उपयोग दर को परिभाषित करता है। इन दरों के विस्तार का अनुरोध किया जा सकता है, और एप्लिकेशन विकासक अतिरिक्त संसाधनों के लिए भुगतान कर सकते हैं।

यह भी देखें

 * अमेज़न वेब सेवाएँ
 * ऐपस्केल
 * एडब्ल्यूएस लोचदार बीनस्टॉक
 * ब्लूमिक्स
 * कोकीन (पीएएस)
 * इंजन यार्ड
 * फ़ोर्स डॉट कॉम
 * गोग्रिड
 * गूगल ऐप्स स्क्रिप्ट
 * गूगल क्लाउड प्लेटफ़ॉर्म
 * हेरोकू
 * जेलस्टिक
 * माइक्रोसॉफ्ट एज़्योर
 * ओपनशिफ्ट
 * ओरेकल क्लाउड#प्लेटफ़ॉर्म
 * रैकस्पेस क्लाउड
 * स्काईटैप
 * वीएमवेयर

बाहरी कड़ियाँ

 * Official marketing page
 * Official गूगल Cloud Platform Blog
 * Release notes
 * गूगल App Engine - Run your web applications on गूगल's infrastructure - a technical talk by गूगल engineer Guido van Rossum at Stanford University. (online video archive)
 * Benefits of adopting गूगल App Engine
 * Using an external database with गूगल App Engine
 * जावा Frameworks and libraries supported
 * Web2py book -- online documentation -- गूगल App Engine deployment recipe
 * गूगल Cloud एसक्यूएल Sample Projects
 * गूगल Cloud supports node.js
 * Appmd: पाइथन development sample project. App Engine/डीजांगो/गूगल Closure/Endpoints/Material design
 * Appmd: पाइथन development sample project. App Engine/डीजांगो/गूगल Closure/Endpoints/Material design