मुख्य सामग्री पर जाएँ

क्लाउड रन: GCP में कंटेनराइज्ड ऐप्स डिप्लॉय करने की गाइड

Cloud Run और इसके उपयोग मामलों के बारे में जानें, फिर हमारी चरण-दर-चरण गाइड का पालन करें और अपना पहला इंस्टेंस लॉन्च करें।
· 9 मि॰ पढ़ें

AI के साथ खोजें

Cloud Run Google Cloud का पूर्ण-प्रबंधित सर्वरलेस प्लेटफ़ॉर्म है जो आपको इन्फ्रास्ट्रक्चर प्रबंधन की चिंता किए बिना एप्लिकेशन डिप्लॉय करने देता है। यह बेहद लचीला है और शौकिया प्रोजेक्ट्स से लेकर एंटरप्राइज़ तक, कई प्रकार के प्रोजेक्ट्स के लिए बेहतरीन विकल्प है।

इस लेख में, मैं आपको बताऊंगा कि Cloud Run क्या है, यह कैसे काम करता है, किन उपयोग मामलों को हल कर सकता है, और यह अन्य सर्वरलेस समाधानों की तुलना में कैसा है। साथ ही, मैं आपको चरण-दर-चरण आपका पहला Cloud Run एप्लिकेशन डिप्लॉय करना भी दिखाऊंगा!

और शुरू करने से पहले: यदि आप क्लाउड कंप्यूटिंग में बिल्कुल नए हैं, तो मैं हमारा Introduction to Cloud Computing कोर्स लेने की सलाह दूंगा। यह कोर्स क्लाउड की बुनियादी बातें स्पष्ट करता है, स्केलेबिलिटी और लेटेंसी जैसे मुख्य शब्दों को समझाता है, और GCP जैसे प्रदाताओं के क्लाउड टूल्स के फ़ायदों को कवर करता है।

Cloud Run क्या है? 

Cloud Run एक सर्वरलेस कंटेनर निष्पादन प्लेटफ़ॉर्म है जो आपको इन्फ्रास्ट्रक्चर प्रबंधन की चिंता किए बिना एप्लिकेशन डिप्लॉय करने देता है। 

पारंपरिक सर्वर-आधारित डिप्लॉयमेंट में, आपको आम तौर पर वर्चुअल मशीनों को प्रोविजन और मेंटेन करना पड़ता है। Cloud Run थोड़ा अलग तरीके से काम करता है और यह सब एब्स्ट्रैक्ट करके एक पूर्ण-प्रबंधित वातावरण प्रदान करता है। 

यह Knative पर बनाया गया है (एक ओपन-सोर्स Kubernetes-आधारित प्लेटफ़ॉर्म जो सर्वरलेस वर्कलोड सक्षम करता है), यानी आपका एप्लिकेशन मांग के आधार पर स्वतः स्केल होता है। जब ट्रैफ़िक बढ़ता है, तो Cloud Run उसे संभालने के लिए और इंस्टेंसेज़ स्पिन-अप करता है। जब ट्रैफ़िक घटता है, तो यह डाउनस्केल करता है। यह शून्य तक भी जा सकता है, ताकि आपका ऐप सक्रिय रूप से न चल रहा हो तो आपको कुछ भी भुगतान न करना पड़े।

Cloud Run किफायती होने के साथ-साथ बेहद लचीला भी है। आप किसी भी भाषा में लिखे गए और किसी भी फ़्रेमवर्क या बाइनरी का इस्तेमाल करने वाले एप्लिकेशन डिप्लॉय कर सकते हैं, बशर्ते वह कंटेनर में चलता हो। आप Node.js, Python, Go, Java जैसी आम तकनीकों के साथ काम कर सकते हैं, या कुछ कम प्रचलित विकल्पों के साथ भी। व्यावहारिक रूप से, इसका मतलब है कि Cloud Run बैकएंड सेवाएँ, APIs, AI वर्कलोड, वेब ऐप्स, और यहाँ तक कि शेड्यूल्ड बैच जॉब्स भी चला सकता है। 

यह थी एक झलक। आइए अब Cloud Run की प्रमुख विशेषताओं को थोड़ा गहराई से समझते हैं।

Cloud Run की प्रमुख विशेषताएँ

