गूगल ऐप इंजन

Google ऐप इंजन (अक्सर जीएई या केवल ऐप इंजन के रूप में संदर्भित) Google-प्रबंधित डेटा केंद्रों में वेब अनुप्रयोगों को विकसित करने और होस्ट करने के लिए एक क्लाउड कंप्यूटिंग  प्लेटफ़ॉर्म है। एप्लिकेशन सैंडबॉक्स (कंप्यूटर सुरक्षा) एड हैं और कई सर्वरों पर चलते हैं। ऐप इंजन वेब एप्लिकेशन के लिए स्वचालित स्केलिंग प्रदान करता है—जैसे ही एप्लिकेशन के लिए अनुरोधों की संख्या बढ़ती है, ऐप इंजन अतिरिक्त मांग को संभालने के लिए स्वचालित रूप से वेब एप्लिकेशन के लिए अधिक संसाधन आवंटित करता है। Google ऐप इंजन मुख्य रूप से Go (प्रोग्रामिंग भाषा), PHP, Java (प्रोग्रामिंग भाषा), Python (प्रोग्रामिंग भाषा), Node.js, .NET Framework|.NET, और Ruby (प्रोग्रामिंग भाषा) अनुप्रयोगों का समर्थन करता है, हालाँकि यह अन्य अनुप्रयोगों का भी समर्थन कर सकता है कस्टम रनटाइम के माध्यम से भाषाएं। सेवा खपत संसाधनों के एक निश्चित स्तर तक और केवल मानक वातावरण में मुफ्त है लेकिन लचीले वातावरण में नहीं। अतिरिक्त भंडारण, बैंडविड्थ (कंप्यूटिंग), या आवेदन के लिए आवश्यक उदाहरण घंटों के लिए शुल्क लिया जाता है। इसे पहली बार अप्रैल 2008 में पूर्वावलोकन संस्करण के रूप में जारी किया गया था और सितंबर 2011 में पूर्वावलोकन से बाहर आया।

रनटाइम और फ्रेमवर्क
Google ऐप इंजन मुख्य रूप से Go (प्रोग्रामिंग भाषा), PHP, Java (प्रोग्रामिंग भाषा), Python (प्रोग्रामिंग भाषा), Node.js, .NET Framework|.NET, और Ruby (प्रोग्रामिंग भाषा) अनुप्रयोगों का समर्थन करता है, हालाँकि यह अन्य अनुप्रयोगों का भी समर्थन कर सकता है कस्टम रनटाइम के माध्यम से भाषाएं।

Google ऐप इंजन पर चलने वाले पायथन वेब फ्रेमवर्क में Django (वेब ​​​​फ्रेमवर्क), चेरीपी, पाइलन्स प्रोजेक्ट # पिरामिड,  कुप्पी (प्रोग्रामिंग) , web2py और webapp2 शामिल हैं। साथ ही एक कस्टम Google-लिखित वेबएप फ्रेमवर्क और कई अन्य विशेष रूप से प्लेटफॉर्म के लिए डिज़ाइन किए गए हैं जो रिलीज के बाद से उभरे हैं। सीजीआई एडॉप्टर का उपयोग करके वेब सर्वर गेटवे इंटरफ़ेस का समर्थन करने वाले किसी भी पायथन फ्रेमवर्क का उपयोग एप्लिकेशन बनाने के लिए किया जा सकता है; ढांचे को विकसित एप्लिकेशन के साथ अपलोड किया जा सकता है। शुद्ध पायथन में लिखी गई तृतीय-पक्ष लाइब्रेरी को भी अपलोड किया जा सकता है।  Google ऐप इंजन कई जावा मानकों और रूपरेखाओं का समर्थन करता है। इसका मुख्य भाग जावा सर्वलेट | सर्वलेट 2.5 तकनीक है जो ओपन-सोर्स जेटी (वेब ​​सर्वर) का उपयोग करती है, संबंधित तकनीकों जैसे JavaServer Pages के साथ। JavaServer Faces कुछ वर्कअराउंड के साथ काम करता है। बीटा में ऐप इंजन स्टैंडर्ड जावा का एक नया रिलीज़ Java8, Servlet 3.1 और Jetty9 को सपोर्ट करता है।

हालांकि एकीकृत डेटाबेस, Google क्लाउड डेटास्टोर, प्रोग्रामर के लिए अपरिचित हो सकता है, यह जावा पर्सिस्टेंस एपीआई, जावा डेटा ऑब्जेक्ट्स और सरल निम्न-स्तरीय एपीआई द्वारा एक्सेस और समर्थित है। कई वैकल्पिक पुस्तकालय और रूपरेखाएँ हैं जिनका उपयोग आप डेटा को डेटाबेस में मॉडल और मैप करने के लिए कर सकते हैं जैसे कि ऑब्जेक्टिफ़ाई, स्लिम्ज़ और जेलो फ्रेमवर्क। स्प्रिंग फ्रेमवर्क जीएई के साथ काम करता है। हालाँकि, स्प्रिंग सिक्योरिटी मॉड्यूल (यदि उपयोग किया जाता है) को वर्कअराउंड की आवश्यकता होती है। अपाचे स्ट्रट्स  1 समर्थित है, और अपाचे स्ट्रट्स वर्कअराउंड के साथ चलता है। Django (वेब ​​फ्रेमवर्क) और उस पर चल रहे एप्लिकेशन को संशोधन के साथ ऐप इंजन पर इस्तेमाल किया जा सकता है। Django-nonrel का उद्देश्य Django को गैर-संबंधपरक डेटाबेस के साथ काम करने की अनुमति देना है और परियोजना में ऐप इंजन के लिए समर्थन शामिल है।

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

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

