¿Qué es Cloud Code (Funciones Serverless)?

Actualizado: agosto de 2026

Cloud Code es un modelo serverless donde la lógica de backend se ejecuta como funciones en el servidor, activadas por llamadas, eventos de datos o cron. Dos aclaraciones de entrada, porque esta familia de términos vive enredada. Primero, “serverless” significa que los servidores son problema de otro — existen, invisibles, escalados por ti sin que los toques. Segundo, las funciones vienen en dos arquitecturas: el FaaS independiente, donde cada función es una unidad aislada cableada a servicios externos, y la variante BaaS que da nombre a este artículo — funciones desplegadas dentro de tu backend, compartiendo entorno con la base de datos, la autenticación y los archivos sobre los que actúan.

Puntos clave

PreguntaRespuesta
Las cuatro propiedadesActivada por eventos · stateless · escala automática · pago por uso
Los dos saboresUnidades FaaS independientes vs. Cloud Code viviendo con tu backend
Las familias de triggersLlamada por nombre · eventos de datos · eventos de auth · cron · webhooks
Por qué server-sideLos clientes pueden descompilarse; las funciones no pueden manipularse
Los límites honestosTimeouts, statelessness y cold starts (donde hay escala a cero)

Una función, llamada desde cualquier lugar

El ejemplo clásico de agregación — computar junto a los datos y enviar solo la respuesta:

// JavaScript / Node.js — Back4app JS SDK
// Calling a Cloud Code function: server-side logic, one line from the client
const avg = await Parse.Cloud.run('averageStars', { movie: 'Arrival' });
// The aggregation ran NEXT TO the database — only the answer crossed the wire

// The function itself (cloud/main.js — deployed to your backend, not the app):
// Parse.Cloud.define('averageStars', async (req) => {
//   const q = new Parse.Query('Review').equalTo('movie', req.params.movie);
//   const reviews = await q.find({ useMasterKey: true });
//   return reviews.reduce((s, r) => s + r.get('stars'), 0) / reviews.length;
// });

Promediar mil reseñas en el teléfono significa descargar mil reseñas; la versión con función mueve un solo número. Ese argumento de ancho de banda se generaliza en el caso completo a favor de la lógica server-side, justo abajo.

La taxonomía de triggers

Las explicaciones superficiales listan los triggers en una frase; la estructura merece una tabla:

Familia de triggerSe dispara cuandoUso canónico
Funciones invocablesUn cliente invoca por nombre con parámetros JSONLógica de negocio, agregaciones, acciones
Triggers de datosAntes/después de save, delete, find en una claseValidación, defaults, cascadas, auditoría
Triggers de authAntes del login, después de registro/logoutBlocklists, flujos de bienvenida, auditoría
Jobs programadosExpresiones cronReportes, limpiezas, barridos de TTL, resúmenes
Webhooks entrantesUn sistema externo hace POST de un eventoConfirmaciones de pago, notificaciones de CI
Fuentes de eventos activando funciones serverless junto a un backend gestionadoLlamadas de clientes, eventos de guardado en la base de datos, eventos de autenticación, tareas cron y webhooks externos activan funciones en el servidor, que leen y escriben en la base de datos gestionada, llaman APIs externas con secretos guardados en el servidor y devuelven resultados, con la plataforma escalando la ejecución automáticamente.

los secretos se quedan en el servidor

Llamada del cliente
por nombre

Función
(tu lógica, runtime gestionado)

Evento de datos
antes/después del save

Evento de auth
login, registro

Programación
cron

Webhook externo

Base de datos gestionada
ACLs aplicadas

APIs de terceros

Llamadas de clientes, eventos de guardado en la base de datos, eventos de autenticación, tareas cron y webhooks externos activan funciones en el servidor, que leen y escriben en la base de datos gestionada, llaman APIs externas con secretos guardados en el servidor y devuelven resultados, con la plataforma escalando la ejecución automáticamente.

Por qué la lógica pertenece al servidor

Cuatro argumentos, casi siempre ausentes de las explicaciones habituales. No confíes en el cliente: las apps se descompilan y las solicitudes se falsifican; los cálculos de precio, chequeos de permisos y puntajes de juego computados en el dispositivo son sugerencias, mientras que la misma lógica en una función es ley — un trigger beforeSave valida cada escritura sin importar qué cliente la envió. Los secretos se quedan en casa: las claves de APIs de terceros viven en el entorno de la función, nunca en un bundle que cualquiera puede desempacar — la disciplina de claves de API vuelta estructural. Actualiza sin release: los cambios en la lógica del servidor llegan al instante a todos los usuarios, sin ciclo de revisión de tienda de aplicaciones entre la corrección y lo corregido. Computa cerca de los datos: agregación, moldeado de búsquedas y fan-out corren a microsegundos de la base de datos, no al otro lado de una red móvil.

