क्लाउड कंप्यूटिंग: डेवलपर को असल में क्या पता होना चाहिए?

डेवलपर्स को हर क्लाउड सेवा में महारत हासिल करने की ज़रूरत नहीं है। उन बुनियादी सीमाओं — कंप्यूट, स्टोरेज, नेटवर्किंग, पहचान और ऑब्ज़र्वेबिलिटी — पर ध्यान दें जो सीधे एप्लिकेशन डिज़ाइन को आकार देती हैं।

इन भाषाओं में पढ़ें: English · తెలుగు · हिन्दी

Sign in to save

एप्लिकेशन रनटाइम को पांच मुख्य इन्फ्रास्ट्रक्चर सीमाओं (कंप्यूट, डेटा, नेटवर्किंग, सुरक्षा और टेलीमेट्री) के ऊपर संचालित दर्शाने वाला तकनीकी आरेख।

क्लाउड कंप्यूटिंग अब रोज़ के सॉफ़्टवेयर डेवलपमेंट का हिस्सा है। एप्लिकेशन क्लाउड प्लेटफ़ॉर्म पर डिप्लॉय होते हैं। डेटाबेस वहीं चलते हैं। फ़ाइलें वहीं स्टोर होती हैं। API, क्यू, मॉनिटरिंग, ऑथेंटिकेशन, और भी कई सर्विसेज़ क्लाउड से आ सकती हैं। इसीलिए डेवलपर्स को अक्सर कहा जाता है: «आपको क्लाउड सीखना चाहिए।» लेकिन यह बात बहुत बड़ी है। किसी डेवलपर को आमतौर पर हर क्लाउड सर्विस सीखने की ज़रूरत नहीं, न ही क्लाउड आर्किटेक्ट बनने की। बेहतर सवाल है: डेवलपर को अपना काम बेहतर करने में असल में कौन-सी क्लाउड जानकारी मदद करती है?

पहले समझें कि क्लाउड असल में है क्या

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

डेवलपर को समझना चाहिए कि एप्लिकेशन कहाँ चलता है

डेवलपर को पता होना चाहिए कि कोड उसके लैपटॉप से बाहर जाने के बाद क्या होता है। जैसे: एप्लिकेशन कहाँ डिप्लॉय है? ट्रैफ़िक इसे कैसे मिलता है? यह डेटा कहाँ स्टोर करता है? दूसरी सर्विसेज़ से कैसे कनेक्ट होता है? कॉन्फ़िगरेशन और सीक्रेट्स कैसे मिलते हैं? अगर एप्लिकेशन का कोई हिस्सा फ़ेल हो जाए तो क्या होता है? इन्फ्रास्ट्रक्चर की ज़िम्मेदारी आपकी न हो, फिर भी इस माहौल को समझना बेहतर सॉफ़्टवेयर बनाने में मदद करता है। यह DevOps, प्लेटफ़ॉर्म और क्लाउड टीमों के साथ बातचीत भी आसान बनाता है।

आम बिल्डिंग ब्लॉक्स सीखें

क्लाउड प्रोवाइडर का पूरा कैटलॉग पढ़ने की ज़रूरत नहीं। उन सर्विसेज़ से शुरू करें जो ज़्यादातर एप्लिकेशन में दिखती हैं। इनका बुनियादी मक़सद समझें:

  • कंप्यूट: आपका एप्लिकेशन कहाँ चलता है, जिसे तेज़ी से कंटेनर और Docker के साथ एप्लिकेशन पैकेज करना के ज़रिए प्रबंधित किया जाता है।
  • स्टोरेज: फ़ाइलें और दूसरी ऑब्जेक्ट्स कहाँ रखी जाती हैं।
  • डेटाबेस: एप्लिकेशन का डेटा कहाँ स्टोर होता है।
  • नेटवर्किंग: एप्लिकेशन और सर्विसेज़ आपस में कैसे बात करते हैं।
  • आइडेंटिटी और एक्सेस: किसी सर्विस को कौन, या क्या एक्सेस कर सकता है।
  • मॉनिटरिंग और लॉग: डिप्लॉय होने के बाद एप्लिकेशन क्या कर रहा है, यह आप कैसे समझते हैं।

प्रोडक्ट के नाम एक क्लाउड प्रोवाइडर से दूसरे में बदल जाते हैं। विचार काम के बने रहते हैं।

डेवलपर्स को कॉन्फ़िगरेशन और सीक्रेट्स समझने चाहिए

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

बुनियादी स्केलेबिलिटी और फ़ेल्योर समझें