हमने अभी कुछ विशेषताओं का ज़िक्र किया, लेकिन यहाँ Cloud Run की मुख्य विशेषताओं का पूरा सारांश है।

भाषा और फ़्रेमवर्क से स्वतंत्र

Cloud Run के सबसे बड़े फ़ायदों में से एक है कि यह आपको किसी विशिष्ट भाषा या फ़्रेमवर्क में बाँधता नहीं है। जब तक आपका एप्लिकेशन कंटेनर में चलता है, आप उसे डिप्लॉय कर सकते हैं। यदि आपकी टीम विविध टेक स्टैक के साथ काम करती है, तो आप अपनी सभी सेवाओं में Cloud Run का उपयोग कर सकते हैं। एक ही टूल, सारी कमान!

स्वचालित स्केलिंग

Cloud Run ट्रैफ़िक के आधार पर क्षैतिज और डायनेमिक रूप से स्केल करता है। यदि आपके एप्लिकेशन को अधिक अनुरोध मिलते हैं, तो Cloud Run अपने आप और इंस्टेंसेज़ स्पिन-अप करता है। जब मांग घटती है, तो यह डाउनस्केल करता है, ज़रूरत पड़ने पर शून्य तक भी।

बिल्ट-इन सुरक्षा और अनुपालन

Cloud Run सभी डिप्लॉय की गई सेवाओं के लिए स्वचालित HTTPS, सुरक्षित प्रमाणीकरण के लिए Google-प्रबंधित सर्विस आइडेंटिटी, निजी नेटवर्किंग के लिए VPC कनेक्टिविटी और SOC 2, ISO 27001, और HIPAA (हेल्थकेयर एप्लिकेशंस के लिए) जैसे इन-बिल्ट अनुपालन प्रमाणपत्र देता है। संक्षेप में, आप सुरक्षित हाथों में हैं।

Google Cloud सेवाओं के साथ एकीकरण

क्योंकि Cloud Run Google Cloud इकोसिस्टम का हिस्सा है, यह अन्य GCP सेवाओं के साथ बेहतरीन तरीके से काम करता है। आप इसे आसानी से डेटाबेस के लिए Cloud SQL से कनेक्ट कर सकते हैं, Pub/Sub के साथ डेटा स्ट्रीम कर सकते हैं, Cloud Storage में फ़ाइलें स्टोर कर सकते हैं या BigQuery, Firebase और AI/ML सेवाओं के साथ उपयोग कर सकते हैं।

ऑन-डिमांड GPU सपोर्ट

AI वर्कलोड के लिए, Cloud Run अब ऑन-डिमांड GPU सपोर्ट प्रदान करता है। यह मशीन लर्निंग इन्फ़रेंस, वीडियो प्रोसेसिंग और वैज्ञानिक कंप्यूटिंग के लिए बड़ा सुधार है, क्योंकि यह आपको हार्डवेयर मैनेजमेंट के बिना ही किसी भी GPU-एक्सेलेरेटेड वर्कलोड को चलाने देता है।

Cloud Run Functions: फ़ंक्शन-एज़-अ-सर्विस (FaaS) मॉडल

यदि आप पूरे कंटेनर मैनेज नहीं करना चाहते, तो Cloud Run Functions छोटे, एकल-उद्देश्य फ़ंक्शंस को इवेंट-ड्रिवन तरीके से चलाने का सरल उपाय देता है। यह AWS Lambda या Google Cloud Functions जैसा है, लेकिन Cloud Run के इन्फ्रास्ट्रक्चर पर चलता है।

Cloud Run कैसे काम करता है: चरण-दर-चरण

इस सेक्शन में, मैं आपको एक साधारण एप्लिकेशन को Cloud Run पर डिप्लॉय करना सिखाऊंगा। मैं आपको आपके ऐप को कंटेनराइज़ करने, उसे Cloud Run पर डिप्लॉय करने, और मांग के अनुसार स्वतः स्केल करने की प्रक्रिया से गुज़ारूँगा।

हम अपने एप्लिकेशन को कंटेनराइज़ करने के लिए Docker का उपयोग करेंगे, लेकिन यह अनिवार्य नहीं है। इस पर अंत में और जानकारी।

चरण 1: अपना वातावरण सेट करें

