क्या किसी ने इस्तेमाल कर रहे cloud को बदलकर देखा है?
(news.ycombinator.com)AWS, Azure, Google आदि cloud के बीच माइग्रेट करने के कारणों और अनुभवों पर HN के सवाल-जवाब
- मैंने अपने client के environment को AWS → Google, और फिर Google → Hetzner में zero downtime के साथ migrate किया
- मुख्य वजह कीमत थी। AWS/Google के free credits खत्म होने के बाद Hetzner पर गए
- credits का इस्तेमाल करके बचाई गई लागत migration cost की 20 गुना थी
- migration के दौरान हर environment में reverse proxy से backend को जोड़ने के बाद, services के बीच VPN सेट किया और फिर DNS बदला
- सबसे पेचीदा हिस्सा database failover था, और master switch के बाद updates दोबारा retry हों यह सुनिश्चित करना था
- इसके जरिए client के पास ऐसा setup आ गया जो किसी एक cloud provider पर निर्भर नहीं था, और उन्होंने अपने free credits का अच्छी तरह उपयोग किया
- तकनीकी विवरण
- haproxy, nginx जैसे reverse proxy + Hashicorp Consul + ngx_mruby
- हर cloud के बीच VPN बनाकर reverse proxy को दोनों तरफ के backend तक पहुँचने लायक किया
- नए cloud में database replication
- app इस बात का चुनाव कर सके कि कौन-सा database master होगा (Consul)
- app database errors को gracefully handle कर सके। यही हिस्सा सबसे मुश्किल था
- DNS TTL कम सेट करना
- नए backend को reverse proxy से जोड़ना और देखना कि कोई error नहीं है
- DNS update करके नए reverse proxy को environment में जोड़ना
- नए cloud में मौजूद replica को master के रूप में promote करना
- पुराने backend पर मौजूद connections को कम करना
- अंत में पुराने reverse proxy को DNS से हटाना
- सब कुछ verify करने के बाद पुराने environment को हटाना और DNS TTL को वापस restore करना
- GitLab पहले AWS से Azure गया, फिर वापस Google Cloud पर गया (कुछ साल पहले)
- शुरुआत में सबकी तरह AWS से शुरू किया, लेकिन खर्च बहुत ज़्यादा था (इसे literally money burn करना कहा गया)
- YC members को Azure credits मिलते थे, यह देखकर हिसाब लगाया तो लगभग 1 साल के usage जितना लगा, इसलिए migrate किया
- लेकिन migration दर्दनाक था, और Azure इस्तेमाल करने के दौरान कोई भी संतुष्ट नहीं था। ऊपर से free credits भी काफ़ी जल्दी खत्म हो गए
- GCP पर जाने की सटीक वजह याद नहीं, लेकिन यह बहुत समय लेने वाली और काफ़ी कठिन प्रक्रिया थी
- GCP का अनुभव कहीं बेहतर था, लेकिन उसे perfect भी नहीं कहा जा सकता
- खास तौर पर GCP बिना किसी स्पष्ट कारण के VM को random तरीके से बंद कर देता था
- कभी-कभी clean shutdown होता था, लेकिन दूसरे मामलों में किसी तरह की half-state में खत्म हो जाता था, जिससे दूसरे systems तुरंत error देने के बजाय connection करने की कोशिश करते रहते और timeout हो जाता
- याद है कि समय के साथ यह बेहतर हुआ, लेकिन फिर भी यह बहुत Google-जैसा लगा: "कुछ टूट गया है, लेकिन हम आपको वजह नहीं बता सकते।"
- पीछे मुड़कर देखें तो, अगर फिर से कंपनी शुरू करनी हो तो शायद Hetzner या किसी दूसरे सस्ते bare-metal provider पर टिके रहेंगे
- cloud services का पूरा फ़ायदा उठाया जाए तो वे शानदार हैं, लेकिन 90% मामलों में लोग बिना खास लाभ के उन्हें बस इस्तेमाल कर रहे होते हैं और सिर्फ़ ज़्यादा पैसा दे रहे होते हैं
- Google Cloud → Digital Ocean → OVH
- high-performance server पर अपनी चीज़ें चलाना सोचने से कम समस्याग्रस्त और आसान है
git pushसे deploy करना और containers build करना लगभग "Set it and forget it" जैसा है- हमारे पास terabyte आकार का PostgreSQL data है, इसलिए ज़्यादातर cloud पर यह बेहद महँगा पड़ता है
- कुछ लोग cloud को ऐसे bread की तरह मानते हैं जो खाने के लिए पहले से कटा हुआ हो, लेकिन यह वास्तव में developer का समय कम नहीं करता
- cloud, server operations की तुलना में ज़्यादा महँगा और काफ़ी धीमा है। medium-scale workload में cloud इस्तेमाल करने का कोई खास फ़ायदा नहीं है
मैंने सिर्फ़ सबसे ज़्यादा vote पाए 3 जवाब चुने हैं। ऊपर के जवाबों पर अलग-अलग सवाल, राय और प्रतिवाद वाले comments भी हैं, इसलिए उन्हें भी साथ में देखें।
5 टिप्पणियां
इस थ्रेड को खास तौर पर निशाना बनाकर, यह कहते हुए कि अब भी cloud की समझ की कमी व्यापक है, ITWorld में एक आलोचनात्मक लेख प्रकाशित हुआ है.
'क्रेडिट के लालच में' cloud migration…"सबसे बड़ा भ्रम"
ITWorld का लेख लिखने वाले Matt Asay हाल ही तक AWS में developer marketing head थे—यह बात ध्यान में रखकर पढ़ना चाहिए.
https://www.linkedin.com/in/mjasay/details/experience/
ओहो, अच्छी जानकारी के लिए धन्यवाद।
क्लाउड कोई सर्वगुणसंपन्न चीज़ नहीं है। तीसरे जवाब का आख़िरी वाक्य थोड़ा संदेहास्पद लगता है। शायद यह इस बात पर निर्भर करता है कि इसका इस्तेमाल कैसे किया जाता है..
यह सवाल cloud के बीच migration के बारे में था, लेकिन बहुत से लोग cloud की बजाय Hetzner जैसी hosting services की सिफारिश कर रहे हैं.
शायद इसकी सबसे बड़ी वजह cost ही है, लेकिन फिर भी मेरा मानना है कि cloud को सही तरीके से इस्तेमाल करने के अपने काफी फायदे हैं.
अगर कोई छोटी company कहे कि हम cloud नहीं, hosting इस्तेमाल करते हैं!, तो developers hire करना भी मुश्किल हो जाता है. (अगर आप खुद development कर रहे हैं, तो अलग बात है.)
बीच में जो बात आई कि Google Cloud कभी-कभी बिना किसी स्पष्ट वजह के VM को randomly terminate कर देता था, उससे मैं पूरी तरह सहमत हूँ.
मैंने भी कुछ साल पहले एक छोटा server Google पर चलाया था, फिर उसी वजह से उसे AWS LightSail पर migrate किया.
कभी-कभी ऐसा होता था कि किसी दिन बिना वजह server अचानक बंद हो जाए या access ही न हो. अब शायद स्थिति बेहतर हो गई हो, लेकिन वह अच्छा अनुभव नहीं था.