Uncloud - Alat untuk Menerapkan Aplikasi Kontainer antar Server tanpa Kerumitan Kubernetes
(uncloud.run)- Uncloud adalah alat open-source yang memungkinkan Anda menerapkan dan menskalakan aplikasi web yang dikontainerisasi di beberapa server tanpa Kubernetes
- Tetap mempertahankan workflow berbasis Docker Compose, sambil mendukung deployment tanpa downtime, HTTPS otomatis, dan scaling antar server
- Tanpa control plane terpusat, tiap mesin terhubung melalui jaringan P2P berbasis WireGuard, sehingga operasional cluster tetap berjalan meski sebagian server offline
- Menyertakan HTTPS otomatis melalui reverse proxy Caddy, service discovery berbasis DNS bawaan, dan fitur load balancing
- Dapat diterapkan dengan cara yang sama bahkan di lingkungan hybrid cloud dan on-premise, sehingga kontrol atas infrastruktur dan prediktabilitas biaya tetap terjaga
Workflow mirip PaaS
- Memberikan pengalaman deployment sederhana seperti Heroku atau Fly.io, sambil tetap mempertahankan kontrol penuh atas server dan data
- Struktur biaya yang dapat diprediksi, bukan penagihan per permintaan
- Tanpa vendor lock-in, dan debugging bisa dilakukan dengan alat SSH standar
- Dengan struktur yang ramah Docker Compose, build, push, dan deploy dapat dilakukan dengan satu perintah
- Tidak memerlukan image registry, serta mendukung rolling deployment tanpa downtime
- Mendukung scaling replikasi di beberapa mesin
Desain dengan perawatan rendah
- Tidak memerlukan control plane atau pengelolaan quorum, sehingga kompleksitas administrasi diminimalkan
- Mendukung komunikasi aman antar mesin tanpa membuka port
- Dilengkapi service discovery otomatis dan penerbitan HTTPS otomatis berbasis Let's Encrypt
Cara kerjanya
- Dibangun sebagai jaringan mesin yang sederhana alih-alih cluster yang kompleks, memberikan infrastruktur yang stabil tanpa beban pemeliharaan tinggi
- Tiap mesin berpartisipasi dalam jaringan mesh WireGuard untuk melakukan peer discovery otomatis dan NAT traversal
- Kontainer mendapatkan IP unik sehingga dapat berkomunikasi langsung antar server
- Dengan arsitektur sepenuhnya terdistribusi, tiap mesin menyinkronkan status cluster tanpa node kontrol terpusat
- Operasional cluster tetap berlanjut meski sebagian mesin offline
- Mengendalikan seluruh infrastruktur dengan CLI mirip Docker
- Deployment, monitoring, dan scaling dapat dilakukan hanya dengan akses SSH ke satu mesin
Fitur utama
- Dapat diterapkan di mana saja: mendukung semua mesin Linux seperti VM cloud, server dedicated, dan on-premise
- HTTPS otomatis: penerbitan sertifikat TLS tanpa konfigurasi dan aktivasi HTTPS melalui reverse proxy Caddy bawaan
- Load balancing: mendistribusikan trafik di antara replika kontainer yang tersebar di beberapa mesin
- Service discovery: DNS bawaan secara otomatis melacak lokasi layanan di dalam jaringan
- Infrastructure as Code: seluruh stack aplikasi dapat didefinisikan menggunakan file Docker Compose yang sudah ada
- Tanpa vendor lock-in: bebas menggabungkan cloud dan perangkat keras sendiri
1 komentar
Opini Hacker News
Halo, saya pembuatnya. Terima kasih sudah membagikannya.
Uncloud adalah orkestrator kontainer tanpa control plane. Sederhananya, ini seperti Docker Compose lintas beberapa mesin yang dilengkapi mesh WireGuard otomatis, service discovery, dan HTTPS melalui Caddy. Setiap mesin melakukan sinkronisasi p2p status klaster menggunakan Corrosion dari Fly.io, sehingga tidak perlu menjaga quorum.
Setelah mengoperasikan Kubernetes baik di startup maupun perusahaan unicorn, saya menyadari bahwa kebanyakan tim sebenarnya hanya butuh menjalankan kontainer dengan baik di beberapa mesin, plus networking, rollout, dan HTTPS. Dibanding kebutuhan itu, overhead operasional K8s terlalu besar.
Fitur utamanya sebagai berikut
Tautan proyek: https://github.com/psviderski/uncloud
uc machine initsecara internal menjalankancurl | bashdengan hak root terlihat berisiko secara keamanan. Saya ingin mencobanya untuk testing, tetapi sepertinya tidak akan menjalankannya di mesin sungguhan.Saya menghabiskan sebagian besar karier saya dengan Kubernetes, jadi saya penasaran apa keuntungan struktur tanpa control plane. Bagi saya, control plane justru adalah fitur inti K8s.
Ratusan node dan sekitar puluhan ribu kontainer tidak terlalu membebani karena klaster terkelola bisa diperbarui otomatis. Saya penasaran apakah penderitaan orang-orang saat self-hosting K8s sendiri menjadi latar belakang munculnya alternatif seperti ini.
Bahkan jika jaringan terbelah, tiap partisi tetap bisa berjalan mandiri. Ini seperti kesederhanaan era Chef atau Ansible yang dipadukan dengan pelajaran dari K8s.
Proyeknya keren. Saya pasti akan mencobanya nanti.
Kalau mencari alternatif yang lebih sederhana, Kamal juga bagus. Ini adalah tool yang benar-benar dijalankan sendiri oleh perusahaan yang sepenuhnya keluar dari K8s dan cloud, dan sudah terbukti di produksi.
Saya penasaran apakah ada fitur yang otomatis melakukan server hardening setelah server ditentukan.
Saya pengguna Docker Swarm. Uncloud adalah alternatif pertama yang benar-benar terasa menarik bagi saya.
Hal yang saya penasaran adalah sebagai berikut
x-ports: app.example.com:8000/https.Atau Anda bisa mengustomisasi konfigurasi Caddy dengan
x-caddy: Caddyfile. Lihat dokumentasi resmi untuk detailnya.Saat ini belum ada fitur isolasi jaringan antar-stack. Diskusi terkait sedang berlangsung di GitHub Discussion #94.
Saya penasaran perilaku seperti apa yang Anda harapkan.
Jawaban untuk pertanyaan 2 dan 3 adalah “belum”, dan “saat ini ya”. Lihat Discussion #94 untuk diskusi terkait.
Sebagai pengguna Swarm, saya penasaran bagian mana yang terasa kurang atau merepotkan di Swarm dan bisa diperbaiki oleh Uncloud.
Ini benar-benar proyek yang keren. Tool lain dengan tema serupa juga layak dilihat
Kalau tahu yang lain, saya harap bisa ditambahkan.
Saya baru-baru ini mencoba Coolify, tetapi terasa agak belum matang. Saat ini saya memakai Dokku, namun saya berharap UI untuk pengelolaan database bisa lebih baik.
Saya puas dengan k3s, tetapi senang melihat ada upaya baru di wilayah tengah antara Docker Compose dan K8s penuh. Integrasi WireGuard khususnya terasa menarik.
Tool yang benar-benar keren. Terima kasih atas kerja kerasnya.
Saya penasaran bagaimana replikasi state di backend bekerja. Anda menyebut CRDT dan protokol gossip, tetapi implementasi spesifiknya masih terasa samar.
Jika bukan K8s, kenapa bukan Nomad?
Artinya, pemanfaatannya terbatas di luar self-hosting, dan pada dasarnya tidak memungkinkan diservis secara bebas. Lihat teks lisensi lengkap.
Sebagai referensi, saya membagikan dua komponen p2p yang menarik