नमस्ते।
मैंने एक Database-Driven Kubernetes Operator विकसित किया है, और सोचा कि जिन लोगों की इसमें रुचि हो सकती है, उनके लिए इसका परिचय दूँ।
Lynq एक ऐसा ऑपरेटर है जो उन डेटा का सीधे उपयोग करता है जिन्हें एप्लिकेशन पहले से DB में मैनेज कर रहा होता है, और Kubernetes resources को अपने-आप create/update/cleanup करता है।
(Lynq को "Link" की तरह पढ़ा जा सकता है, लेकिन यह Link से लिया गया है इसलिए हम इसका उच्चारण "लिंक" करते हैं।)
इसे बनाने की वजह अपेक्षाकृत सरल थी।
जब environment/tenant/node जैसी सारी जानकारी DB में हो,
तो जानकारी में थोड़ा-सा भी बदलाव होने पर उसे हर बार फिर से reflect करना बहुत समय लेने वाला और झंझट भरा था।
तब यह विचार आया:
“Git से मैनेज करने के लिए असल में सिर्फ एक दोहराया जाने वाला template ही काफी नहीं है क्या,
और बाकी चीजें provisioning के लिए उपयोग होने वाला data बदलते ही अपने-आप follow नहीं कर सकतीं?”
मैंने कई तरह से research की, लेकिन कोई संतोषजनक tool नहीं मिला।
मैं पहले से 5~6 साल से ज़्यादा समय से Helm और Terraform इस्तेमाल कर रहा था, लेकिन इनमें ये सीमाएँ थीं:
- DB में बदलाव पर तुरंत प्रतिक्रिया नहीं दे पाना,
- continuous reconcile model का न होना,
- और अंततः कई scripts और pipelines को खुद maintain करना पड़ना।
इसलिए मैंने इन्हीं requirements को पूरा करने वाले एक ऑपरेटर के रूप में Lynq बनाया।
इसके अलावा, Lynq को production में बिना किसी भ्रम के ऑपरेट किया जा सके, इसके लिए visualization और documentation पर भी काफी मेहनत की गई है।
उदाहरण के लिए, create/delete/conflict जैसी चीजों को आसानी से समझने में मदद करने वाले visualization नीचे दिए गए पेजों पर एक नज़र में देखे जा सकते हैं (Interactive):
=> Policies Docs
=> Dependency Visualizer
ऐसे उपयोग मामलों में यह खास तौर पर मददगार हो सकता है
- SaaS environment में customer/tenant configuration का ऑटोमैटिक निर्माण
- ऐसे systems जहाँ staging/preview environments बड़ी संख्या में बनाने और उनका lifecycle मैनेज करने की ज़रूरत हो
- ऐसी architecture जहाँ GitOps के बिना भी resources को तेज़ी से sync होना चाहिए
- वे teams जो DB-आधारित बड़े पैमाने की configuration ऑपरेट करती हैं
- ऐसे ढाँचे जहाँ कई branch/node/site configurations को templates के रूप में एकीकृत करके मैनेज करना हो
अगर आपके मन में यह विचार आए कि “इस तरीके से इसे ऐसी जगह भी इस्तेमाल किया जा सकता है”,
या आपने खुद ऐसी किसी समस्या का सामना किया हो, तो बेझिझक feedback दें — यह बहुत मददगार होगा।
धन्यवाद।
Quick Start डॉक्युमेंट का पालन करके आप इसे आसानी से लोकल environment में चला सकते हैं, और Helm से install भी कर सकते हैं।
इसके अलावा monitoring के लिए Prometheus Rule और Grafana Dashboard JSON भी उपलब्ध कराए जाते हैं।
- GitHub Repo: https://github.com/k8s-lynq/lynq
- Docs: https://lynq.sh/
2 टिप्पणियां
वाह, आपने documentation बहुत ही विस्तार से और खूबसूरती से बनाई है
धन्यवाद haha
ऐसे मिलते-जुलते टूल लगभग नहीं हैं और यह काफ़ी नया-सा लग सकता है, इसलिए मैं सबसे पहले इसे विज़ुअली समझने में मदद मिले इस पर ध्यान दे रहा हूँ।
अगर दस्तावेज़ देखते समय भी कुछ समझ न आए या कोई कॉन्सेप्ट उलझाने वाला लगे, तो कृपया बताइए कि किस हिस्से में सुधार करना अच्छा रहेगा!
अभी मैं live demo और E2E tests तैयार करके इसकी पूर्णता बढ़ा रहा हूँ, इसलिए कृपया आगे भी नज़र बनाए रखें।