गूगल ऐप इंजन

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

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