कुछ भी डिप्लॉय करने से पहले, आपके पास निम्नलिखित टूल्स इंस्टॉल होने चाहिए:

  1. Google Cloud SDK: यह एक कमांड-लाइन इंटरफ़ेस (CLI) है जो आपको Google Cloud सेवाओं, जिनमें Cloud Run भी शामिल है, के साथ इंटरैक्ट करने देता है। आप इसे यहाँ से इंस्टॉल कर सकते हैं।
  2. Docker: यदि आपका ऐप पहले से कंटेनराइज़्ड नहीं है, तो आपको अपने ऐप को पैकेज करने के लिए Docker की ज़रूरत होगी। Docker को यहाँ से इंस्टॉल करें।
  3. Google Cloud Project: सुनिश्चित करें कि आपका Google Cloud प्रोजेक्ट सेटअप है। आप इसे Google Cloud Console से बना सकते हैं।

चरण 2: अपना एप्लिकेशन कोड लिखें

अब, एक साधारण “Hello World” Node.js एप्लिकेशन लिखते हैं।

अपने ऐप के लिए एक डायरेक्टरी बनाएँ:

mkdir hello-world-app
cd hello-world-app

डायरेक्टरी के अंदर एक index.js फ़ाइल निम्न सामग्री के साथ बनाएँ:

const http = require('http');

const requestListener = (req, res) => {
    res.writeHead(200);
    res.end('Hello, Cloud Run!');
};

const server = http.createServer(requestListener);
server.listen(8080, () => {
    console.log('Server is running on port 8080');
});

अपने ऐप की डिपेंडेंसी परिभाषित करने के लिए एक package.json बनाएँ:

{
    "name": "hello-world-app",
    "version": "1.0.0",
    "main": "index.js",
    "dependencies": {}
}

अब जब एप्लिकेशन तैयार है, हम इसे कंटेनराइज़ करने की ओर बढ़ेंगे।

चरण 3: एप्लिकेशन को कंटेनराइज़ करें

कंटेनर इमेज परिभाषित करने के लिए Dockerfile बनाएँ

अपने प्रोजेक्ट डायरेक्टरी में “Dockerfile” नामक एक फ़ाइल निम्न सामग्री के साथ बनाएँ:

# Use the official Node.js image as a base
FROM node:16-alpine

# Set the working directory inside the container
WORKDIR /usr/src/app

# Copy package.json and install dependencies (if any)
COPY package*.json ./

# Copy the rest of the application code
COPY . .

# Expose port 8080 for Cloud Run
EXPOSE 8080

# Start the app
CMD ["node", "index.js"]

Docker इमेज बनाएँ

अपनी Docker इमेज बनाने के लिए निम्न कमांड चलाएँ:

docker build -t gcr.io/your-project-id/hello-world-app .

नोट: your-project-id को अपने Google Cloud प्रोजेक्ट ID से बदलें।

इमेज को स्थानीय रूप से टेस्ट करें

अपना Docker कंटेनर स्थानीय रूप से चलाकर टेस्ट कर सकते हैं:

docker run -p 8080:8080 gcr.io/your-project-id/hello-world-app

ब्राउज़र में http://localhost:8080 खोलकर जाँचें कि ऐप चल रहा है।

चरण 4: इमेज को Google Artifact Registry पर पुश करें

अपने प्रोजेक्ट के लिए Artifact Registry सक्षम करें

यदि आपने अभी तक Artifact Registry सक्षम नहीं किया है, तो निम्न कमांड चलाएँ

gcloud services enable artifactregistry.googleapis.com

नोट: इस चरण को पूरा करने के लिए आपको बिलिंग सक्षम करनी होगी!

Artifact Registry में रिपॉज़िटरी बनाएँ

Artifact Registry में नई Docker रिपॉज़िटरी बनाएँ:

gcloud artifacts repositories create hello-world-repo \
--repository-format=docker \
--location=us-central1

Docker को Artifact Registry से प्रमाणित करें

Docker को Artifact Registry के साथ प्रमाणित करने के लिए कॉन्फ़िगर करें:

gcloud auth configure-docker us-central1-docker.pkg.dev

Artifact Registry के लिए Docker इमेज को टैग करें

अपनी Docker इमेज को Artifact Registry रिपॉज़िटरी URL के साथ टैग करें:

docker tag gcr.io/your-project-id/hello-world-app us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app

इमेज को Artifact Registry पर पुश करें

