cloadyDocs
Docs8 min de lectura

Conceptos básicos

Las palabras que usa el panel y lo que significa cada una para tus apps.

Espacio de trabajo

Un espacio de trabajo reúne tus aplicaciones, tu equipo, tus integraciones y tu factura. Tiene un nombre y un nombre corto para la URL, su slug (acme), y su panel está en cloady.com/w/acme.

Un espacio de trabajo abarca todas las regiones y todos los entornos; no hay nada que configurar por ubicación. Todas las personas que invites ven todas sus apps, y una sola suscripción las cubre todas (Capacidad y precio).

Aplicación

Una aplicación («app» en el panel) es algo que has desplegado: un sitio de WordPress, una API de Node, una base de datos Postgres. Tiene una URL, logs, variables, almacenamiento y un historial de despliegues, y puedes crearla a partir de tres orígenes:

  • Catálogo: una app lista para usar (WordPress, Postgres, n8n, …); la eliges, le pones nombre y la despliegas.
  • GitHub: uno de tus repos, que Cloady compila y redespliega cuando haces push.
  • Subida: una carpeta o un zip desde tu equipo.

Lo que compone una app (sus servicios y sus volúmenes) queda fijado al crearla, salvo en una app compilada desde un repositorio de GitHub con un archivo compose, que recoge los cambios de ese archivo en cada despliegue. No hay forma de actualizar a una versión más reciente del catálogo; despliega una app nueva y migra.

Cada app vive en una región y un entorno, que eliges al crearla, y su nombre es único dentro de tu espacio de trabajo y entorno: blog en producción y blog en preview son dos apps distintas, cada una con sus propios datos y su propia URL.

Renombrar una app cambia su URL, porque la dirección sigue al nombre. El cambio es inmediato y nada más se mueve: los datos, las variables y los dominios propios se quedan como están, así que solo tienes que actualizar lo que enlazaba a la dirección anterior. (En las apps compiladas a partir de tu propio código, ya no se puede revertir a los despliegues hechos antes del cambio de nombre).

Eliminar una app borra sus datos de forma permanente: nunca elimines una app para cambiarle el nombre.

Servicios y endpoints

  • Un servicio es un contenedor dentro de una app: una app de WordPress tiene dos, el sitio y su base de datos MariaDB. Cada uno aparece en su propia fila en Settings → Services, con un botón de terminal, y los logs en tiempo real de la app pueden mostrar cada servicio por separado.
  • Un endpoint es un puerto en el que escucha un servicio, junto con su protocolo. Un puerto publicado es accesible desde internet; un puerto expuesto solo internamente es accesible para los demás servicios de la app, por nombre de servicio. Los puertos web reciben una URL https://; los puertos de bases de datos y de juegos usan TCP o UDP sin más y reciben un host y un número de puerto.

Una app tiene un único nombre de host público, al que responde su endpoint principal: el primer endpoint HTTP que declara o, si no declara ninguno, su primer endpoint TCP. Los demás servicios no tienen nombre de host propio; accede a ellos desde dentro de la app por su nombre de servicio. Cuando una app publica un puerto TCP o UDP junto a un sitio web, conéctate a ese puerto con la dirección IPv6 que aparece en la página de la app.

Región

Una región es donde se ejecuta una app; hoy son usw1 (EE.UU. Oeste), use1 (EE.UU. Este), eu1 (Alemania) y sin1 (Singapur). Eliges una al crear la app y puedes moverla más tarde con Transfer, en la zona de peligro de la app; una app con volúmenes deja de estar disponible mientras sus datos se copian a la nueva región. Las apps no hacen failover entre regiones; si necesitas una app en dos sitios, despliégala dos veces.

No hay nada que activar antes. Un espacio de trabajo nuevo puede desplegar en cualquier región desde el primer momento, sea gratuito o de pago. Solo hay un error que detiene un despliegue por estos motivos:

  • payment_required: la app haría que el espacio de trabajo superara su asignación gratuita y no hay ninguna tarjeta registrada, o la tarjeta fue rechazada. El propietario del espacio de trabajo puede añadir una en Account → Billing, o puedes reducir el tamaño de la app.

