मुख्य सामग्री पर जाएं
The cluster's nodes and workloads in the console

एक नोड क्लस्टर बन गया, और किसी ऐप्लिकेशन को बदलना नहीं पड़ा

Webanion brand logoWebanionDevOps इंजीनियरिंगजुल 13, 2026 - सित 22, 2026३ महीने

कभी भी बंद हो सकने वाली एक दूसरी मशीन किसी ऐप्लिकेशन को बदले बिना एक चलते हुए सिंगल-नोड क्लस्टर से जुड़ी। हमेशा चालू रहने वाला एक सर्वर कंट्रोल प्लेन, हर डेटाबेस और वॉल्यूम और हर सर्विस की पहली कॉपी रखता है; बिल्ड मशीन एक taint के पीछे बिल्ड और स्टेटलेस सर्विसों की दूसरी कॉपियाँ संभालती है, और उसके सोते समय वे कॉपियाँ वापस लौटने के बजाय इंतज़ार करती हैं। काम खत्म होने पर वह खुद बंद हो जाती है और कोई जॉब कतार में आने पर लौट आती है, एक कंसोल हर नोड, वर्कलोड और उपलब्धता की अवधि दिखाता है, और हमेशा चालू सर्वर की हर CPU request मापी गई, जिससे उसके रिज़र्वेशन आवंटन योग्य क्षमता के 84 से घटकर 56 प्रतिशत पर आ गए।

KubernetesTraefikLinuxsystemdGoGrafanaVictoriaMetricsGitHub Actions
Md Moniruzzaman Image

Md Moniruzzaman

पूरी कहानी

चलते हुए सिस्टम में बिना माइग्रेशन के क्षमता कैसे जोड़ी गई, और यह इंफ्रास्ट्रक्चर किराये पर लेने के बजाय खुद चलाने के बारे में क्या साबित करता है।

एक मशीन सब कुछ करती थी, और उसके रिज़र्वेशन खत्म हो गए

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

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

उलटी ज़िम्मेदारियों वाली मशीनें

एक सर्वर कभी बंद नहीं होता और उस पर कंट्रोल प्लेन, हर डेटाबेस और वॉल्यूम, रजिस्ट्री और हर सर्विस की पहली कॉपी रहती है। बिल्ड मशीन किसी भी पल बंद हो सकती है, और चालू रहते हुए बिल्ड और दूसरी कॉपियाँ संभालती है। एक रोल लेबल और एक taint तय करते हैं कि क्या कहाँ जा सकता है, और जब तक कोई चीज़ खुद न माँगे, बिल्ड मशीन पर कुछ नहीं जाता।

Brand colour backdrop
Drawn placement diagram: the always-on server holds the control plane, every database and volume, the registries and the first copy of each service; the tainted build machine takes the runners and second copies, which wait rather than fall back

हर नोड की हालत एक स्क्रीन पर, सोने वाले नोडों समेत

कंसोल का Estate व्यू हर नोड को एक कार्ड देता है: उसका रोल, उसके वर्कलोड ने जितना माँगा है बनाम जितना वे इस्तेमाल करते हैं, वह कितने pod चला रहा है, और पिछले एक दिन या एक हफ़्ते की उपलब्धता की पट्टी, जिसमें Ready और Away की हर अवधि दर्ज है। ये कार्ड जानबूझकर एक-दूसरे के उलट दिखते हैं। कैप्चर वाले दिन हमेशा चालू सर्वर पिछले पूरे सात दिन Ready रहा था, और बिल्ड मशीन उनमें से 37 प्रतिशत समय, 30 दर्ज बदलावों के साथ, क्योंकि जब भी काम नहीं होता वह सो जाती है।

उम्मीद नहीं, रोल और एक taint ही वर्कलोड को उनकी सही जगह पर रखते हैं। हमेशा चालू सर्वर पर उसका रोल है और कोई taint नहीं, इसलिए सामान्य वर्कलोड वहीं जाते हैं। बिल्ड मशीन पर एक taint है जो हर उस pod को लौटा देता है जिसने यह घोषित नहीं किया कि वह गायब हो सकने वाले नोड पर भी रह सकता है, इसलिए गलती से वहाँ कुछ नहीं पहुँचता, और जो वर्कलोड डिस्क पर डेटा रखते हैं वे उसी सर्वर पर पिन हैं जिसमें वह डिस्क लगी है।

