Uncloud - Kubernetes की जटिलता के बिना सर्वरों के बीच container apps deploy करने का टूल
(uncloud.run)- Uncloud एक open source टूल है जो Kubernetes के बिना भी कई सर्वरों पर containerized web applications को deploy और scale कर सकता है
- Docker Compose-आधारित workflow को बनाए रखते हुए, यह zero-downtime deployment, automatic HTTPS, और server-to-server scaling को support करता है
- केंद्रीय control plane के बिना, हर मशीन WireGuard-आधारित P2P network से जुड़ी रहती है, इसलिए कुछ सर्वर offline होने पर भी cluster चलता रहता है
- Caddy reverse proxy के जरिए automatic HTTPS, built-in DNS-आधारित service discovery, और load balancing features शामिल हैं
- cloud और on-premise mixed environments में भी एक ही तरीके से deployment संभव है, जिससे infrastructure control और cost predictability मिलती है
PaaS-जैसा workflow
- Heroku या Fly.io जैसी आसान deployment experience देते हुए भी servers और data पर पूरा control बनाए रखता है
- request-based billing की जगह predictable cost structure
- vendor lock-in नहीं, standard SSH tools से debugging संभव
- Docker Compose-friendly structure के साथ build, push, और deploy एक ही command में किए जा सकते हैं
- image registry की जरूरत नहीं, zero-downtime rolling deployment support
- कई machines पर replica scaling संभव
कम-maintenance डिज़ाइन
- control plane या quorum management की जरूरत नहीं, जिससे management complexity कम रहती है
- ports खोले बिना सुरक्षित machine-to-machine communication support
- automatic service discovery और Let's Encrypt-आधारित HTTPS automatic issuance built-in है
यह कैसे काम करता है
- जटिल cluster की जगह सरल machine network से बना है, जो maintenance burden बढ़ाए बिना stable infrastructure देता है
- हर मशीन WireGuard mesh network में शामिल होती है और automatic peer discovery तथा NAT traversal करती है
- containers को unique IP मिलता है, जिससे सर्वरों के बीच direct communication संभव होता है
- पूरी तरह distributed architecture में, बिना किसी केंद्रीय control node के हर मशीन cluster state को sync करती है
- कुछ machines offline होने पर भी cluster operation जारी रहता है
- Docker-जैसी CLI से पूरे infrastructure को control किया जा सकता है
- सिर्फ एक machine पर SSH access से deployment, monitoring, और scaling किया जा सकता है
मुख्य फीचर्स
- कहीं भी deploy करें: cloud VM, dedicated server, on-premise सहित सभी Linux machines support
- automatic HTTPS: built-in Caddy reverse proxy के साथ बिना configuration के TLS certificate issuance और HTTPS enablement
- load balancing: कई machines में फैले container replicas के बीच traffic distribution
- service discovery: built-in DNS network के भीतर services की location को अपने-आप track करता है
- Infrastructure as Code: मौजूदा Docker Compose files से पूरे app stack को define किया जा सकता है
- vendor lock-in नहीं: cloud और अपने hardware को स्वतंत्र रूप से mix and match किया जा सकता है
1 टिप्पणियां
Hacker News राय
नमस्ते, मैं इसका निर्माता हूँ। शेयर करने के लिए धन्यवाद
Uncloud एक control plane-रहित container orchestrator है। आसान शब्दों में, यह कई मशीनों पर फैला हुआ Docker Compose है, जिसमें automatic WireGuard mesh, service discovery, और Caddy के जरिए HTTPS जुड़ा हुआ है। हर मशीन Fly.io के Corrosion का उपयोग करके cluster state को p2p sync करती है, इसलिए quorum बनाए रखने की ज़रूरत नहीं होती
Kubernetes को startup और unicorn, दोनों तरह की कंपनियों में चलाने के अनुभव के बाद मुझे लगा कि ज़्यादातर टीमों को वास्तव में बस कुछ मशीनों पर containers ठीक से चलाने हैं, साथ में networking, rollout, और HTTPS चाहिए। इसके मुकाबले K8s का operational overhead बहुत ज़्यादा है
मुख्य विशेषताएँ इस प्रकार हैं
प्रोजेक्ट लिंक: https://github.com/psviderski/uncloud
uc machine initका अंदरूनी तौर पर root privileges के साथcurl | bashचलाना security risk लगता है। मैं इसे test करना चाहूँगा, लेकिन शायद असली मशीनों पर नहीं चलाऊँगामैंने अपने करियर का ज़्यादातर हिस्सा Kubernetes के साथ बिताया है, इसलिए मैं जानना चाहता हूँ कि control plane-रहित architecture का फायदा क्या है। मेरे लिए तो control plane ही K8s की core functionality है।
सैकड़ों nodes और लगभग दस हज़ार containers तक managed clusters में auto-update के साथ संभाले जा सकते हैं, इसलिए यह बहुत बड़ा बोझ नहीं लगता। क्या लोगों द्वारा K8s को self-host करने में होने वाली तकलीफ़ ही ऐसे alternatives की पृष्ठभूमि है?
नेटवर्क partition होने पर भी हर partition स्वतंत्र रूप से काम कर सकता है। यह पुराने Chef या Ansible वाले दौर की सादगी में K8s से सीखे गए सबक जोड़ने जैसा है
प्रोजेक्ट शानदार है। मैं बाद में इसे ज़रूर इस्तेमाल करके देखूँगा।
अगर आप कोई और सरल alternative ढूँढ रहे हैं, तो Kamal भी अच्छा है। इसे ऐसी कंपनी खुद चलाती है जो K8s और cloud को पूरी तरह छोड़ चुकी है, और यह production-proven tool है
क्या इसमें servers specify करने पर server hardening अपने-आप करने की कोई सुविधा है?
मैं Docker Swarm user हूँ। Uncloud पहला alternative है जो सच में दिलचस्प लगा
मेरे सवाल इस प्रकार हैं
x-ports: app.example.com:8000/httpsके रूप में define किया जाता है।या
x-caddy: Caddyfileके साथ Caddy config को customize किया जा सकता है। ज़्यादा जानकारी के लिए official docs देखेंअभी stacks के बीच network isolation feature नहीं है। इस पर चर्चा GitHub Discussion #94 में चल रही है।
मैं जानना चाहता हूँ कि आप किस तरह के behavior की उम्मीद कर रहे हैं
सवाल 2 और 3 के जवाब हैं “अभी नहीं” और “फ़िलहाल हाँ”। संबंधित चर्चा के लिए Discussion #94 देखें
Swarm इस्तेमाल करने के आपके अनुभव से, मैं जानना चाहता हूँ कि Swarm में कौन-सी कमियाँ या असुविधाएँ थीं जिन्हें Uncloud बेहतर कर सकता है
यह सच में शानदार प्रोजेक्ट है। इस विषय के कुछ और tools भी देखने लायक हैं
अगर आपको और पता हों तो जोड़ें
मैंने हाल ही में Coolify इस्तेमाल किया, लेकिन वह थोड़ा अधूरा लगा। अभी मैं Dokku इस्तेमाल कर रहा हूँ, मगर DB management के लिए UI और बेहतर होना चाहिए
मैं k3s से संतुष्ट हूँ, लेकिन Docker Compose और पूरे K8s के बीच के मिडिल ग्राउंड में नए प्रयोग देखना अच्छा लगता है। खासकर WireGuard integration दिलचस्प है
यह वाकई शानदार tool है। मेहनत के लिए धन्यवाद।
मैं जानना चाहता हूँ कि backend में state replication कैसे काम करता है। आपने CRDT और gossip protocol का ज़िक्र किया, लेकिन ठोस implementation अभी स्पष्ट नहीं है
अगर K8s नहीं, तो फिर Nomad क्यों नहीं?
यानी self-hosting के अलावा उसका उपयोग सीमित है, और व्यवहार में मुक्त रूप से service बनाकर देना संभव नहीं है। पूरा license देखें
संदर्भ के लिए, मैं दो दिलचस्प p2p components साझा कर रहा हूँ