Cuando una región no tiene sitio para una app nueva, el despliegue muestra Adding capacity… durante unos minutos mientras se incorpora un servidor a la región. Si no llega ninguno, el despliegue falla; vuelve a intentarlo o elige otra región.

Capacidad y precio

Nunca eliges un plan. Las apps de un espacio de trabajo declaran lo que necesitan (los límites de sus archivos compose, multiplicados por la escala que elijas), y el total se cobra según cuatro planes:

PlanvCPURAMSSDPrecio / mes
Small1 vCPU2 GB50 GB5,00 US$
Medium4 vCPU8 GB200 GB15,00 US$
Large10 vCPU44 GB600 GB60,00 US$
Max22 vCPU116 GB1 TB120,00 US$
  • El total cae en el plan más pequeño que cubre los tres recursos y se cobra a un precio situado entre ese plan y el inmediatamente inferior. Llegar exactamente a los límites de un plan cuesta el precio de ese plan; cualquier punto intermedio cuesta un precio intermedio, así que la factura nunca da saltos en los límites y pedir más nunca cuesta menos.
  • Los precios son los mismos en todas las regiones, y pagas por lo que declaran tus apps, no por lo que usan. El nivel gratuito incluye 200 GB al mes de tráfico HTTP saliente; los recursos de pago incluyen tráfico de red ilimitado.
  • Un espacio de trabajo cuyas apps quepan en 0,5 vCPU, 1 GB de RAM y 5 GB de SSD no paga nada. Es un umbral, no un descuento: en cuanto un solo recurso lo supera, se factura todo el espacio de trabajo.
  • Los aumentos se cobran de inmediato por lo que queda del periodo, y si la tarjeta es rechazada, el cambio se bloquea en lugar de concederse. Las reducciones se aplican en tu próxima renovación, así que conservas lo que ya has pagado.

Entorno

Cada app está en uno de tres entornos (production, preview o development):

  • Los nombres no chocan entre entornos: blog en producción y blog en preview son apps distintas.
  • Todos cuentan para el uso del espacio de trabajo y para su única factura.
  • El nombre de host no incluye el entorno; el código único que contiene ya distingue el blog de producción del de preview.
  • Las apps de development no se redespliegan con un push salvo que lo actives; las de producción y preview sí lo hacen por defecto.

La región y el entorno forman parte de la URL del panel (cloady.com/w/acme/usw1/production/a/blog); el selector de la parte superior cambia el conjunto de apps que estás viendo.

Un espacio de trabajo es global entre regiones; cada aplicación ocupa una celda de región y entornoEspacio de trabajo acmeidentidad · miembros · integraciones — global en todas las regionescloady.com/w/acmeregiones →entornos ↓usw1EE.UU. Oesteeu1Alemaniasin1Singapurproductionpreviewdevelopmentblogshopeu-apiedgeblog——scratch——URL del panelcloady.com/w/acme/usw1/production/a/blogel mismo nombre puede repetirse en otro entorno

Dominio

Un dominio es un nombre de host que apunta a una app, y se gestiona en Settings → Domains:

  • Built-in: el nombre de host cloady.io que recibe cada app. El HTTPS se configura automáticamente.

  • Propio: un nombre de host que te pertenece. Añádelo y crea el registro DNS que se muestra ahí: un CNAME al nombre de host integrado para un subdominio, o los registros A y AAAA que indica para un dominio raíz (apex), que no puede ser un CNAME. Cuando el DNS resuelve, Cloady obtiene un certificado de Let's Encrypt para él; su estado pasa por queued → pending → issued, o se queda en failed, con el motivo, si el registro nunca llegó a resolver.

  • Registered with Cloady: un dominio que compras aquí, desde el campo de despliegue (escribe un nombre como acme.dev), desde el formulario Domains de una app cuando el nombre que escribes aún está libre, o desde Workspace settings → Domains. Se registra por un año con privacidad WHOIS, pertenece al espacio de trabajo y no a una app concreta, y con Automatic DNS el dominio y todos sus subdominios ya apuntan a Cloady, así que asociar shop.acme.dev a cualquier app no requiere ningún cambio de DNS. Cloady lo renueva un mes antes de que caduque, con cargo a la tarjeta del espacio de trabajo, salvo que desactives la renovación automática.