Brand colour backdrop
The estate view's Nodes tab: the tabs for nodes, workloads, pods, volumes, edge, schedules, registry and namespaces, and one card per node with its role, CPU and memory requested against in use, pods, and a seven day availability strip
The build machine's availability over seven days: thirty-seven percent ready, thirty changes recorded, and its latest Ready and Away spans with their times

गलत नोड पर कुछ नहीं जाता, और किसी को नोड का इंतज़ार नहीं करना पड़ता

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

एज को ऐसे नोड के लिए ट्यून किया गया है जो बिना बताए गायब हो जाता है। बिजली खो चुकी मशीन पर चल रही कॉपी कनेक्शन ठुकराती नहीं, बस जवाब देना बंद कर देती है, इसलिए राउटर आधे मिनट के बजाय कुछ ही सेकंड में उसे छोड़ देता है और एक बार फिर कोशिश करता है, सिर्फ़ पेज रिक्वेस्ट पर, और विज़िटर को घूमते लोडर के बजाय पेज बस थोड़ी देर से मिलता है। 22 सितंबर को आठ सर्विसों की दूसरी कॉपी थी, जिनमें वेबसाइट और पब्लिक MCP सर्वर भी थे; डेटाबेस, CMS और हर बैकएंड हमेशा चालू सर्वर पर एक ही कॉपी में रहते हैं। कैप्चर दोनों हालतें दिखाते हैं: बिल्ड मशीन के सोते समय रुकी हुई कॉपियाँ, और उसके चालू रहते हुए हर नोड से सेवा पाते वेबसाइट और MCP सर्वर।

Brand colour backdrop
The Workloads tab while the build machine was away: the website and the public MCP server served by one copy on the always-on server, their second copies parked, the CMS, the console and the databases pinned, and each row with its run, version and place
Recent deploys with where each image serves: the public MCP server and the website each on the always-on server and, as a second copy, on the build machine

काम आने तक सोने वाली क्षमता

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

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

Brand colour backdrop
The Hosts view: the build machine's live readings, CPU load with a day of history, memory, disk, temperature and its build cache against the cap, with the always-on server's card below
The Hosts view on a phone while the build machine is away: its last readings stay on screen, marked two hours old, with the always-on server's card starting below

रिक्वेस्ट ही सबसे कम पड़ने वाला संसाधन थे, इसलिए हर एक मापी गई

हमेशा चालू सर्वर की हर रिक्वेस्ट को तीस-तीस सेकंड के अंतर पर लिए गए चालीस नमूनों पर मापा गया और हर वर्कलोड के शिखर में थोड़ी गुंजाइश जोड़कर तय किया गया। सर्वर अपने वर्कलोड के असली इस्तेमाल का लगभग नौ गुना रिज़र्व कर रहा था; इसके बाद उसके रिज़र्वेशन आवंटन योग्य क्षमता के 84 से घटकर 56 प्रतिशत पर आ गए, जिससे बिना किसी और मशीन के अगली सर्विस के लिए जगह बन गई।

Brand colour backdrop
Drawn chart of the always-on server's CPU as shares of what it can allocate: eighty-four reserved before the measuring pass, fifty-six after, and about ten used by its workloads, measured on 19 September 2026
The always-on server's card on the capture day: CPU and memory requested against what is in use, and its pods

अगली मशीन एक रोल है, कोई प्रोजेक्ट नहीं

इस पूरे रास्ते में कोई ऐप्लिकेशन नहीं बदला। प्लेसमेंट एक रोल लेबल, एक taint, affinity और हर सर्विस के अपने overlay में रहता है, इसलिए सर्विसों को कभी पता ही नहीं चला कि मशीनें कितनी हैं। यही अगले कदम को रोज़मर्रा का काम बनाता है: अगली मशीन एक रोल और बिल्ड रनर का एक हिस्सा पाकर जुड़ जाती है, कोई सर्विस अपनी ही रिपॉज़िटरी से दूसरी कॉपी चुनती है, और इसी पैटर्न पर बना कोई और क्लस्टर नए डिज़ाइन की ज़रूरत के बिना वही कदम दोहराता है। यह दोनों दिशाओं में बढ़ और घट सकता है, क्योंकि बिल्ड मशीन बंद करने से कुछ नहीं खोता और किसी drain की ज़रूरत नहीं पड़ती; बस अतिरिक्त रफ़्तार चली जाती है।