Cloud Code vs. FaaS independiente vs. contenedores

Cloud Code (funciones BaaS)FaaS independienteContenedores
CorreDentro del runtime de tu backendUnidades aisladas por funciónDonde tú lo orquestes
ContextoBase de datos, auth y ACLs ya conectadosCada servicio cableado a manoLo que tú construyas
Unidad de deployUn codebase, un deployPor funciónPor imagen
Cold startsNinguno — el backend ya está arribaSí, al escalar desde ceroSolo si escalas a cero
Operaciones privilegiadasAcceso con master key para lógica adminCableado IAM por funciónTu propia malla de auth
EscalaJunto con el backendPor solicitud, hasta ceroSegún lo configures
Encaja conBackends de apps en un BaaSTrabajo de eventos aislado y con picosServicios de vida larga y con estado

El artículo de arquitectura serverless cubre el modelo en general y el lugar del FaaS en la escalera de servicios tiene artículo propio; la fila que importa aquí es contexto: las funciones de Cloud Code nacen conectadas — el mismo SDK, la misma semántica de sesión, ACLs aplicadas a sus queries — mientras que el FaaS independiente empieza cada proyecto por la plomería.

Cold starts y statelessness, sin rodeos

Dos propiedades se desprenden de la escala por solicitud, y ambas merecen decirse con claridad. Los cold starts ocurren cuando una función escalada a cero debe inicializar un entorno antes de correr — de cientos de milisegundos a segundos en las plataformas típicas, mitigados con instancias mínimas calientes y bundles ligeros, y arquitectónicamente ausentes en funciones alojadas en un backend siempre activo, lo cual es una diferencia genuina entre los dos sabores, no fanfarronería de proveedor. Statelessness significa que, por contrato, nada en memoria sobrevive entre invocaciones: contadores, caches y sesiones guardados en una función son bugs con hora marcada. El estado va a la base de datos — y la ventaja silenciosa de la variante BaaS es que la base de datos está a una línea de distancia, no detrás de un servicio que primero debes elegir, conectar y asegurar.

Casos de uso comunes

  • Validación y reglas de negocio — puertas de beforeSave que vuelven las invariantes innegociables en todos los clientes.
  • Agregaciones y reportes — computa junto a los datos; devuelve respuestas, no datasets.
  • Integración con terceros — pagos, email, APIs de AI llamadas con secretos guardados en el servidor.
  • Receptores y emisores de webhooks — funciones como las caras HTTP de las integraciones por eventos.
  • Mantenimiento programado — resúmenes, limpiezas y barridos en cron, sin flota de workers que operar.

¿Deberías convertirlo en una función? Matriz de decisión

TrabajoLugar
Lógica que los clientes podrían manipularFunción — siempre
Tareas con picos, con forma de eventoFunción
Cómputo de larga duración (minutos o más)Job en background, no función
Servicios con estado, siempre activos (sockets, colas)Contenedores / servicios de plataforma
Hot path crítico de latencia a volumen alto y constanteMide — el siempre-activo puede ganar
Todo lo que toca un secretoFunción — el secreto nunca se embarca

Limitaciones y trade-offs

  • Los timeouts son contratos. Las funciones tienen techos de segundos a minutos; el trabajo que pueda excederlos necesita una cola de jobs, no esperanza.
  • El statelessness es estricto. Cualquier cosa en memoria es efímera; los diseños que lo olvidan pasan los tests y fallan bajo scale-out.
  • La proliferación es el modo de falla. Cincuenta funciones pequeñas sin módulos compartidos ni disciplina de nombres se convierten en un monolito distribuido con peores herramientas.
  • Depurar es remoto por naturaleza. Logs y traces reemplazan a los breakpoints; las plataformas con buenas superficies de logs se ganan el sustento aquí.
  • El costo se invierte bajo carga constante. Pagar por uso es imbatible para trabajo con picos y batible por servidores siempre activos a throughput alto y constante — ponle precio a la curva, no al folleto.

Cloud Code en Back4app