El botón Open usa el nombre de host integrado. Marcar un dominio como primary (a través de la API o de Terraform) solo le añade una etiqueta en la lista.

Workspace settings → Domains muestra todos los dominios del espacio de trabajo. Un dominio registrado aquí tiene un editor de registros (MX, TXT, CNAME y los demás, con ajustes predefinidos para los proveedores de correo más comunes); un dominio gestionado en otro proveedor de DNS muestra los registros que hay que añadir allí y si ya resuelven. El nombre de host cloady.io de cada app también puede tener registros, en nombres que cuelgan de él, como mail o _verify.

Recursos y escalado

El uso de un espacio de trabajo es la suma de lo que declaran sus apps. No hay capacidad que comprar por adelantado ni ningún techo con el que chocar.

Cada servicio se ejecuta con un límite de CPU y otro de memoria: lo que declare la app, o 0.5 vCPU y 1 GB si no declara nada. Settings → Resources los escala por app, de 0.5× a 4× en pasos de un cuarto, la CPU y la memoria por separado, y lo que cuesta una app es la suma de los límites de sus servicios a la escala actual.

Cuando despliegas una app nueva o aumentas la escala de una, Cloady suma sus límites a todo lo que ya está desplegado y calcula el precio del nuevo total antes de crear nada. Dentro de la asignación gratuita no se cobra nada. Si la superas, se cobra la diferencia a la tarjeta registrada; si no hay tarjeta o la rechazan, recibes payment_required y no cambia nada. El formulario de escala muestra la diferencia mensual antes de guardar.

El almacenamiento funciona de forma distinta a la CPU y la memoria. El tamaño de cada volumen se define por separado en Settings → Resources, el factor de escala nunca lo toca, y un volumen puede crecer, pero nunca reducirse: el nuevo tamaño se aplica al guardar y no se puede deshacer. La página de la app muestra sus volúmenes y lo lleno que está cada uno, y Browse files abre cualquiera de ellos.

URL

Cloady usa dos dominios: cloady.com para el panel, donde los espacios de trabajo son rutas (cloady.com/w/acme), y cloady.io para tus apps desplegadas.

El nombre de host de una app se forma con su nombre, un código corto único y el nombre del espacio de trabajo. Tiene el mismo formato en todas las regiones y todos los entornos, y cada app recibe su propio código:

my-blog-k7q2v9ze-acme.cloady.io   production · usw1
my-blog-p3x8m1wd-acme.cloady.io   preview    · eu1

La primera parte es el slug de la app, que puedes editar en Settings → General. Sigue al nombre de la app hasta que lo definas tú; a partir de ahí ya no cambia, y renombrar la app deja de cambiar la URL.

Variables de entorno

Settings → Environment contiene las variables que ven los servicios de tu app. Los valores marcados como secretos se ocultan al guardarlos y se pueden revelar de uno en uno, y puedes pegar un archivo .env para importar muchas a la vez. Un cambio se aplica en el siguiente despliegue: guardar una variable no reinicia lo que ya está en ejecución, así que usa Redeploy para aplicarlo de inmediato.

Cloady define algunas por su cuenta, y puedes referenciarlas desde tus propios valores con ${...}:

VariableValor
CLOADY_PRIMARY_URLhttps:// más el nombre de host de la app
CLOADY_PRIMARY_HOST, CLOADY_DOMAINel nombre de host de la app
CLOADY_WORKSPACE, CLOADY_SVCIDel slug del espacio de trabajo y el slug de la app
CLOADY_HOST_<SERVICE>la dirección de otro servicio dentro de la app

Siguiente paso: consulta la Guía del panel para trabajar en la interfaz, o el resumen de la API para controlar Cloady desde código.

En esta página