- Serve traffic from multiple regions | Cloud Run Documentation | Google Cloud
- You can return faster responses to your users around the world by deploying services in multiple regions and routing your users to the nearest region. Deploying across multiple regions delivers low latency and higher availability in case of regional outages.
GCP ने पिछले हफ़्ते Cloud Run के लिए एक ऐसा फीचर जारी किया है जो इसे एक ही बार में मल्टी-रीजन में इस्तेमाल करने लायक बनाता है।
मल्टी-रीजन में सर्विस को संक्षेप में समझाएँ तो, मान लीजिये, हमारे पास सियोल, लंदन और लास वेगास जैसे रीजन हैं।
ऐसे में, पहले हमें कई रीजन में अलग-अलग डिप्लॉय करने के लिए स्क्रिप्ट का इस्तेमाल करना पड़ता था, लेकिन इस नए फीचर से हम एक ही स्क्रिप्ट से कई रीजन में डिप्लॉय कर सकते हैं।
दरअसल, सर्विस के लॉन्च होने से पहले, जब मैंने इसके डॉक्यूमेंट पढ़े थे, तो मुझे इस फीचर से बहुत उम्मीद थी, लेकिन मुझे थोड़ी निराशा हुई।
डिप्लॉयमेंट के लिए पहले से ही स्क्रिप्ट का इस्तेमाल करके एक साथ कई रीजन में डिप्लॉय किया जा सकता था, और चूँकि ये समानांतर रूप से काम करते हैं, इसलिए समय में कोई खास फर्क नहीं पड़ता, इसलिए मुझे इस हिस्से से कोई खास उम्मीद नहीं थी, लेकिन समस्या यह है कि एक साथ डिप्लॉय करने की वजह से, हर रीजन के लिए अलग-अलग एन्वायरमेंट वेरिएबल सेट नहीं किये जा सकते।
इसलिए, मैं अलग-अलग Cloud Run को अलग-अलग रीजन में अलग-अलग DB या GCS से जोड़ने के लिए इस फीचर का इस्तेमाल करता था, लेकिन अब इसमें समस्या आ रही है।
दूसरी समस्या यह है कि बार-बार डिप्लॉयमेंट करने पर, पुराने वर्ज़न को हटाने की ज़रूरत पड़ती है, लेकिन ये काम अलग-अलग नहीं किया जा सकता। ये रीड-ओनली मोड में लॉक हो जाते हैं, जिससे पुराने वर्ज़न को अलग-अलग हटाया नहीं जा सकता।
इसके कई नुकसान हैं, लेकिन एक फायदा यह है कि कई Cloud Run को एक में "मर्ज" किया जा सकता है।
हमारी सर्विस में Cloud Run और रीजन का काफी इस्तेमाल होता है, इसलिए अभी लगभग 50 और वर्तमान में चल रहे काम ख़त्म होने पर 100 से ज़्यादा हो जाएँगे, लेकिन मल्टी-रीजन सर्विस का इस्तेमाल करके हम इन्हें 10-20 तक कम कर सकते हैं। (बस इन्हें छिपाया जा सकता है।)
सबसे पहले, स्क्रिप्ट इस प्रकार है।
ऊपर दी गयी स्क्रिप्ट को चलाने पर डिप्लॉयमेंट इस प्रकार होगा।
क्लाउड रन
सबसे पहले, एक ही नाम का Cloud Run हर रीजन में डिप्लॉय किया जाता है, और सबसे ऊपर एक ही नाम का फ़ोल्डर बनता है।
मर्ज किया हुआ स्क्रीनशॉट इस प्रकार है।
क्लाउड रन - मोडी हुई स्क्रीन
दरअसल, अगर संख्या कम है, तो इससे ज़्यादा फायदा नहीं होता, लेकिन अगर 40 रीजन में डिप्लॉय किया जाए, तो इससे बहुत फायदा होगा। (इतना नहीं भी हो, तो भी...)
केवल पढ़ने के लिए चिह्नित है।
ज़्यादातर फीचर में, अगर कुछ बदलाव करने की कोशिश की जाए, तो रीड-ओनली दिखाया जाता है। डॉक्यूमेंट में तो फीचर दिखाया गया है, लेकिन API में समस्या है या फिर यह ठीक से काम नहीं कर रहा है।
संबंधित डॉक्यूमेंट यहाँ उपलब्ध है।
gcloud का डॉक्यूमेंट यहाँ है। अभी केवल अल्फ़ा/बीटा वर्ज़न ही सपोर्टेड हैं, और आधिकारिक वर्ज़न सपोर्टेड नहीं है। इसके अलावा, ऊपर दिए गए डॉक्यूमेंट में --regions ऑप्शन नहीं है। (जल्द ही अपडेट हो जाएगा?)
मुझे बस यही चाहिए कि PORT की तरह ही एन्वायरमेंट वेरिएबल डिफ़ॉल्ट वैल्यू के तौर पर उपलब्ध हो। मैं जानता हूँ कि मेटाडाटा सर्वर से कई तरह की जानकारी मिलती है, लेकिन इसे फेच करने में असुविधा होती है। (और ये भी एक तरह का रिसोर्स है।)
चूँकि यह अभी प्रीव्यू में है, इसलिए इसमें सुधार होगा। (शुरूआत में ही शिकायत करना उचित नहीं है।)
टिप्पणियाँ0