टैग की गई Docker इमेज को अपनी Artifact Registry रिपॉज़िटरी पर पुश करें:

docker push us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app

चरण 5: Cloud Run पर डिप्लॉय करें

जब आपकी इमेज Artifact Registry पर पुश हो जाए, तो आप उसे सीधे Cloud Run पर डिप्लॉय कर सकते हैं।

निम्न कमांड का उपयोग करके अपनी इमेज को Cloud Run पर डिप्लॉय करें:

gcloud run deploy hello-world-app \
--image us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app \
--platform managed \
--region us-central1 \
--allow-unauthenticated
  • hello-world-app: यह आपके Cloud Run सर्विस का नाम है।
  • us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app: Artifact Registry में स्टोर आपकी इमेज का URL।
  • --platform managed: सुनिश्चित करता है कि डिप्लॉयमेंट Cloud Run के पूर्ण-प्रबंधित प्लेटफ़ॉर्म (GKE क्लस्टर नहीं) का उपयोग करे।
  • --region us-central1: वह रीजन निर्दिष्ट करता है जहाँ Cloud Run को सर्विस डिप्लॉय करनी चाहिए।
  • --allow-unauthenticated: यह सर्विस को पब्लिक एक्सेस की अनुमति देता है। यदि आपको प्रतिबंधित एक्सेस चाहिए, तो इस फ़्लैग को तदनुसार समायोजित करें।

यह कमांड चलाने के बाद, Cloud Run आपका कंटेनराइज़्ड एप्लिकेशन डिप्लॉय करेगा और आपको उसे एक्सेस करने के लिए एक URL देगा।

और हम हो गए! GCP कंसोल में देखें, आपको अपना नया इंस्टेंस दिखना चाहिए।

चरण 6: क्लीन अप

किसी भी चल रहे शुल्क से बचने के लिए, टेस्टिंग पूरी होने पर अपनी सर्विस को ज़रूर डिलीट कर दें।

1. Cloud Run सर्विस डिलीट करें

डिप्लॉय की गई Cloud Run सर्विस को डिलीट करने के लिए निम्न कमांड चलाएँ:

gcloud run services delete hello-world-app --region us-central1

यह Cloud Run इंस्टेंस को हटा देता है, लेकिन कंटेनर इमेज को डिलीट नहीं करता।

2. Artifact Registry इमेज डिलीट करें

Artifact Registry से इमेज हटाने के लिए, पहले इमेज लिस्ट करें:

gcloud artifacts docker images list us-central1-docker.pkg.dev/your-project-id/hello-world-repo

फिर, इमेज को इस तरह डिलीट करें:

gcloud artifacts docker images delete us-central1-docker.pkg.dev/your-project-id/hello-world-repo/hello-world-app --delete-tags

अब आपका Artifact Registry भी क्लीन हो गया है।

3. Artifact Registry रिपॉज़िटरी डिलीट करें (यदि अब ज़रूरत न हो)

यदि आप Artifact Registry रिपॉज़िटरी को पूरी तरह हटाना चाहते हैं, तो यह चलाएँ:

gcloud artifacts repositories delete hello-world-repo --location=us-central1

यह चरण तभी आवश्यक है जब आप रिपॉज़िटरी से पूरी तरह काम निपटा चुके हों, नहीं तो आप इसे भविष्य के डिप्लॉयमेंट्स के लिए पुन: उपयोग कर सकते हैं।

4. (वैकल्पिक) Google Cloud प्रोजेक्ट डिलीट करें

यदि यह एक टेस्ट प्रोजेक्ट था और अब इसकी ज़रूरत नहीं, तो आप पूरे प्रोजेक्ट को डिलीट कर सकते हैं जिससे उससे जुड़ी सभी रिसोर्सेज हट जाएँगी:

gcloud projects delete your-project-id

सोर्स डिप्लॉयमेंट्स

याद है मैंने कहा था कि आपको हमेशा अपने ऐप को मैन्युअल रूप से कंटेनराइज़ करने की ज़रूरत नहीं?

Cloud Run अब सोर्स डिप्लॉयमेंट्स सपोर्ट करता है, यानी यह Cloud Build का उपयोग करके आपके सोर्स कोड से आपके लिए कंटेनर बना सकता है।

आप यह कमांड उपयोग कर सकते हैं:

gcloud run deploy hello-world-app \
--source . \
--region us-central1 \
--allow-unauthenticated

Cloud Build स्वतः आपके एप्लिकेशन की भाषा (Node.js, Python, Go, Java, आदि) पहचानता है, आपके लिए कंटेनर इमेज बनाता है और उसे Artifact Registry में स्टोर करता है। फिर Cloud Run उसी तरह उस बनी हुई इमेज को डिप्लॉय करता है जैसे आपने कंटेनर मैन्युअली बनाया हो। मैं निश्चित रूप से इसे उन सरल एप्लिकेशंस के लिए सुझाऊँगा जिनकी भाषाएँ सपोर्टेड हैं (Node.js, Python, Go, Java, आदि), लेकिन नहीं जब आपको कंटेनर पर पूर्ण नियंत्रण चाहिए (जैसे कस्टम डिपेंडेंसीज़, OS-लेवल ट्वीक, मल्टी-स्टेप बिल्ड्स)।

Cloud Run का कुशल उपयोग करने के सुझाव

ठीक है, Cloud Run पर ऐप डिप्लॉय करना तो काफ़ी आसान है, लेकिन उसे कुशलतापूर्वक चलाने के लिए थोड़ी फाइन-ट्यूनिंग चाहिए। जब मैंने इसे पहली बार इस्तेमाल करना शुरू किया, तो काफ़ी ट्रायल-एंड-एरर हुआ, और मैंने यह सीखा:

1. कोल्ड स्टार्ट वास्तविकता है

खासकर जब आप बड़े कंटेनर इमेज के साथ काम कर रहे हों। आपकी इमेज जितनी छोटी होगी, आपकी सर्विस उतनी जल्दी स्पिन-अप होगी। distroless जैसी न्यूनतम बेस इमेज का उपयोग बड़ा फ़र्क ला सकता है। यदि आप Python ऐप्स बना रहे हैं, तो आधिकारिक इमेज के slim संस्करणों को आज़माएँ। या यदि आपको लागत की बहुत चिंता नहीं है, तो अपना न्यूनतम इंस्टेंस नंबर 1 सेट कर दें।

2. खेलने के लिए सबसे अच्छा चर है अनुरोध concurrency का मान

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

3. अपने इंस्टेंस लिमिट ज़रूर सेट करें!

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

4. सुनिश्चित करें कि सही लोगों को आपका इंस्टेंस एक्सेस मिले

डिफ़ॉल्ट रूप से, Cloud Run सेवाओं को URL जानने वाला कोई भी एक्सेस कर सकता है, जो कि त्वरित डेमो के लिए बढ़िया है, लेकिन प्रोडक्शन के लिए नहीं। यदि आपका ऐप पब्लिक नहीं होना चाहिए, तो IAM परमिशन्स से इसे लॉक करें। 

5. Cloud Logging और Cloud Trace आपके सबसे अच्छे दोस्त बन जाएँगे

यदि, मेरी तरह, आप VM में SSH करके डिबग करने की आदत रखते हैं, तो आपको निराशा होगी। Cloud Run लॉग सीधे Google Cloud के डैशबोर्ड पर स्ट्रीम होते हैं, इसलिए आप सब कुछ वहीं देख सकते हैं। अपने एप्लिकेशन में स्ट्रक्चर्ड लॉगिंग ज़रूर जोड़ें, इससे ट्रबलशूटिंग बहुत आसान हो जाएगी।

Cloud Run के उपयोग मामले

हमने Cloud Run के कुछ उपयोग मामलों पर बात की, जैसे वेब ऐप्स, APIs या क्रॉन जॉब्स चलाना, लेकिन और भी बहुत कुछ है।

वीडियो और इमेज विश्लेषण

आप सोशल मीडिया प्लेटफ़ॉर्म के लिए अपलोड की गई इमेज का रीयल-टाइम में प्रोसेस करने हेतु इमेज रिकग्निशन मॉडल डिप्लॉय कर सकते हैं, या वीडियो अपलोड होने पर वीडियो ट्रांसकोडिंग टास्क चला सकते हैं। Cloud Run अपनी ऑटोमेटेड स्केलिंग के साथ मांग में आने वाले स्पाइक्स (जैसे वायरल कंटेंट) को संभाल सकता है, जबकि कम मांग के समय लागत-प्रभावी रहता है।

