23 puntos por GN⁺ 2025-12-06 | 1 comentarios | Compartir por WhatsApp
  • Uncloud es una herramienta de código abierto que permite desplegar y escalar aplicaciones web en contenedores en varios servidores sin Kubernetes
  • Mantiene un flujo de trabajo basado en Docker Compose y al mismo tiempo ofrece despliegues sin tiempo de inactividad, HTTPS automático y escalado entre servidores
  • Sin un plano de control central, cada máquina se conecta mediante una red P2P basada en WireGuard, por lo que el clúster puede seguir operando aunque algunos servidores estén fuera de línea
  • Incluye HTTPS automático mediante proxy inverso Caddy, descubrimiento de servicios basado en DNS integrado y balanceo de carga
  • También puede desplegarse del mismo modo en entornos híbridos de nube y on-premise, lo que permite mantener el control de la infraestructura y la previsibilidad de costos

Flujo de trabajo similar a un PaaS

  • Ofrece una experiencia de despliegue sencilla como Heroku o Fly.io, pero manteniendo el control total sobre los servidores y los datos
    • Estructura de costos predecible en lugar de cobro por solicitud
    • Sin dependencia de proveedor, con posibilidad de depurar usando herramientas SSH estándar
  • Con una arquitectura amigable con Docker Compose, permite compilar, hacer push y desplegar con un solo comando
    • No se necesita registro de imágenes y admite despliegues rolling sin tiempo de inactividad
    • Permite escalado por réplicas a través de múltiples máquinas

Diseño de bajo mantenimiento

  • No requiere plano de control ni gestión de quórum, minimizando la complejidad operativa
  • Permite comunicación segura entre máquinas sin abrir puertos
  • Integra descubrimiento automático de servicios y emisión automática de HTTPS basada en Let's Encrypt

Cómo funciona

  • En lugar de un clúster complejo, se compone de una red simple de máquinas, ofreciendo una infraestructura estable sin la carga del mantenimiento
  • Cada máquina participa en una red mesh de WireGuard, realizando descubrimiento automático de pares y NAT traversal
    • Los contenedores reciben una IP única y pueden comunicarse directamente entre servidores
  • Con una arquitectura totalmente distribuida, cada máquina sincroniza el estado del clúster sin necesidad de un nodo de control central
    • Aunque algunas máquinas estén fuera de línea, el clúster sigue funcionando
  • Controla toda la infraestructura con una CLI similar a Docker
    • Con acceso SSH a una sola máquina se pueden realizar despliegue, monitoreo y escalado

Funciones principales

  • Despliegue en cualquier lugar: compatible con cualquier máquina Linux, como VM en la nube, servidores dedicados u on-premise
  • HTTPS automático: el proxy inverso Caddy integrado emite certificados TLS sin configuración y habilita HTTPS
  • Balanceo de carga: distribuye el tráfico entre réplicas de contenedores repartidas en varias máquinas
  • Descubrimiento de servicios: el DNS integrado rastrea automáticamente la ubicación de los servicios dentro de la red
  • Infrastructure as Code: permite definir toda la pila de la aplicación con archivos Docker Compose existentes
  • Sin dependencia de proveedor: permite mezclar libremente nube y hardware propio