Back4app es una plataforma open-source de Backend as a Service (BaaS) que combina base de datos gestionada, APIs REST y GraphQL generadas automáticamente, autenticación, almacenamiento de archivos y funciones serverless con Cloud Code. Aquí, Cloud Code es el sabor BaaS en su forma original: JavaScript desplegado dentro de tu backend en Back4app — Parse.Cloud.define para funciones invocables como la del ejemplo en las pestañas de código, triggers beforeSave/afterSave para reglas de datos, hooks de auth y jobs programados, todo en un codebase y un deploy. Las funciones corren con el contexto conectado: el mismo SDK que usan tus clientes, ACLs y permisos a nivel de clase aplicados a las queries, acceso con master key disponible cuando la lógica administrativa legítimamente necesita omitirlos, y secretos en la configuración server-side. Como el backend está siempre corriendo, el cold start de escalar desde cero simplemente no aplica — y como la plataforma es open source, las funciones son portables a cualquier host que la ejecute, que es la respuesta práctica a la pregunta del lock-in.

Preguntas frecuentes

¿Qué es una función serverless?

Es un bloque pequeño de código server-side, con un solo propósito, que la plataforma ejecuta bajo demanda en respuesta a un evento — una llamada HTTP, un cambio en los datos, una tarea programada. El proveedor se encarga del aprovisionamiento, la escala y el mantenimiento: tú haces deploy de la lógica, y la plataforma es dueña de toda la maquinaria que la ejecuta.

¿Cuál es la diferencia entre FaaS y serverless?

FaaS — Functions-as-a-Service — es la mitad de cómputo del modelo serverless: funciones individuales activadas por eventos. Serverless es el modelo más amplio, que también incluye los servicios gestionados de backend (base de datos, autenticación, almacenamiento — la mitad BaaS). Cloud Code es el punto donde las dos mitades se encuentran: funciones que corren junto a un backend gestionado.

¿Cómo se activan las funciones serverless?

Cinco familias: llamadas directas (un cliente o API invoca la función por su nombre), eventos de datos (código que corre antes o después de guardados y borrados), eventos de autenticación (hooks en login y registro), tareas programadas (jobs estilo cron) y webhooks que llegan de sistemas externos. Una buena plataforma expone las cinco como registro de código, no como infraestructura.

¿Qué es un cold start?

Es la latencia — de cientos de milisegundos a segundos — cuando la plataforma debe inicializar un entorno de ejecución nuevo para una función que había escalado a cero. Las mitigaciones incluyen instancias mínimas calientes y bundles más pequeños; las funciones alojadas en un backend siempre activo sencillamente no pasan por el caso de escalar desde cero.

¿Por qué las funciones serverless deben ser stateless?

Porque cualquiera de las muchas instancias paralelas y de vida corta puede atender la siguiente solicitud — la memoria retenida entre invocaciones es un bug esperando a desaparecer. El estado persistente pertenece a una base de datos o a un cache. En la variante BaaS, la base de datos ya viene conectada, y ahí está buena parte de la conveniencia del modelo.

¿Cuáles son los límites de las funciones serverless?

Las plataformas limitan el tiempo de ejecución (segundos por defecto, unos minutos como máximo), la memoria y el tamaño del payload — el trabajo de larga duración pertenece a jobs en background, y un throughput alto y constante puede costar más que un servidor siempre activo. Los límites son el precio de escalar por solicitud.

¿Cuál es la diferencia entre funciones serverless y microservicios?

Ejes distintos: los microservicios son una descomposición arquitectónica; serverless es un modelo de ejecución. Una función es más granular que un microservicio, y un microservicio puede implementarse como funciones, contenedores o una porción de monolito. Los contenedores compran control y procesos de vida larga; las funciones compran cero operación y escala por solicitud.

¿Las funciones serverless causan vendor lock-in?

Los formatos de eventos y las herramientas propietarias crean acoplamiento real en plataformas cerradas. El contrapeso es el open source: funciones escritas contra runtimes abiertos — incluido el Cloud Code open-source de Back4app, que corre en cualquier host Node.js — se mueven junto con tu backend en lugar de atarte al sistema de eventos de una sola nube.

Términos relacionados

Compara con

Lecturas recomendadas

¿Listo para construir tu backend?

Empieza tu proyecto en Back4app en minutos — base de datos, autenticación, APIs y Cloud Code incluidos. Sin tarjeta de crédito.

Escrito y revisado por Back4app Engineering, Back4app Engineering · Publicado el 2026-08-27