App Hosting, बैकग्राउंड में होने वाले कई मुश्किल टास्क को मैनेज करता है, ताकि आपके ऐप्लिकेशन को डिप्लॉय करना आसान हो सके. इस पेज पर, टास्क फ़्लो के मुख्य हिस्सों के बारे में बताया गया है. साथ ही, उन जगहों के बारे में जानकारी दी गई है जहां आपको अपने ऐप्लिकेशन की ज़रूरतों के हिसाब से, फ़्लो को पसंद के मुताबिक बनाना पड़ सकता है.
मुख्य शब्द और परिभाषाएं
App Hosting फ़्लो की जानकारी को समझने के लिए, कुछ शब्दावली को खास तौर पर परिभाषित करना मददगार होता है. यहां कुछ बुनियादी शब्द दिए गए हैं:
- बैकएंड: मैनेज किए जा रहे उन संसाधनों का कलेक्शन जिन्हें App Hosting, आपके वेब ऐप्लिकेशन को बनाने और चलाने के लिए बनाता है.
- बिल्ड: आपके ऐप्लिकेशन का कोई खास वर्शन, जो आम तौर पर Git कमिट से लिंक होता है. बिल्ड बनाने की प्रोसेस में कई सब-प्रोसेस शामिल होती हैं. इनमें, Cloud Build में आपके ऐप्लिकेशन का बिल्ड बनाना और Cloud Run में बदलाव (शुरुआत में, रोल आउट होने तक 0% ट्रैफ़िक को सेवा देना) को डिप्लॉय करना शामिल है.
- रोलआउट: किसी बिल्ड को ट्रैफ़िक के लिए उपलब्ध कराने की प्रोसेस. git commit से अपने-आप ट्रिगर होने पर, App Hosting पहले आपकी लाइव ब्रांच का इस्तेमाल करके एक बिल्ड बनाता है. इसके बाद, लाइव ट्रैफ़िक को उस पर भेजने के लिए एक रोलआउट बनाता है.
- लाइव ब्रांच: आपकी GitHub रिपॉज़िटरी की वह ब्रांच जिसे आपके लाइव यूआरएल पर डिप्लॉय किया जाता है. अक्सर, यह वह ब्रांच होती है जिसमें सुविधा वाली ब्रांच या डेवलपमेंट ब्रांच को मर्ज किया जाता है.
Google Cloud और App Hosting आर्किटेक्चर
App Hosting, Google Cloud के कई प्रॉडक्ट को मैनेज करता है, ताकि आप अपने वेब ऐप्लिकेशन को डिप्लॉय कर सकें, उसे उपलब्ध करा सकें, और उसकी निगरानी कर सकें. ऐप्लिकेशन, Cloud Build की मदद से बनाए जाते हैं, Cloud Run पर उपलब्ध कराए जाते हैं, और Cloud CDN में कैश मेमोरी में सेव किए जाते हैं. Cloud Secret Manager जैसी इंटिग्रेट की गई सेवाएं, आपके एपीआई पासकोड को सुरक्षित रखती हैं.
- जब आपकी लाइव ब्रांच में कोई कमिट पुश किया जाता है, तो Google Cloud Developer Connect, Firebase App Hosting को एक इवेंट भेजता है.
- Firebase App Hosting इस इवेंट के जवाब में, रिपॉज़िटरी से कनेक्ट किए गए बैकएंड के लिए एक नया बिल्ड बनाता है.
- सबसे पहले, Firebase App Hosting आपकी कमिट के लिए एक नया Cloud Build बिल्ड बनाता है. इस जॉब में, Google Cloud buildpacks यह तय करता है कि आपके ऐप्लिकेशन में किस फ़्रेमवर्क का इस्तेमाल किया जा रहा है. इससे, आपके ऐप्लिकेशन के हिसाब से कंटेनर और कॉन्फ़िगरेशन बनाया जाता है. इसमें एनवायरमेंट वैरिएबल, सीक्रेट, कम से कम या ज़्यादा से ज़्यादा इंस्टेंस, एक साथ कई काम करने की सुविधा, मेमोरी, सीपीयू, और वीपीसी कॉन्फ़िगरेशन शामिल है. ज़्यादा जानकारी के लिए, App Hosting को बनाने की प्रोसेस देखें.
- Cloud Build जॉब पूरा होने पर, आपका कंटेनर Firebase App Hosting के लिए बनाई गई Artifact Registry रिपॉज़िटरी में सेव हो जाता है. Firebase App Hosting, आपकी इमेज और कॉन्फ़िगरेशन का इस्तेमाल करके, Cloud Run सेवा में एक नया Cloud Run रिविज़न जोड़ता है.
- Cloud Run के नए वर्शन में बदलाव करने और उसकी पुष्टि होने के बाद, Firebase App Hosting अपने ट्रैफ़िक कॉन्फ़िगरेशन में बदलाव करता है, ताकि सभी नए अनुरोध आपके Cloud Run के नए वर्शन पर भेजे जा सकें. इस समय, रोलआउट पूरा हो गया है.
- जब Firebase App Hosting पर होस्ट की गई किसी वेबसाइट को कोई अनुरोध भेजा जाता है, तो Google Cloud Load Balancer उस अनुरोध को पूरा करता है. इसके लिए, Cloud CDN चालू होना चाहिए. कैश मेमोरी में सेव नहीं किए गए अनुरोध, आपकी Cloud Run सेवा को भेजे जाते हैं. Cloud CDN की मदद से परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के बारे में जानने के लिए, ऐप्लिकेशन के कॉन्टेंट को कैश मेमोरी में सेव करना लेख पढ़ें.
फ़्रेमवर्क इंटिग्रेशन
App Hosting, इन फ़्रेमवर्क में डेवलप किए गए वेब ऐप्लिकेशन के लिए, पहले से कॉन्फ़िगर की गई बिल्ड और डिप्लॉयमेंट की सुविधा देता है:
- Next.js 13.5.x और इसके बाद के वर्शन
- Angular 18.2.x और इसके बाद के वर्शन
खास वर्शन और सहायता के लेवल के बारे में जानकारी पाने के लिए, सहायता शेड्यूल देखें.
Next.js और Angular के अलावा, App Hosting ऐसे किसी भी वेब फ़्रेमवर्क के साथ काम करता है जो हमारे आउटपुट बंडल स्पेसिफ़िकेशन से मैच होने वाला बिल्ड आउटपुट दे सकता है. App Hosting के साथ काम करने वाले फ़्रेमवर्क, फ़्रेमवर्क अडैप्टर, और उनसे जुड़े टूल के बारे में ज़्यादा जानने के लिए, App Hosting के लिए फ़्रेमवर्क और टूल देखें.
App Hosting रिपॉज़िटरी इंटिग्रेशन के काम करने का तरीका
आपकी GitHub रिपॉज़िटरी और App Hosting बैकएंड के बीच के अहम कनेक्शन को Developer Connect मैनेज करता है. यह बाहरी DevOps टूल के लिए, Google Cloud का कनेक्टिविटी प्लैटफ़ॉर्म है. इस कनेक्शन को सेट अप करने के दौरान, Developer Connect का यूज़र इंटरफ़ेस (यूआई) वर्कफ़्लो, Firebase GitHub ऐप्लिकेशन को इंस्टॉल करने में आपकी मदद करता है. आम तौर पर, ऐसा App Hosting बैकएंड बनाने के दौरान होता है. इस प्रोसेस के मुख्य चरण ये हैं:
- आपने Developer Connect को Secret Manager एडमिन की भूमिका दी हो. इससे सिस्टम, क्रेडेंशियल को "सीक्रेट" के तौर पर Cloud Secret Manager में सुरक्षित तरीके से सेव कर पाता है.
- आपने Firebase GitHub ऐप्लिकेशन को अपनी GitHub रिपॉज़िटरी को ऐक्सेस करने की अनुमति दी हो. सही रिपॉज़िटरी को ऐक्सेस करने के लिए, आपको GitHub की अतिरिक्त अनुमतियों की ज़रूरत पड़ सकती है.
- Developer Connect, आपके प्रोजेक्ट के Secret Manager रिपॉज़िटरी में GitHub का एक खास ऑथराइज़ेशन टोकन सेव करता है. इस टोकन में बदलाव न करें या इसे न मिटाएं.
इसके अलावा, App Hosting को GitHub के Checks API के साथ इंटिग्रेट किया जाता है, ताकि रोल आउट की जांच की जा सके. इस जांच की मदद से, GitHub में अपने रोलआउट का स्टेटस देखा जा सकता है. साथ ही, कोई गड़बड़ी होने पर, डिप्लॉयमेंट की प्रोसेस को डीबग किया जा सकता है.
Firebase और Google की अन्य सेवाओं के साथ इंटिग्रेशन
App Hosting आपके बिल्ड और रनटाइम एनवायरमेंट, दोनों को सेट अप करता है, ताकि आप Google ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल की मदद से, Firebase Admin SDK टूल को शुरू कर सकें. इस तरह, आपका बैकएंड, बिल्ड और रन टाइम, दोनों पर अन्य Firebase प्रॉडक्ट के साथ कम्यूनिकेट कर सकता है. अपने ऐप्लिकेशन को शुरू करने और Firebase SDK टूल से जुड़े अन्य मिलते-जुलते विषयों के बारे में ज़्यादा जानकारी के लिए, अपने वेब ऐप्लिकेशन में Firebase SDK टूल इंटिग्रेट करना लेख पढ़ें.
App Hosting जगहें
App Hosting आपके बैकएंड संसाधनों को किसी खास जगह पर बनाता है. इसे आपका मुख्य इलाका कहा जाता है. App Hosting, कॉन्टेंट को तेज़ी से डिलीवर करने के लिए ग्लोबल सीडीएन के साथ इंटिग्रेट होता है. हालांकि, कैश मेमोरी में सेव नहीं किया गया कॉन्टेंट, आपके ऐप्लिकेशन के मुख्य इलाके से दिखाया जाता है. वेब ऐप्लिकेशन को कहीं भी होस्ट करने की सुविधा के ये मुख्य फ़ायदे हैं:
- डेटा को भौगोलिक तौर पर आपके उपयोगकर्ताओं के करीब लाकर, बेहतर परफ़ॉर्मेंस और कम इंतज़ार का समय.
- किसी एक इलाके में App Hosting के पूरी तरह से काम न करने पर, दूसरे इलाकों में डिप्लॉय किए गए वेब ऐप्लिकेशन पर कोई असर नहीं पड़ेगा.
Firebase कंसोल या Firebase सीएलआई से App Hosting बैकएंड बनाते समय, इनमें से कोई भी क्षेत्र चुना जा सकता है:
us-central1(आयोवा)us-east4(N. वर्जीनिया)us-east5(कोलंबस)asia-east1(ताइवान)asia-southeast1(सिंगापुर)europe-west4(नीदरलैंड्स)
App Hosting बैकएंड सेवा खाता
बिल्ड और रनटाइम के दौरान, आपका App Hosting बैकएंड, सेवा खाते की मदद से Google की अन्य सेवाओं के साथ पुष्टि करता है. इन कामों के लिए, डिफ़ॉल्ट सेवा खाता तब बनता है, जब किसी Firebase प्रोजेक्ट में पहली बार App Hosting को चालू किया जाता है:
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
यह सेवा खाता, डिफ़ॉल्ट रूप से सभी बैकएंड पर लागू होता है. इसमें अनुमतियों का एक छोटा सेट होता है, ताकि आप अपना ऐप्लिकेशन बना सकें, चला सकें, और उसकी निगरानी कर सकें. इसके पास ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल की मदद से, Admin SDK की पुष्टि करने की अनुमति भी होती है. इससे Cloud Firestore से डेटा लोड करने जैसी कार्रवाइयां की जा सकती हैं. Firebase App Hosting की भूमिकाएं देखें.
अगर आपके ऐप्लिकेशन को बिल्ड के समय या बैकएंड से, Google की अन्य सेवाओं के साथ इंटरैक्ट करना है, तो डिफ़ॉल्ट सेवा खाते को अपनी ज़रूरत के मुताबिक बनाया जा सकता है. इसके लिए, आपको भूमिकाएं जोड़नी होंगी. उदाहरण के लिए, अगर आपके ऐप्लिकेशन को Vertex AI के लिए अनुमतियों की ज़रूरत है, तो आपको roles/aiplatform.user या इससे जुड़ी कोई भूमिका जोड़नी पड़ सकती है.