सर्वर सेटअप और डिप्लॉय
टर्नकी प्रोडक्शन इंफ्रास्ट्रक्चर: सर्वर, कंटेनर, डोमेन, SSL और एक कमांड से डिप्लॉय। सर्वर और एक्सेस आपके रहते हैं — किसी और की होस्टिंग से बँधे बिना।
सेवा में क्या शामिल है
हम आपके प्रोजेक्ट के लिए प्रोडक्शन इंफ्रास्ट्रक्चर खड़ा करते हैं: आपका सर्वर (VPS या डेडिकेटेड) किराये पर लेते या सेट करते हैं, ऑपरेटिंग सिस्टम इंस्टॉल करते हैं, एप्लिकेशन को कंटेनरों में आइसोलेट करते हैं, डोमेन और SSL सर्टिफ़िकेट जोड़ते हैं और एक ऐसा डिप्लॉय पाइपलाइन बनाते हैं जिससे अपडेट एक ही कमांड से प्रोडक्शन में चला जाए। इसमें वेब सर्वर और रिवर्स प्रॉक्सी की सेटिंग, SSH-कीज़ के ज़रिए एक्सेस का बँटवारा, फ़ायरवॉल, सर्विसेज़ का ऑटो-स्टार्ट और बेसिक लॉग संग्रह शामिल है। अगर आपके पास पहले से कोई एप्लिकेशन है — साइट, बॉट, API — तो हम उसे कंटेनर में पैक करके बिना डाउनटाइम आपके सर्वर पर ले आते हैं। हम किसी और की होस्टिंग रीसेल नहीं करते और न ही आपको अपने ऊपर बैठाते हैं: सर्वर और डोमेन आपके नाम पर होते हैं, और डिलीवरी के बाद सारे एक्सेस पूरी तरह आपको सौंप दिए जाते हैं। नतीजे में आपको एक चलता-फिरता प्रोडक्शन मिलता है जो आपका अपना होता है, न कि किसी और के पैनल में जगह का किराया।
असल में डिप्लॉय कैसे काम करता है
सर्वर एक ऐसा कंप्यूटर है जिस पर ऑपरेटिंग सिस्टम चलता है, जो लगातार नेटवर्क सुनता रहता है और रिक्वेस्ट का जवाब देता है। OS के ऊपर हम एक रिवर्स प्रॉक्सी खड़ी करते हैं: यह पोर्ट 80 और 443 पर ट्रैफ़िक लेती है, SSL एन्क्रिप्शन को यहीं समाप्त करती है और रिक्वेस्ट को मशीन के भीतर सही एप्लिकेशन तक पहुँचाती है। एप्लिकेशन खुद हम कंटेनरों में चलाते हैं — आइसोलेटेड माहौल, जहाँ हर सर्विस की अपनी डिपेंडेंसीज़ होती हैं, और एक के गिरने से बाकी नहीं गिरते। डिप्लॉय एक पाइपलाइन की तरह बना होता है: आप या हम बदलाव रिपॉज़िटरी में भेजते हैं, सिस्टम ताज़ा इमेज बनाता है, जाँचें चलाता है और पुराने कंटेनर को नए से बदल देता है, बिना कनेक्शन तोड़े। अगर नई वर्ज़न ठीक व्यवहार न करे, तो रोलबैक का मतलब है सेकंडों में पिछली इमेज पर लौट जाना, न कि रात में मैन्युअल रूप से सर्वर दोबारा बनाना।
वेब सर्वर और कंटेनर कहाँ से आए
आधुनिक रिवर्स प्रॉक्सी और वेब सर्वर की पहचान बड़े पैमाने पर nginx से है, जिसे इंजीनियर इगोर सिसोयेव ने 4 अक्टूबर 2004 को सार्वजनिक रूप से जारी किया — यह C10k समस्या का जवाब था, यानी एक साथ दस हज़ार कनेक्शन संभालना, जो पिछली पीढ़ी के सर्वर नहीं कर पाते थे। कोड की वर्ज़न-मैनेजमेंट, जिसके बिना आधुनिक डिप्लॉय संभव नहीं, Git ने तय की: लीनस टोरवाल्ड्स ने 7 अप्रैल 2005 को पहला कमिट किया और लगभग दस दिनों में यह सिस्टम लिख डाला, जब Linux कर्नेल की प्रोप्राइटरी BitKeeper तक पहुँच खत्म हो गई थी। कंटेनराइज़ेशन को उसके मौजूदा रूप में Docker ने लोकप्रिय बनाया: सोलोमन हाइक्स ने मार्च 2013 में PyCon कॉन्फ़्रेंस में प्रोजेक्ट सार्वजनिक रूप से दिखाया और सोर्स कोड खोल दिया, जिससे कुछ ही वर्षों में कंटेनर एप्लिकेशन पैकिंग का इंडस्ट्री स्टैंडर्ड बन गए। ये तीन औज़ार — वेब सर्वर, वर्ज़न सिस्टम और कंटेनर — ही वह नींव हैं जिस पर हम इंफ्रास्ट्रक्चर खड़ा करते हैं।
सेटिंग की सटीकता क्यों अहम है
सर्वर एक प्रोग्रामेबल सिस्टम है, और नतीजा हार्डवेयर की मौजूदगी से नहीं, कॉन्फ़िगरेशन से तय होता है। एक्सेस राइट्स में एक लाइन, बाहर की ओर खुला डेटाबेस पोर्ट या एक्सपायर्ड SSL सर्टिफ़िकेट कोई कॉस्मेटिक खामी नहीं, बल्कि साइट का डाउनटाइम या डेटा लीक बन जाता है। जवाब की स्पीड, विज्ञापन कैंपेन के दिन लोड के तहत स्थिरता और अपडेट की पूर्वानुमेयता ठोस मानों में मापी जाती है, जो या तो नॉर्मल में होते हैं या नहीं — और हम पहले मापते हैं, फिर पैरामीटर बदलते हैं। सर्विस की ऑटोमैटिक हेल्थ-चेक और तुरंत रोलबैक की क्षमता ही इंजीनियरिंग डिप्लॉय को सीधे प्रोड पर जोखिम भरे बदलाव से अलग करती है। हम सर्वर की सेटिंग को कोड की तरह मानते हैं: कॉन्फ़िगरेशन वर्ज़न में रखी जाती है, अलग सर्किट पर टेस्ट होती है और उसके बाद ही प्रोडक्शन में जाती है।
हम किस स्टैक पर काम करते हैं
आधार — Linux ऑपरेटिंग सिस्टम और Docker पर कंटेनराइज़ेशन, ऑर्केस्ट्रेशन के लिए Docker Compose: यह एक ऐसा रिप्रोड्यूसिबल माहौल देता है जो टेस्ट और प्रोडक्शन दोनों में एक जैसा खड़ा होता है। आने वाला ट्रैफ़िक हम nginx के ज़रिए रिवर्स प्रॉक्सी के रूप में लाते हैं, जिसमें SSL सर्टिफ़िकेट का ऑटोमैटिक जारी होना और रिन्यू होना शामिल है। डिप्लॉय हम Git रिपॉज़िटरी से जुड़े पाइपलाइन पर बनाते हैं: ब्रांच में पुश इमेज बिल्ड, जाँच और कंटेनर रिप्लेसमेंट शुरू करता है। ज़रूरत पड़ने पर सुरक्षा और परिधि की तेज़ी के लिए Cloudflare जोड़ते हैं — बिना बाहरी खुले पोर्ट वाले टनल के रूप में, या साइट के आगे कैशिंग लेयर के रूप में। स्टैक ओपन और पोर्टेबल है: आप किसी एक सप्लायर से बँधे नहीं हैं, और इंफ्रास्ट्रक्चर का कोई भी हिस्सा कॉन्फ़िगरेशन के साथ किसी दूसरे ठेकेदार को सौंपा जा सकता है।
प्रमुख औज़ार कब आए
हमारे इंफ्रास्ट्रक्चर स्टैक के औज़ार दो दशकों में बने हैं। nginx, हमारा मुख्य वेब सर्वर और प्रॉक्सी, 4 अक्टूबर 2004 को सार्वजनिक हुआ। Git, जिस पर पूरा डिप्लॉय टिका है, लीनस टोरवाल्ड्स ने 7 अप्रैल 2005 को शुरू किया और कुछ ही दिनों में काम करने लायक बना दिया। Docker, जिसने कंटेनरों का आधुनिक फ़ॉर्मैट तय किया, सोलोमन हाइक्स ने मार्च 2013 में सैंटा क्लारा में PyCon पर पेश किया और उसका सोर्स कोड खोला। Kubernetes — बड़े क्लस्टरों के लिए कंटेनर ऑर्केस्ट्रेशन सिस्टम — को Google ने 6 जून 2014 को ओपन प्रोजेक्ट के रूप में घोषित किया, और इसी तारीख़ को इसका जन्मदिन माना जाता है। हम इन औज़ारों के मौजूदा वर्ज़न पर काम करते हैं और उनका विकास समझते हैं, न कि इंटरनेट से किसी रैंडम निर्देश के हिसाब से सर्वर जोड़ते हैं।
यह हम पर क्यों भरोसा किया जा सकता है
हमारी टीम का IT में कुल अनुभव 45 साल से ज़्यादा है, और इंफ्रास्ट्रक्चर हम सिद्धांत में नहीं, असली प्रोडक्शन में चलाते हैं: हमारी अपनी प्रोडक्शन सर्विसेज़ रिवर्स प्रॉक्सी के पीछे कंटेनरों में ऑटोमैटिक डिप्लॉय के साथ चलती हैं। हर सर्वर को हम एक इंजीनियरिंग सिस्टम की तरह सेट करते हैं — एक्सेस के बँटवारे, फ़ायरवॉल, हेल्थ-चेक और रोलबैक प्लान के साथ — और प्रोडक्शन लॉन्च से पहले कॉन्फ़िगरेशन को टेस्ट सर्किट पर चलाते हैं। हम सीमा ईमानदारी से रखते हैं: सर्वर, डोमेन और डेटा आपके नाम पर होते हैं, और हम सेटिंग के ज़िम्मेदार होते हैं और सारे एक्सेस पूरी तरह सौंप देते हैं, बिना अपने ऊपर निर्भरता बनाए। अगर इंफ्रास्ट्रक्चर में कुछ भरोसे को खोए बिना सरल या सस्ता किया जा सकता है, तो हम सीधे कहेंगे, न कि खर्च बढ़ाएँगे। नतीजे में आपको एक पूर्वानुमेय प्रोडक्शन मिलता है जिसे विकसित और सौंपा जा सकता है, न कि किसी और के पासवर्ड में बंद एक ब्लैक बॉक्स।
क्या शामिल है
हम कैसे काम करते हैं
आपके सर्वर पर चलता प्रोडक्शन, एक कमांड से अपडेट और तेज़ रोलबैक के साथ। कोई वेंडर-लॉक नहीं।
सवाल और जवाब
सर्वर हमारे नाम पर या आपके?+
आपके नाम — सर्वर, डोमेन और डेटा आपके, हम सेट करते हैं और सारे एक्सेस सौंप देते हैं।
मौजूदा प्रोजेक्ट ट्रांसफ़र करेंगे?+
हाँ, कंटेनर में पैक करके बिना डाउनटाइम आपके सर्वर पर ले आएँगे।
डिलीवरी के बाद अपडेट का क्या?+
डिप्लॉय ऐसा सेट करते हैं कि अपडेट एक कमांड से जाए और रोलबैक सेकंडों में हो।