- Kernel é uma plataforma serverless que permite aos desenvolvedores implantar código de automação de navegadores imediatamente, sem se preocupar com infraestrutura separada, e escalar em grande volume
- Sem configuração nem montagem de pipeline, é possível implantar e executar código em uma velocidade quase igual ao desenvolvimento local
- Fornece um navegador Chrome utilizável em ambiente sandbox e converte automaticamente os agentes criados em APIs, que podem ser chamadas de qualquer lugar
- Suporta integração com frameworks baseados no Chrome DevTools Protocol como Playwright e Puppeteer, e permite monitoramento e controle em tempo real por meio de GUI remota (live view)
- Compatível com ambiente Unikraft unikernel, oferecendo recursos voltados a alto desempenho como reinício ultrarrápido, restauração por snapshot e minimização de recursos
- Suporta duas formas de implantação, imagem Docker e Unikraft unikernel, podendo ser usado em diversos ambientes de nuvem e contêiner
- Todo o código é executado com segurança em máquinas virtuais isoladas, com ferramentas de observação e depuração em tempo real
O que é o Kernel?
- Kernel fornece um ambiente de Chrome sandboxizado, pronto para uso, e este repositório é o código-base para o serviço hospedado do Kernel
- É fácil conectar frameworks de navegador baseados em Chrome DevTools como Playwright e Puppeteer
Por que usar o Kernel?
- Implantação do local para produção em segundos
- Sem configuração separada nem pipeline de produção, é possível implantar e executar o código em quase o mesmo tempo de
bun run dev
- Transforma todos os agentes em APIs
- Todos os agentes enviados para a plataforma são expostos automaticamente como APIs, podendo ser chamados externamente
- Escalabilidade paralela
- É possível iniciar e escalar instantaneamente milhares de instâncias de navegador sempre que necessário
- Mais isolamento e observabilidade
- O código roda em VMs isoladas, aumentando a segurança, com ferramentas de monitoramento e depuração
- Modelo de preços simples e previsível
- Sem definição prévia de infraestrutura, você paga apenas pelos recursos utilizados
Principais recursos
- Ambiente de navegador integrado: crie e controle navegadores instantaneamente na nuvem, ideal para automatizar workloads
- É possível conectar e usar um Chrome sandboxizado a partir de frameworks de automação baseados em DevTools
- Integração com Playwright, Puppeteer etc. pela porta 9222
- Após obter o endpoint WebSocket do CDP, conecte-se a partir de um cliente remoto
- É possível desconectar e reconectar
- Persistência de estado de sessão: mantém continuamente entre chamadas sessões do navegador como cookies, tokens de autenticação e histórico
- Reinício ultrarrápido (standby mode): reinicia instantaneamente instâncias de navegador em menos de 20 ms
- Com GUI remota (transmissão de live view), é possível verificar e controlar a tela do navegador em tempo real
- noVNC: baseado em VNC, suporta leitura/escrita, requer desativar WebRTC
- WebRTC: tempo real, leitura/escrita, redimensionamento de janela, copiar/colar, alto desempenho, requer
ENABLE_WEBRTC=true
- Streaming de áudio não é suportado, e o modo somente leitura pode ser configurado por variável de ambiente
- Replay em vídeo de sessões do navegador: permite rever sessões anteriores para depuração e análise (suporte previsto)
Implementação e implantação
-
Uso de contêiner Docker
- É possível executar Chromium com interface gráfica em um contêiner Docker
- Após
cd images/chromium-headful, são fornecidos scripts de build e execução
- É possível ativar WebRTC e outras configurações por variáveis de ambiente
-
Uso de Unikraft Unikernel
- Ao executar com base em Unikraft unikernel, oferece inicialização e modo de espera mais rápidos do que a base Docker
- Quando não há tráfego de rede, entra automaticamente em modo standby, com suporte a snapshot/restauração de estado
- Cold start abaixo de 20 ms, com possibilidade de manter e restaurar estado de sessão (cookies, arquivos, configurações do navegador etc.)
- Requer 8 GB ou mais de memória
-
Observações para implantação
- Ao ativar streaming baseado em WebRTC, é necessário um servidor TURN
- Em implantações com unikernel, uma URL pública é emitida e qualquer pessoa pode acessá-la, portanto não use para tarefas sensíveis; é necessário excluir a instância após o uso
Ainda não há comentários.