1 comentarios

 
GN⁺ 2025-12-06
Opinión de Hacker News
  • Hola, soy el creador. Gracias por compartirlo
    Uncloud es un orquestador de contenedores sin control plane. En pocas palabras, es como Docker Compose distribuido entre varias máquinas, con malla WireGuard automática, descubrimiento de servicios y HTTPS mediante Caddy. Cada máquina sincroniza el estado p2p del clúster usando Corrosion de Fly.io, así que no hace falta mantener quórum
    Después de operar Kubernetes tanto en startups como en unicornios, me di cuenta de que la mayoría de los equipos en realidad solo necesita correr bien contenedores en unas cuantas máquinas, con networking, rollouts y HTTPS. La sobrecarga operativa de K8s es demasiado grande para eso
    Las características principales son las siguientes

    • Usa la especificación familiar de Docker Compose, sin necesidad de aprender un DSL nuevo
    • Construye y hace push de imágenes Docker directamente a las máquinas sin registro externo (usando mi otro proyecto unregistry)
    • Ofrece un CLI imperativo en lugar de uno declarativo, lo que facilita el debugging
    • Puede conectar desde VMs en la nube y bare metal hasta Raspberry Pi detrás de NAT
    • Usa menos de 150 MB de memoria
      Enlace del proyecto: https://github.com/psviderski/uncloud
      • K8s ya puede correr contenedores bien incluso en entornos pequeños, así que no veo por qué usar otra cosa. Con despliegues ligeros como k3s, ponerlo en marcha también se volvió más fácil, así que no siento que haga falta una alternativa
      • La idea está buena, pero que uc machine init ejecute internamente curl | bash con privilegios de root me parece riesgoso en términos de seguridad. Me gustaría probarlo, pero no creo que lo correrá en máquinas reales
      • Está realmente interesante. Parece que pronto podría tener oportunidad de probarlo. Pero incluso viendo la documentación no me queda claro cómo incorporar a otro ingeniero después de configurar el clúster, ni cómo desplegar desde un runner de CI/CD. Me interesa saber cuál es el procedimiento para conectar una máquina nueva a un clúster existente
      • Me gustaría entender la diferencia frente a Kamal
      • Tengo curiosidad por cómo se hace una conexión segura a servicios externos como AWS RDS dentro de una red privada montada con WireGuard. Quisiera saber si soporta algo parecido al enfoque de acceso a AWS RDS de Tailscale
  • He pasado la mayor parte de mi carrera con Kubernetes, y tengo curiosidad por cuál sería la ventaja de una arquitectura sin control plane. Para mí, el control plane es justamente la función central de K8s.
    Manejar cientos de nodos y decenas de miles de contenedores no es una gran carga porque los clústeres administrados se actualizan solos. Me pregunto si el dolor de la gente al autohospedar K8s es el contexto del que salen alternativas como esta

    • “Cientos de nodos y diez mil contenedores” no me parece pequeño. Yo estoy en una escala de 2 a 5 nodos y de 10 a 30 contenedores, y para eso K8s es demasiado pesado. Creo que hay muchas empresas pequeñas en esa situación
    • No es una pregunta grosera. La ventaja de no tener control plane es que todo se simplifica en una arquitectura peer donde todas las máquinas son equivalentes. Al no haber un “cerebro del clúster” centralizado, no hace falta preocuparse por configuraciones HA ni por problemas de quórum en etcd.
      Incluso si la red se particiona, cada partición puede seguir funcionando de manera independiente. Es como recuperar la simplicidad de la época de Chef o Ansible, pero con las lecciones aprendidas de K8s
    • Claro que la gente intenta autohospedar K8s. Es como los respaldos: si no lo practicas antes, no podrás hacerlo cuando realmente lo necesites
    • Desde la perspectiva de una pyme, diez mil contenedores de ninguna manera son algo pequeño. Yo tengo menos de 10, pero necesito alta disponibilidad (HA). Uncloud parece encajar muy bien con mi caso
    • “¿Diez mil contenedores es poco? ¿Eso no es una cifra de jobs de CI? ;)”
  • El proyecto está muy bueno. Pienso probarlo más adelante.
    Si buscas una alternativa más simple, Kamal también está bien. Es una herramienta probada en producción y operada por una empresa que se salió por completo de K8s y de la nube

  • Me pregunto si hay alguna función que aplique automáticamente hardening del servidor cuando indicas los servidores

  • Soy usuario de Docker Swarm. Uncloud es la primera alternativa que de verdad me parece interesante
    Tengo las siguientes dudas

    • si planean soporte para secrets
    • si se pueden definir reglas de reescritura de URL con labels de contenedor, como en Swarm+Traefik
    • si al desplegar dos stacks de Compose es posible el acceso de red entre contenedores de stacks distintos
    • El mapeo entre dominio y puerto interno se define en el archivo Compose como x-ports: app.example.com:8000/https.
      O también se puede personalizar la configuración de Caddy con x-caddy: Caddyfile. Para más detalles, ver la documentación oficial
      Actualmente no existe una función de aislamiento de red entre stacks. La discusión relacionada sigue en GitHub Discussion #94.
      Me interesa saber qué comportamiento esperarías
    • La función de secrets se está siguiendo en el issue #75. Se pueden inyectar vía Compose config, pero todavía no hay almacenamiento cifrado.
      La respuesta a las preguntas 2 y 3 es “todavía no” y “por ahora sí”. La discusión relacionada está en Discussion #94
      Como alguien que ha usado Swarm, me da curiosidad saber qué cosas te parecieron insuficientes o incómodas en Swarm que Uncloud podría mejorar
  • Es un proyecto realmente genial. También vale la pena revisar otras herramientas sobre temas parecidos

    • Dokploy
    • Coolify
    • Kubero
      Si conocen más, estaría bueno que las agregaran
    • La lista de PaaS self-hosted es útil.
      Hace poco probé Coolify y me dio la impresión de estar algo incompleto. Ahora uso Dokku, pero me gustaría que tuviera una mejor UI para administrar bases de datos
  • Estoy satisfecho con k3s, pero me alegra ver intentos nuevos en esa zona intermedia entre Docker Compose y K8s completo. En particular, la integración con WireGuard me parece interesante

  • Es una herramienta realmente genial. Gracias por el trabajo.
    Tengo curiosidad por cómo funciona la replicación de estado (state replication) del backend. Se mencionan CRDT y el protocolo gossip, pero la implementación concreta no queda del todo clara

    • Actualmente, la replicación de estado se basa en Corrosion
  • Si no es K8s, ¿por qué no Nomad?

    • Nomad también está bien, pero sigue teniendo control plane
    • Nomad tiene una curva de aprendizaje considerable. En cambio, Uncloud es casi usable de inmediato para cualquiera que ya conozca Docker y Compose
    • La licencia de HashiCorp prohíbe ofrecerlo como SaaS después de modificarlo.
      Es decir, fuera del hosting propio, su uso queda limitado y en la práctica no permite convertirlo libremente en servicio. Ver el texto completo de la licencia
  • Como referencia, comparto dos componentes p2p interesantes