एप्लिकेशन को क्लाउड पर चलाने से वह अपने आप स्केलेबल या भरोसेमंद नहीं बन जाता। डेवलपर्स को कुछ आसान बातें समझनी चाहिए: ज़्यादा यूज़र आने पर क्या होता है? क्या एप्लिकेशन का एक और इंस्टेंस चल सकता है? कोई सर्विस थोड़ी देर के लिए उपलब्ध न हो तो क्या होता है? क्या एप्लिकेशन सुरक्षित तरीक़े से दोबारा कोशिश करता है? यूज़र सेशन की जानकारी कहाँ स्टोर होती है? ये सवाल सॉफ़्टवेयर लिखने के तरीक़े को प्रभावित करते हैं। इसलिए क्लाउड की जानकारी सिर्फ़ इन्फ्रास्ट्रक्चर का विषय नहीं है — यह एप्लिकेशन के डिज़ाइन को भी प्रभावित कर सकती है।

एक क्लाउड प्लेटफ़ॉर्म व्यावहारिक तरीक़े से सीखें

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

चेकलिस्ट: डेवलपर्स को क्या समझना चाहिए बनाम प्लेटफ़ॉर्म टीमें क्या प्रबंधित करती हैं
क्लाउड क्षेत्र डेवलपर्स को क्या समझना चाहिए प्लेटफ़ॉर्म टीमें आमतौर पर क्या संभालती हैं व्यावहारिक एप्लिकेशन प्रभाव
कंप्यूट और निष्पादन प्रोसेस आइसोलेशन, मेमोरी/CPU आवंटन, कंटेनर पैकेजिंग होस्ट OS पैचिंग, हाइपरवाइज़र, क्लस्टर नोड ऑटोस्केलिंग मेमोरी की कमी से क्रैश रोकता है, स्टेटलेस स्केलेबिलिटी सुनिश्चित करता है
स्टोरेज और डेटाबेस लेटेंसी, कनेक्शन पूल सीमाएं, अस्थायी बनाम स्थायी स्टोरेज डिस्क ऐरे, स्वचालित बैकअप, मल्टी-रीजन प्रतिकृति डेटाबेस लॉकअप रोकता है, फ़ाइल अपलोड को सुचारू रूप से संभालता है
नेटवर्किंग और रूटिंग पोर्ट्स, DNS रिज़ॉल्यूशन, HTTP/HTTPS हेडर, इग्रेस लागत VPC सबनेट्स, पीयरिंग टोपोलॉजी, CIDR ब्लॉक, BGP रूटिंग सेवाओं के बीच टाइमआउट विफलता के बिना सुगम संचार सुनिश्चित करता है
सीक्रेट्स और पहचान (IAM) कोड में कोई पासवर्ड न रखना, पर्यावरण इंजेक्शन, न्यूनतम विशेषाधिकार KMS कुंजी वॉल्ट, उद्यम IAM फ़ेडरेशन, SSO अनुपालन क्रेडेंशियल लीक और विशेषाधिकार दुरुपयोग के जोखिम को समाप्त करता है
अवलोकनीयता (ऑब्ज़र्वेबिलिटी) संरचित JSON लॉग, हेल्थ प्रोब एंडपॉइंट, ट्रेसिंग अनुरोध ID लॉग इंजेक्शन पाइपलाइन, दीर्घकालिक भंडारण, चेतावनी क्लस्टर उत्पादन वातावरण में समस्याओं के मूल कारण का त्वरित निदान संभव बनाता है

जो शायद अभी आपको ज़रूरी न हो

ज़्यादातर डेवलपर्स को एडवांस्ड नेटवर्क डिज़ाइन, जटिल मल्टी-रीजन आर्किटेक्चर, गहरी इन्फ्रास्ट्रक्चर ऑटोमेशन, हर Kubernetes फ़ीचर, हर क्लाउड सिक्योरिटी सर्विस, या सैकड़ों प्रोवाइडर-ख़ास प्रोडक्ट्स से शुरुआत करने की ज़रूरत नहीं। ये क्षेत्र बाद में ज़रूरी हो सकते हैं। लेकिन ज़रूरत से पहले इन्हें सीखना आपको उस क्लाउड जानकारी से आसानी से भटका सकता है जो सीधे आपके डेवलपमेंट काम को बेहतर बनाती है।

जानना, इस्तेमाल करना, या महारत हासिल करना?

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

मुख्य व्यावहारिक नियम

क्लाउड को एप्लिकेशन से बाहर की ओर सीखें, न कि सर्विस कैटलॉग से अंदर की ओर। पहले यह समझें कि आपका एप्लिकेशन स्टेट, कॉन्फ़िगरेशन, नेटवर्क लेटेंसी और विफलताओं को कैसे संभालता है। क्लाउड प्रदाता सेवाओं के नाम और वेब कंसोल बदलते रहते हैं, लेकिन ये सॉफ़्टवेयर आर्किटेक्चर बुनियादी सिद्धांत हर प्रदाता पर स्थायी रहते हैं।

आखिरी बात

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

क्लाउड को एप्लिकेशन से बाहर की तरफ़ सीखें, सर्विस कैटलॉग से अंदर की तरफ़ नहीं।

सुधार बताएं

सुधार सीधे एडिटर तक पहुँचते हैं; ये अपने आप कभी प्रकाशित नहीं होते। किसी अकाउंट की ज़रूरत नहीं।