प्रतिबंध

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

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

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

जबकि अन्य सेवाएं उपयोगकर्ताओं को लगभग किसी भी *NIX संगत सॉफ़्टवेयर को स्थापित और कॉन्फ़िगर करने देती हैं, ऐप इंजन के लिए डेवलपर्स को केवल इसके Google ऐप इंजन # समर्थित प्रोग्रामिंग भाषाओं और रूपरेखाओं का उपयोग करने की आवश्यकता होती है। समर्थित भाषाएँ, एपीआई और रूपरेखाएँ। वर्तमान एपीआई दस्तावेज़-उन्मुख Google क्लाउड डेटास्टोर डेटाबेस से डेटा को संग्रहीत करने और पुनर्प्राप्त करने की अनुमति देते हैं; HTTP अनुरोध करना; ईमेल भेज रहा हूं; छवियों में हेरफेर; और कैशिंग। Google मेघ एसक्यूएल ऐप इंजन अनुप्रयोगों के लिए उपयोग किया जा सकता है जिसके लिए रिलेशनल MySQL संगत डेटाबेस बैकएंड की आवश्यकता होती है। प्रति दिन और प्रति मिनट कोटा बैंडविड्थ और सीपीयू उपयोग को प्रतिबंधित करता है, अनुरोधों की संख्या, समवर्ती अनुरोधों की संख्या, और विभिन्न एपीआई को कॉल करता है, और व्यक्तिगत अनुरोधों को समाप्त कर दिया जाता है यदि वे 60 सेकंड से अधिक समय लेते हैं या 32 एमबी से अधिक डेटा लौटाते हैं।.

एसक्यूएल और जीक्यूएल के बीच अंतर
Google ऐप इंजन एकीकरण Google क्लाउड डेटास्टोर डेटाबेस में SQL-जैसा सिंटैक्स है जिसे Google क्लाउड डेटास्टोर#GQL (Google क्वेरी लैंग्वेज) कहा जाता है। जीक्यूएल जॉइन (एसक्यूएल) स्टेटमेंट का समर्थन नहीं करता है। इसके बजाय, एक-से-अनेक और अनेक-से-अनेक संबंधों का उपयोग करके पूरा किया जा सकता है ReferenceProperty. Google Firestore Google क्लाउड डेटास्टोर का उत्तराधिकारी है और GQL को एक दस्तावेज़-आधारित क्वेरी विधि से प्रतिस्थापित करता है जो संग्रहीत वस्तुओं को [https://] के रूप में मानता है। firebase.google.com/docs/firestore/query-data/queries दस्तावेजों का संग्रह]।

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

AppScale लोकप्रिय सार्वजनिक और निजी क्लाउड सिस्टम और ऑन-प्रिमाइसेस क्लस्टर पर असंशोधित Google ऐप इंजन अनुप्रयोगों को स्वचालित रूप से परिनियोजित और स्केल करता है। AppScale EC2, Google Compute Engine, सॉफ्टलेयर, एज़्योर और अन्य क्लाउड विक्रेताओं पर Python, Java, PHP और Go एप्लिकेशन चला सकता है।

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

Web2py वेब फ्रेमवर्क SQL डेटाबेस और Google ऐप इंजन के बीच माइग्रेशन की पेशकश करता है, हालांकि यह कई ऐप इंजन-विशिष्ट सुविधाओं जैसे लेनदेन और नामस्थान का समर्थन नहीं करता है। Kubernetes एक ओपन-सोर्स जॉब कंट्रोल सिस्टम है, जिसे Google ने इंफ्रास्ट्रक्चर को अमूर्त करने के लिए आविष्कार किया है ताकि ओपन-सोर्स (जैसे डॉकर) कंटेनरीकृत एप्लिकेशन कई प्रकार के इंफ्रास्ट्रक्चर पर चल सकें, जैसे कि Amazon Web Services, Microsoft Azure, और अन्य। पोर्टेबिलिटी की चिंता के लिए यह Google के उत्तरों में से एक है।

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

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

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

यह भी देखें

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

इस पेज में लापता आंतरिक लिंक की सूची

 * डाटा सेंटर
 * जाओ (प्रोग्रामिंग भाषा)
 * Django (वेब ​​​​ढांचा)
 * Django (वेब ​​​​ढांचा)
 * सी (प्रोग्रामिंग भाषा)
 * Google क्वेरी भाषा
 * कोकीन (पास)

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

 * Official marketing page
 * Official Google Cloud Platform Blog
 * Release notes
 * Google App Engine - Run your web applications on Google's infrastructure - a technical talk by Google engineer Guido van Rossum at Stanford University. (online video archive)
 * Benefits of adopting Google App Engine
 * Using an external database with Google App Engine
 * Java Frameworks and libraries supported
 * Web2py book -- online documentation -- Google App Engine deployment recipe
 * Google Cloud SQL Sample Projects
 * Google Cloud supports node.js
 * Appmd: Python development sample project. App Engine/django/Google Closure/Endpoints/Material design
 * Appmd: Python development sample project. App Engine/django/Google Closure/Endpoints/Material design