वीडियो और इमेज विश्लेषण

स्रोत: Google Cloud

रीयल-टाइम स्ट्रीम प्रोसेसिंग

कल्पना करें कि आप एक सिस्टम बना रहे हैं जो ऑनलाइन मार्केटप्लेस पर उपयोगकर्ता के व्यवहार की मॉनिटरिंग करता है। Pub/Sub या BigQuery से इवेंट स्ट्रीम प्रोसेस करके, आप उपयोगकर्ता गतिविधि के आधार पर तुरंत एक्शन ट्रिगर कर सकते हैं, जैसे पुश नोटिफ़िकेशन भेजना या रीयल-टाइम में ट्रेंड्स का विश्लेषण करना। पीक पीरियड्स के दौरान Cloud Run इनकमिंग इवेंट्स को हैंडल करने के लिए स्वतः स्केल-अप होता है और स्ट्रीम वॉल्यूम घटने पर डाउनस्केल हो जाता है।

रीयल-टाइम स्ट्रीम प्रोसेसिंग

स्रोत: Google Cloud

रीयल-टाइम फ़ाइल प्रोसेसिंग

एक उपयोग मामला किसी बड़े एंटरप्राइज़ के लिए रीयल-टाइम लॉग फ़ाइल विश्लेषण हो सकता है। जब भी कोई लॉग फ़ाइल Cloud Storage में अपलोड होती है, Cloud Run एक कंटेनर को ट्रिगर कर सकता है जो फ़ाइल को पार्स करे, विश्लेषण चलाए, और परिणाम स्टोर करे—यह सब फ़ाइल के आकार और प्रोसेसिंग टास्क की जटिलता के आधार पर डायनेमिक स्केलिंग के साथ।

रीयल-टाइम फ़ाइल प्रोसेसिंग

स्रोत: Google Cloud

सर्वरलेस IoT बैकएंड्स

Cloud Run IoT एप्लिकेशंस के बैकएंड सेवाओं को संभालने के लिए आदर्श है। उदाहरण के लिए, हज़ारों सेंसरों से पर्यावरणीय डेटा ट्रैक करने वाले किसी IoT समाधान में, Cloud Run प्रत्येक डिवाइस से आने वाले डेटा को रीयल-टाइम में प्रोसेस कर सकता है।

सर्वरलेस IoT बैकएंड्स

स्रोत: Google Cloud

Google Cloud Run की कीमतें 

Cloud Run पे-एज़-यू-गो मॉडल का पालन करता है, यानी आप केवल उसी कंप्यूट संसाधन के लिए भुगतान करते हैं जब आपका एप्लिकेशन सक्रिय रूप से चल रहा हो। जब आपका ऐप अनुरोध हैंडल नहीं कर रहा होता, तो यह शून्य तक स्केल डाउन कर सकता है, जिसका मतलब है अनावश्यक लागत नहीं।

प्राइसिंग ब्रेकडाउन

मार्च 2025 तक, Cloud Run मुख्यतः दो कारकों के आधार पर शुल्क लेता है:

रिसोर्सलागतफ्री टियर
CPU$0.000018 प्रति vCPU-सेकंड240,000 vCPU-सेकंड/माह
मेमोरी$0.000002 प्रति GiB-सेकंड450,000 GiB-सेकंड/माह

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

छोटा-सा टिप: उसी रीजन में अन्य Google Cloud सेवाओं के साथ ट्रैफ़िक मुफ़्त है, तो डेटा एक्सचेंज के लिए बाहरी सेवाओं के बजाय Cloud Storage, Cloud SQL, या Pub/Sub का उपयोग करने का प्रयास करें।

Cloud Run बनाम Cloud Run Functions 

Google दो सर्वरलेस कंप्यूट विकल्प देता है: Cloud Run और Cloud Run Functions (पहले Cloud Functions)। दोनों आपको इन्फ्रास्ट्रक्चर मैनेज किए बिना कोड चलाने देते हैं, लेकिन इनमें थोड़ा अंतर है।