सीमा पहले से बताई गई है, बाद में खोजी नहीं जाती: बिल्ड के बीच बिजली कटे तो वह बिल्ड फ़ेल होता है, और उसे फिर से चलाया जाता है। यह ऐसे व्यवसाय के लिए सही है जिसके पास अपना हार्डवेयर है और जिसे बिना माइग्रेशन के ज़्यादा क्षमता चाहिए, और यह उस सवाल का जवाब देता है जो कोई CTO इंफ्रास्ट्रक्चर सौंपने से पहले पूछता है: क्या सामने वाला व्यक्ति इसके लिए कोड लिखने के साथ-साथ इसे चला भी सकता है। इसके नीचे का प्लेटफ़ॉर्म स्टूडियो चलाने वाले सेल्फ़-होस्टेड होमलैब की कहानी है, और डिलीवरी के लिए बिल्ड मशीन ने क्या किया, यह होस्टेड CI की जगह अपना रनर पूल लाने की कहानी है।

आपको ये भी पसंद आ सकते हैं

Webanion brand logo

जब होस्टेड CI सबसे धीमा कदम बन गया, तो बिल्ड घर लौट आए

बिल्ड और डिप्लॉय GitHub के होस्टेड रनर से, जहाँ हर रन नई मशीन पर शुरू होता था और रिलीज़ कतारों और गड़बड़ियों का इंतज़ार करती थीं, घर के एक रनर पूल पर आ गए: एक बिल्ड मशीन जो चालू रहते हुए हर जॉब लेती है, और हमेशा चालू सर्वर पर स्टैंडबाय रनर, एक ऐसे वॉचडॉग के पीछे जो शक होने पर शिपिंग जारी रखने की ओर झुकता है। इमेज एक प्राइवेट कंटेनर रजिस्ट्री में जाती हैं और स्टूडियो की लाइब्रेरी एक प्राइवेट npm रजिस्ट्री में, दोनों बिल्डिंग के अंदर, और हर रन GitHub की रिटेंशन से आगे तक संग्रह में रहता है। सबसे धीमा डिप्लॉय आठ मिनट चौबीस सेकंड से तीन मिनट पाँच सेकंड पर आ गया, और CI एक तिहाई तेज़ हो गया।

Md Moniruzzaman Image

Md Moniruzzaman

सित 24, 2026

27 Pearls App Logo

27 Pearls - मोबाइल रिलीज़ और स्टोर सबमिशन

एक तैयार 27 Pearls ऐप एक हफ़्ते के एंगेजमेंट के भीतर App Store और Google Play पर मंज़ूर लिस्टिंग बन गया, बिना किसी दौर की अस्वीकृति के। उस हफ़्ते में रिलीज़ बिल्ड और साइनिंग, छात्र के फ़ायदे को केंद्र में रखकर लिखी लिस्टिंग कॉपी, हर ज़रूरी डिवाइस साइज़ के स्क्रीनशॉट, ऐप जो डेटा लेता है उससे मेल खाती प्राइवेसी घोषणाएँ, और रिव्यूअर के लिए काम करता एक अकाउंट शामिल था। ऐप आज भी Google Play पर है।

Md Moniruzzaman Image

Md Moniruzzaman

मई 05, 2023

Dr. Kris Valenza
fully booked brand logo

Fully Booked - बिना डाउनटाइम सेल्फ होस्टेड Kubernetes पर माइग्रेशन

Fully Booked मैनेज्ड क्लाउड इंफ़्रास्ट्रक्चर पर चलता था, जिसका बिल हर महीने बढ़ता था और पूरे स्टैक का स्वामित्व किसी के पास नहीं था। हमने पूरे प्लेटफ़ॉर्म को सेल्फ होस्टेड Kubernetes क्लस्टर पर स्थानांतरित किया, उपयोगकर्ताओं के लिए एक मिनट का भी डाउनटाइम लाए बिना। कटओवर में DNS, इनग्रेस, डेटाबेस और रिलीज़ पाइपलाइन शामिल थे, इस तरह चरणबद्ध कि ट्रैफ़िक तभी हटाया गया जब हर परत नए क्लस्टर पर सिद्ध हो गई। उस सप्ताह ऐप इस्तेमाल करने वाले किसी को पता नहीं चला कि कुछ हुआ है, और यही उद्देश्य था। मासिक बिल अपना हार्डवेयर बन गया, और वही क्लस्टर अब प्लेटफ़ॉर्म की साप्ताहिक रिलीज़ संभालता है।

Md Moniruzzaman Image

Md Moniruzzaman

जून 23, 2026

+1
Dominic Dormer
Read the Md Moniruzzaman blog

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