इस लेख में, मैं यह परिभाषित नहीं करने जा रहा हूं कि सर्वर रहित क्या है। मैं सर्वर रहित के आर्थिक और वास्तुशिल्प लाभों पर विस्तार भी नहीं करूंगा, जिनके बारे में हम सभी ने सुना है - कम बुनियादी ढांचे के संचालन, घटना-संचालित तत्काल पैमाने, और कम लागत।
इसके बजाय मैं एक मामला बनाना चाहता हूं कि सर्वर रहित वह चीज क्यों है जिसकी सभी डेवलपर्स को परवाह करनी चाहिए, चाहे उनके मालिक इसकी परवाह करें या नहीं।
एक व्यक्तिगत कहानी से शुरू करते हुए, निश्चित रूप से…
मैंने कभी कोई "वेब विकास" नहीं किया है। यहाँ दोहरे उद्धरण अवधारणा का मज़ाक उड़ाने के लिए नहीं हैं, बल्कि इसका अर्थ क्या है, इसके बारे में मेरी अज्ञानता को दर्शाने के लिए हैं। मुझे सबसे लंबे समय तक सेवा, टियर, अपाचे, आईआईएस, एएसपी, जेएसपी, जेएस, सीएसएस, या अन्य समरूपों के बीच अंतर नहीं पता था। एक सॉफ्टवेयर डेवलपर के रूप में, मैंने या तो विंडोज़ के लिए सी ++ कोड बिल्डिंग डेस्कटॉप एप्लिकेशन या लिनक्स के लिए सी कोड बिल्डिंग सर्वर मैनेजमेंट एप्लिकेशन लिखा था। मैंने हमेशा सोचा था कि अच्छे बच्चों को यही करना चाहिए और सभी "वेब सामग्री" कम प्रोग्रामर के लिए थीं।
जितना अधिक मैं वेब से दूर रहा, यह मेरे लिए उतना ही गूढ़ होता गया। REST, JSON, WebAPI, आदि जैसी चीजें हर दूसरे इंटरनेट लेख में दिखाई देती हैं। मोबाइल ऐप बनाने वाले लोग अपने ऐप के लिए "वेब सर्विसेज बैकएंड" बनाने की बात कर रहे थे, जिससे मैं भ्रमित हो गया। इससे कोई फायदा नहीं हुआ कि शहर की अगली सबसे हॉट चीज़ - "क्लाउड" - ने "वेब स्टफ" से अपनी लगभग सभी विशेषताओं को उधार लिया। यदि आप "क्लाउड" में एप्लिकेशन बनाना चाहते हैं, तो आपको या तो "वेब स्टफ" को वास्तव में अच्छी तरह से समझना होगा या वर्चुअल मशीन, कंटेनर और अन्य वर्चुअलाइजेशन-संबंधित तकनीकों में गहरा होना चाहिए। मैंने उन दोनों को काफी देर तक टाला था कि उन्होंने मेरे दिमाग में एक निश्चित आभा हासिल कर ली थी जब तक कि मुझे एक नौकरी नहीं मिली, जहां मुझे यह सब सीखने के लिए मजबूर होना पड़ा। शुक्र है!
लेकिन इसका सर्वरलेस से क्या लेना-देना है?
बहुत।
मुझे यकीन है कि "वेब विकास" की व्यापक लोकप्रियता के बावजूद, दुनिया भर में डेवलपर्स की एक सेना है जो डेस्कटॉप, सर्वर, एम्बेडेड डिवाइस, मोबाइल डिवाइस आदि के लिए सॉफ्टवेयर बनाती है और कभी भी "वेब" पहलुओं (मेरे जैसे) के साथ ज्यादा व्यवहार नहीं करती है। ) उनमें से कई निस्संदेह "क्लाउड" के बारे में चिंतित हैं और उनके लिए इसका क्या अर्थ है - क्या यह भविष्य के लिए रोजगार योग्य कौशल रखने के बारे में है या यह पता लगाने के बारे में है कि अपने मौजूदा अनुप्रयोगों को क्लाउड से कैसे जोड़ा जाए / स्थानांतरित किया जाए (कॉर्पोरेट मेमो को देखा गया है वह प्रभाव पहले से ही)।
ये डेवलपर्स इस तथ्य से दिल लगा सकते हैं कि "क्लाउड" में एप्लिकेशन चलाने के लिए उन्हें केवल अपना व्यावसायिक तर्क लिखना है। सर्वर रहित होने से पहले, उनके संक्रमण का मतलब हो सकता है कि बहुत सारी तकनीकों को सीखना जो सभी प्रकृति में तार्किक थीं, ज्यादातर केवल अविभाज्य भारी भारोत्तोलन कर रही थीं। सर्वर रहित होने के साथ, उनके प्रोग्रामिंग कौशल वे सभी हैं जिनकी उन्हें आवश्यकता है। कौन सा प्रोग्रामर केवल प्रोग्रामिंग पर ध्यान केंद्रित करने की संभावना को पसंद नहीं करता है?
डेस्कटॉप की दुनिया में, किसी सिद्धांत या विचार का परीक्षण करने के लिए छोटे कंसोल एप्लिकेशन या कमांड-लाइन उपयोगिताओं का निर्माण एक रोजमर्रा की बात है। "क्लाउड" में, हालांकि, कभी-कभी एक बहुत ही मूल विचार को प्रोटोटाइप करने की कोशिश करने के साथ-साथ कई घर्षण बिंदुओं से भरा होता है - कॉन्फ़िगरेशन, सेटअप, एसडीके, एकीकरण, और इसी तरह। सर्वरलेस पर्दे के पीछे की उस प्रक्रिया को संभालकर डेवलपर्स के लिए उस दर्द को काफी कम कर देता है। आसान प्रोटोटाइप, त्वरित प्रयोग, गलतियों से सीखना और पाठों के आधार पर धुरी बनाना, आधुनिक सॉफ्टवेयर विकास के प्रमुख सिद्धांत हैं। सर्वर रहित की एक बहुत ही कम सराहना की गई गुणवत्ता इसकी प्रदान करने की क्षमता है।
मेरे करियर की शुरुआत में, कूल-किड सिंड्रोम जिसका मैंने पहले उल्लेख किया था (जिसने मुझे "वेब स्टफ" से दूर रखा) ने भी मुझे विजुअल स्टूडियो से बहुत लंबे समय तक दूर रखा। मैं लिनक्स पर विम और जीडीबी के साथ बना रहा, तब भी जब मैंने जिस कोड पर काम किया वह क्रॉस-प्लेटफॉर्म सी/सी ++ कोड था जिसे विंडोज़ पर विजुअल स्टूडियो में आसानी से संभाला जा सकता था। यह सब, सिर्फ इसलिए कि कमांड-लाइन नहीं, कुछ भी भंग करना अच्छा था। मैं इस विषय पर बहस शुरू नहीं करना चाहता, लेकिन इतना कहना काफी है कि कम से कम मुझे ऐसा लगा कि ऐसा करने से मैंने अनगिनत घंटे की उत्पादकता खो दी।
मैं यहां जो बड़ी बात कहने की कोशिश कर रहा हूं, वह यह है कि प्रतिस्पर्धी प्रौद्योगिकियां, यहां तक कि क्लाउड में भी, आपको समान चीजें करने की अनुमति देती हैं। ऐसे कई परिदृश्य हैं जिनमें VMs, कंटेनर या सर्वर रहित समान आउटपुट प्रदान करेंगे। हालांकि, सर्वर रहित शायद एकमात्र ऐसा होगा जो डेवलपर की मुद्रा पर केंद्रित अनुभव प्रदान करके डेवलपर उत्पादकता को अनुकूलित करता है - वर्चुअल मशीन, कंटेनर, ऑर्केस्ट्रेटर या इंस्टेंस नहीं, बल्कि कोड। विजुअल स्टूडियो जैसे विश्व स्तरीय आईडीई द्वारा उत्पादक रूप से हैंडलिंग कोड (यहां तक कि क्लाउड के लिए कोड भी) की समस्या को हल किया गया है।
क्या सर्वर रहित रामबाण है? नहीं। क्या इसमें कोई समस्या है? ज़रूर। हम सभी ने कोल्ड-स्टार्ट, राज्य की कमी, अवधि की सीमा, स्मृति आदि के बारे में सुना है। क्या ये डील-ब्रेकर हैं? ज्यादातर मामलों में, नहीं। उत्पादकता लाभ पहले से ही इन मुद्दों से आगे निकल जाते हैं। क्या ये समस्याएं दुर्गम हैं? बिल्कुल भी नहीं। क्लाउड विक्रेताओं ने इस तकनीक में पर्याप्त योग्यता और वादा देखा है ताकि इन मुद्दों को जल्द ही ठीक करने के लिए पर्याप्त रूप से प्रेरित किया जा सके।
संक्षेप में, सर्वर रहित एक महान उपकरण प्रस्तुत करता है जो सभी डेवलपर्स को अपने टूलबॉक्स में रखने की आवश्यकता होती है।