विशेषताCloud RunCloud Functions
निष्पादन मॉडलपूर्ण कंटेनराइज़्ड एप्लिकेशन चलाता हैव्यक्तिगत फ़ंक्शन चलाता है (FaaS मॉडल)
रनटाइम नियंत्रणकोई भी भाषा, कोई भी फ़्रेमवर्क, कस्टम बाइनरीज़पूर्व-परिभाषित रनटाइम्स (Node.js, Python, Go, आदि)
स्टेटस्टेटलेस, परंतु एक अनुरोध के भीतर कनेक्शन बनाए रख सकता हैस्टेटलेस, इवेंट-ड्रिवन वर्कलोड के लिए डिज़ाइन किया गया
स्केलिंगप्रति कंटेनर इंस्टेंस स्केल करता हैप्रति फ़ंक्शन इनवोकेशन स्केल करता है
ट्रिगरिंगHTTP अनुरोध, Pub/Sub, इवेंट-ड्रिवनइवेंट-ड्रिवन (Pub/Sub, Cloud Storage, HTTP, आदि)
कोल्ड स्टार्टप्री-वार्म्ड इंस्टेंसेज़ के साथ न्यूनतमस्केलिंग में ध्यान देने योग्य देरी हो सकती है
उत्तम उपयोगAPIs, माइक्रोसर्विसेज, बैकएंड सेवाएँ, AI वर्कलोडहल्के, इवेंट-ड्रिवन फ़ंक्शंस, ऑटोमेशन

Cloud Run कब उपयोग करें

  • ✅ आपको रनटाइम और डिपेंडेंसीज़ पर पूरा नियंत्रण चाहिए।
  • ✅ आप ऐसा वेब सर्विस, API, या माइक्रोसर्विस चला रहे हैं जो स्थायी अनुरोध हैंडल करता है।
  • ✅ आप मौजूदा कंटेनराइज़्ड एप्लिकेशन को न्यूनतम बदलाव के साथ डिप्लॉय करना चाहते हैं।
  • ✅ आपको बैकग्राउंड प्रोसेसिंग या लंबी अवधि के टास्क (जैसे AI इन्फ़रेंस, बैच जॉब्स) की ज़रूरत है।

Cloud Run Functions कब उपयोग करें

  • ✅ आप सरल, इवेंट-ड्रिवन फ़ंक्शंस चाहते हैं जो Pub/Sub संदेशों या Cloud Storage अपलोड जैसे इवेंट्स पर ट्रिगर हों।
  • ✅ आप नोटिफ़िकेशन भेजने, छोटे जॉब्स प्रोसेस करने, या डेटा ट्रांसफ़ॉर्मेशन जैसे अल्पकालिक ऑपरेशंस हैंडल कर रहे हैं।
  • ✅ आप कंटेनर मैनेज नहीं करना चाहते और JavaScript, Python, Go, आदि के लिए प्रीबिल्ट रनटाइम्स पसंद करते हैं।

हालाँकि आपको ज़रूरी नहीं कि एक ही चुनना पड़े—आप दोनों को साथ में भी इस्तेमाल कर सकते हैं! उदाहरण के लिए, आपका Cloud Run बैकएंड Cloud Run Functions को ईमेल भेजने या इमेज प्रोसेसिंग जैसे विशेष कार्यों के लिए असिंक्रोनस रूप से ट्रिगर कर सकता है।

अन्य Google Cloud सेवाओं से तुलना

हमने Cloud Run और Cloud Run Functions की काफ़ी अच्छी तुलना की है, लेकिन यहाँ दो और Google Cloud सेवाओं का ज़िक्र करना उचित होगा: GKE और App Engine।

विशेषताCloud RunGoogle Kubernetes Engine (GKE)App Engine
प्रबंधन प्रकारपूर्ण-प्रबंधित सर्वरलेसस्व-प्रबंधित Kubernetes क्लस्टर्सपूर्ण-प्रबंधित प्लेटफ़ॉर्म-एज़-अ-सर्विस
स्केलिंगस्वचालित स्केलिंग, शून्य तकKubernetes के माध्यम से मैनुअल या ऑटो-स्केलिंगस्वचालित स्केलिंग (पर शून्य तक नहीं)
डिप्लॉयमेंटकंटेनर डिप्लॉय करें (कोई भी भाषा)Kubernetes के माध्यम से कंटेनर डिप्लॉय करेंकोड डिप्लॉय करें (विशिष्ट रनटाइम्स सपोर्टेड)
उपयोग मामलेAPIs, माइक्रोसर्विसेज, वेब ऐप्स, बैच जॉब्स, AIजटिल ऐप्स, बड़े पैमाने के माइक्रोसर्विसेज, ML वर्कलोडवेब ऐप्स, मोबाइल बैकएंड्स, APIs
समर्थित भाषाएँकोई भी (कंटेनर-आधारित)कोई भी (कंटेनर-आधारित)विशिष्ट रनटाइम्स सपोर्टेड

