- Kernel es una plataforma serverless que permite a los desarrolladores desplegar código de automatización de navegadores de inmediato y escalarlo a gran escala sin preocuparse por infraestructura aparte
- Sin configuración ni construcción de pipelines, se puede desplegar y ejecutar código a una velocidad casi igual al desarrollo local
- Proporciona un navegador Chrome utilizable en un entorno sandbox y convierte automáticamente los agentes escritos en APIs, que pueden invocarse desde cualquier lugar
- Soporta integración con frameworks basados en Chrome DevTools Protocol como Playwright y Puppeteer, y permite monitoreo y control en tiempo real mediante GUI remota (vista en vivo)
- Con soporte para entornos de unikernel de Unikraft, ofrece funciones de alto rendimiento como reinicios ultrarrápidos, restauración desde snapshots y minimización de recursos
- Soporta dos métodos de despliegue: imágenes Docker y unikernel de Unikraft, por lo que puede usarse en diversos entornos de nube y contenedores
- Todo el código se ejecuta de forma segura en máquinas virtuales aisladas y ofrece herramientas de observación y depuración en tiempo real
What's Kernel?
- Kernel ofrece un entorno de Chrome sandboxeado y listo para usar, y este repositorio es el código base para el servicio hospedado de Kernel
- Puede conectarse fácilmente desde frameworks de navegador basados en Chrome DevTools como Playwright y Puppeteer
Why use Kernel?
- Despliegue del entorno local a producción en segundos
- Sin configuración adicional ni pipeline de producción, es posible desplegar y ejecutar código casi en el mismo tiempo que
bun run dev
- Convierte todos los agentes en APIs
- Todos los agentes subidos a la plataforma se exponen automáticamente como APIs y pueden invocarse desde el exterior
- Escalabilidad en paralelo
- Es posible ejecutar y escalar al instante miles de instancias de navegador cuando se necesiten
- Mayor aislamiento y observabilidad
- El código se ejecuta en VMs aisladas para mayor seguridad y se proporcionan herramientas de monitoreo y depuración
- Plan de precios simple y predecible
- Sin definir infraestructura por adelantado, solo se paga por los recursos utilizados
Funciones principales
- Entorno de navegador integrado: crea y controla navegadores al instante en la nube, optimizado para automatizar cargas de trabajo
- El navegador Chrome en sandbox puede conectarse y usarse desde frameworks de automatización basados en DevTools
- Integración con Playwright, Puppeteer, etc. a través del puerto 9222
- Obtención del endpoint WebSocket de CDP y conexión desde clientes remotos
- Posibilidad de desconectarse y reconectarse
- Persistencia del estado de sesión: mantiene entre invocaciones la sesión del navegador, incluyendo cookies, tokens de autenticación e historial
- Reinicio ultrarrápido (standby mode): reinicia instancias del navegador al instante en menos de 20 ms
- Con GUI remota (streaming de vista en vivo) es posible ver y controlar la pantalla del navegador en tiempo real
- noVNC: basado en VNC, admite lectura/escritura, requiere desactivar WebRTC
- WebRTC: tiempo real, lectura/escritura, redimensionamiento de ventana, copiar/pegar, alto rendimiento, requiere
ENABLE_WEBRTC=true
- No soporta streaming de audio y el modo de solo lectura puede configurarse mediante variables de entorno
- Video replay de sesiones del navegador: permite volver a ver sesiones pasadas para depurar y analizar (próximamente)
Implementación y despliegue
-
Uso de contenedores Docker
- Puede ejecutar Chromium con interfaz gráfica en contenedores Docker
- Después de
cd images/chromium-headful, se proporcionan scripts de compilación y ejecución
- Es posible activar WebRTC y otras configuraciones mediante variables de entorno
-
Uso de Unikraft Unikernel
- Al ejecutarse sobre unikernels de Unikraft, ofrece arranque y modo de espera más rápidos que la base en Docker
- Si no hay tráfico de red, entra automáticamente en modo standby y soporta snapshots/restauración de estado
- Cold start menor a 20 ms, con capacidad de mantener y restaurar el estado de la sesión (cookies, archivos, configuración del navegador, etc.)
- Requiere 8 GB o más de memoria
-
Consideraciones para el despliegue
- Al habilitar streaming basado en WebRTC, se necesita un servidor TURN
- En despliegues de unikernel se emite una URL pública accesible por cualquiera, por lo que no debe usarse para tareas sensibles; es necesario eliminar la instancia después de usarla
Aún no hay comentarios.