Vercel ha anunciado la disponibilidad general de Vercel Sandbox, una capa de ejecución diseñada específicamente para agentes de IA. Pero más allá del hype de los agentes, hay una pregunta interesante: ¿puede servirnos para ejecutar código de forma segura en diferentes lenguajes como PHP, Node o Go?
¿Qué es Vercel Sandbox?
Vercel Sandbox proporciona microVMs Linux bajo demanda. Cada sandbox está aislado, con su propio sistema de archivos, red y espacio de procesos. Obtienes acceso sudo, gestores de paquetes y la capacidad de ejecutar los mismos comandos que ejecutarías en una máquina Linux.
La clave aquí es el aislamiento completo. Cada sandbox es una máquina virtual Firecracker (la misma tecnología que usa AWS Lambda) que se inicia en fracciones de segundo, ejecuta código y desaparece cuando termina la tarea.
import { Sandbox } from '@vercel/sandbox';
const sandbox = await Sandbox.create();
await sandbox.runCommand({
cmd: 'node',
args: ["-e", 'console.log("Hello from Vercel Sandbox!")'],
stdout: process.stdout,
});
await sandbox.stop();
El problema que resuelve
Los agentes de IA funcionan diferente a los humanos. Necesitan:
- Entornos que se inicien en segundos
- Aislamiento completo para código no confiable
- Entornos efímeros que existen solo el tiempo necesario
- Snapshots para restaurar entornos complejos instantáneamente
- Pricing por CPU activa, no por tiempo inactivo
Vercel procesa más de 2.7 millones de despliegues al día. Cada uno inicia una microVM aislada, ejecuta código y desaparece, a menudo en segundos. Sandbox lleva esa misma infraestructura a los agentes.
¿Se puede usar para PHP?
La respuesta corta es sí. Como Sandbox es una microVM Linux completa con sudo, puedes instalar PHP:
# Instalar PHP en el sandbox
apt-get update && apt-get install -y php php-cli
# Ejecutar código PHP
php -r "echo 'Hello from PHP!';"
Sin embargo, hay una limitación importante: Sandbox no es persistente. Cada vez que creas un nuevo sandbox, empiezas desde cero. Tendrías que instalar PHP cada vez.
La solución son los snapshots: una vez que tienes un entorno configurado con PHP, puedes guardarlo como snapshot y restaurarlo instantáneamente en ejecuciones futuras.
¿Y para Node.js?
Node.js es el caso de uso más natural, ya que es el runtime que Vercel usa por defecto. Probablemente Node ya viene preinstalado en las imágenes base de Sandbox:
await sandbox.runCommand({
cmd: 'node',
args: ['--version'],
stdout: process.stdout,
});
await sandbox.runCommand({
cmd: 'npm',
args: ['install'],
stdout: process.stdout,
});
Para Node, Sandbox es especialmente útil porque puedes:
- Clonar un repositorio
- Instalar dependencias con npm/yarn/pnpm
- Ejecutar tests
- Ejecutar scripts
- Hacer cleanup y desaparecer
¿Y binarios en Go?
Aquí es donde se pone interesante. Go compila a binarios estáticos, lo que lo hace perfecto para este entorno:
# Instalar Go
apt-get install -y golang-go
# O copiar un binario compilado previamente
./mi-programa-go
La ventaja de Go es que no necesitas instalar dependencias en runtime. El binario es autocontenido. Puedes compilar en tu máquina y copiar el binario al sandbox, o compilar dentro del sandbox si necesitas.
Casos de uso prácticos
Más allá de los agentes de IA, veo varios casos de uso interesantes:
1. Ejecución de código no confiable
Si necesitas ejecutar código enviado por usuarios (como en un editor de código online), Sandbox ofrece aislamiento perfecto. El usuario puede ejecutar lo que quiera, pero está confinado a su microVM.
2. Testing en entornos limpios
Para tests de integración que necesitan un entorno limpio cada vez, Sandbox es ideal. No hay “leakage” entre ejecuciones.
3. Procesamiento paralelo
Puedes crear múltiples sandboxes en paralelo para procesar tareas independientes. Cada uno está aislado, no hay contención de recursos.
4. Scripts de maintenance
Necesitas ejecutar un script de mantenimiento que requiere sudo? Sandbox te da acceso root sin comprometer tu infraestructura principal.
Limitaciones a tener en cuenta
Ephemeral por diseño
Los sandboxes están diseñados para ser efímeros. Si necesitas persistencia, tendrás que:
- Usar volúmenes montados (si está disponible)
- Guardar estado en almacenamiento externo (S3, base de datos, etc.)
- Usar snapshots para guardar/restaurar estado
Cold start
Aunque el cold start es rápido (sub-segundo), no es instantáneo. Para tareas críticas de latencia, puede que no sea suficiente.
Costo
El pricing es por CPU activa. Si tienes tareas que corren por largo tiempo, puede que no sea económico comparado con una VM tradicional.
Red
Los sandboxes tienen su propia red aislada. Si necesitas acceso a recursos específicos, tendrás que configurar la red accordingly.
Comparado con alternativas
vs Docker
Docker también te da aislamiento, pero Sandbox es más ligero (Firecracker vs containers) y está optimizado para arranque rápido. Para trabajo épimero, Sandbox gana.
vs AWS Lambda
Lambda es serverless, pero está limitado a runtimes específicos y tiene más restricciones. Sandbox te da acceso root completo a Linux.
vs VMs tradicionales
VMs tradicionales son más persistentes pero tardan minutos en arrancar. Sandbox arranca en segundos.
¿Vale la pena?
Depende de tu caso de uso:
Sí, si:
- Necesitas ejecutar código no confiable de forma segura
- Tus tareas son épimeras y duran segundos/minutos
- Necesitas aislamiento completo
- Te beneficia el paralelismo
- No quieres gestionar infraestructura
No, si:
- Necesitas persistencia de estado
- Tus tareas corren por largo tiempo
- El cold start es un problema
- El costo por CPU activa es prohibitivo
Mi opinión personal
Vercel Sandbox es interesante, pero creo que el hype actual viene del mundo de los agentes de IA. Para el desarrollador promedio, probablemente no sea la solución a menos que tengas un caso de uso muy específico.
Dicho esto, la tecnología detrás (Firecracker microVMs) es sólida y Vercel ha demostrado que la pueden escalar a millones de despliegues diarios. Si encaja con tu caso de uso, puede ser una herramienta muy potente.
Para ejecutar PHP, Node o Go específicamente, yo miraría primero alternativas más simples:
- PHP: Docker containers o Lambdas con PHP runtime
- Node: Serverless functions (Vercel/AWS Lambda) o Docker
- Go: Binarios compilados desplegados como containers o Lambda custom runtimes
Sandbox brilla cuando necesitas la combinación de aislamiento + ephemeral + Linux completo. Si no necesitas esas tres cosas, probablemente haya una solución más simple.
Artículo original: Vercel Sandbox is Now Generally Available Documentación: Vercel Sandbox Docs SDK: @vercel/sandbox











Comentarios