बेशक इसमें और भी बारीकियाँ हैं, लेकिन संक्षेप में: यदि आपको ऑटोमेटिक स्केलिंग और लचीलापन के साथ पूर्ण-प्रबंधित, कंटेनराइज़्ड समाधान चाहिए, तो Cloud Run चुनें। यदि आप न्यूनतम कॉन्फ़िगरेशन के साथ वेब ऐप बना रहे हैं, तो App Engine चुनें। और यदि आप बड़े पैमाने, जटिल एप्लिकेशंस के लिए अपने Kubernetes क्लस्टर्स पर पूरा नियंत्रण चाहते हैं, तो GKE चुनें।

निष्कर्ष

अब जब आप Cloud Run के बारे में सब जान गए हैं, तो अपना पहला इंस्टेंस लॉन्च करके देखें या अन्य Google Cloud सेवाओं पर नज़र डालें ताकि अपने लिए सही नियंत्रण और ऑटोमेशन का स्तर खोज सकें!

Cloud Run FAQs

Cloud Run में डेटाबेस कनेक्शंस को कैसे संभालूँ?

आप Cloud SQL Auth Proxy का उपयोग कर सकते हैं, कनेक्शन पूलिंग सक्षम कर सकते हैं (जैसे PostgreSQL के लिए PgBouncer), या कनेक्शन लिमिट से बचने के लिए Firestore जैसे सर्वरलेस डेटाबेस का उपयोग कर सकते हैं।

क्या मैं Cloud Run के साथ कस्टम डोमेन का उपयोग कर सकता/सकती हूँ?

हाँ। इसे Cloud Run कंसोल में Manage Custom Domains के अंतर्गत सेट करें, ओनरशिप वेरिफ़ाई करें, और DNS रिकॉर्ड्स अपडेट करें। SSL स्वचालित रूप से प्रदान किया जाता है।

क्या Cloud Run WebSockets और लंबे समय तक रहने वाले कनेक्शंस को सपोर्ट करता है?

हाँ, लेकिन इंस्टेंसेज़ आइडल होने पर शटडाउन हो सकते हैं। कनेक्शंस बनाए रखने के लिए, न्यूनतम इंस्टेंस सेट करें या इवेंट-ड्रिवन कम्युनिकेशन के लिए Pub/Sub का उपयोग करें।

क्या Cloud Run बैकग्राउंड जॉब्स संभाल सकता है?

सीधे तौर पर नहीं, क्योंकि यह रिक्वेस्ट-आधारित है। बैकग्राउंड प्रोसेसिंग ट्रिगर और मैनेज करने के लिए Cloud Tasks, Pub/Sub, या Workflows का उपयोग करें।

क्या मैं Cloud Run पर स्टेटफुल एप्लिकेशन चला सकता/सकती हूँ?

सुझावित नहीं है, क्योंकि इंस्टेंसेज़ स्टेटलेस होते हैं। स्टेट को सहेजने के लिए Cloud Storage, Firestore, या किसी बाहरी डेटाबेस का उपयोग करें।

Marie Fayard

लेखक

Marie Fayard

मैं एक प्रोडक्ट-उन्मुख टेक लीड हूं, जो शुरुआती चरण के स्टार्टअप्स को पहले प्रोटोटाइप से लेकर प्रोडक्ट–मार्केट फिट और उससे आगे तक बढ़ाने में विशेषज्ञता रखता/रखती हूं। मुझे यह जानने में गहरी दिलचस्पी है कि लोग तकनीक का उपयोग कैसे करते हैं, और मुझे संस्थापकों व क्रॉस-फ़ंक्शनल टीमों के साथ मिलकर साहसिक विचारों को साकार करना पसंद है। जब मैं प्रोडक्ट नहीं बना रहा/रही होता/होती, तब मैं दुनिया के नए कोनों में प्रेरणा की तलाश में रहता/रहती हूं या योग स्टूडियो में जाकर मन हल्का करता/करती हूं।

विषय