- Kernel est une plateforme serverless qui permet aux développeurs de déployer immédiatement leur code d’automatisation de navigateur sans se soucier de l’infrastructure, puis de le faire passer à l’échelle massivement
- Sans configuration ni mise en place de pipeline, il est possible de déployer et d’exécuter le code à une vitesse presque identique au développement local
- La plateforme fournit un navigateur Chrome utilisable dans un environnement sandboxé et transforme automatiquement les agents créés en API, appelables depuis n’importe où
- Elle prend en charge l’intégration avec des frameworks basés sur le Chrome DevTools Protocol comme Playwright et Puppeteer, et permet la surveillance et le contrôle en temps réel via une GUI distante (vue en direct)
- La prise en charge de l’environnement Unikraft unikernel apporte des fonctions orientées haute performance comme le redémarrage ultra-rapide, la restauration par snapshot et la minimisation des ressources
- Deux modes de déploiement sont pris en charge, image Docker et Unikraft unikernel, ce qui permet une utilisation dans divers environnements cloud et conteneurisés
- Tout le code s’exécute en sécurité dans des machines virtuelles isolées, avec des outils d’observation et de débogage en temps réel
What's Kernel?
- Kernel fournit un environnement Chrome sandboxé prêt à l’emploi, et ce dépôt constitue la base de code du service d’hébergement Kernel
- Il peut être connecté facilement à des frameworks de navigateur basés sur Chrome DevTools comme Playwright et Puppeteer
Why use Kernel?
- Déployer du local à la production en quelques secondes
- Sans configuration supplémentaire ni pipeline de production, le code peut être déployé et exécuté en presque autant de temps qu’un
bun run dev
- Transformer tous les agents en API
- Tous les agents déployés sur la plateforme sont automatiquement exposés sous forme d’API et peuvent être appelés depuis l’extérieur
- Scalabilité parallèle
- Il est possible de lancer et de faire monter en charge instantanément des milliers d’instances de navigateur à la demande
- Isolation et observabilité renforcées
- Le code s’exécute dans des VM isolées pour une meilleure sécurité, avec des outils de monitoring et de débogage
- Tarification simple et prévisible
- Sans définition préalable de l’infrastructure, le coût ne porte que sur les ressources réellement utilisées
Fonctionnalités principales
- Environnement navigateur unifié : création et contrôle instantanés de navigateurs dans le cloud, optimisés pour l’automatisation des workloads
- Chrome sandboxé utilisable depuis des frameworks d’automatisation basés sur DevTools
- Intégration avec Playwright, Puppeteer, etc. via le port 9222
- Récupération d’un endpoint WebSocket CDP puis connexion depuis un client distant
- Déconnexion et reconnexion possibles
- Persistance de l’état de session : les cookies, jetons d’authentification, historique et autres éléments de session navigateur sont conservés entre les appels
- Redémarrage ultra-rapide (standby mode) : redémarrage instantané d’une instance de navigateur en moins de 20 ms
- La GUI distante (streaming de vue en direct) permet de voir et contrôler l’écran du navigateur en temps réel
- noVNC : basé sur VNC, lecture/écriture prises en charge, nécessite la désactivation de WebRTC
- WebRTC : temps réel, lecture/écriture, redimensionnement de fenêtre, copier/coller, hautes performances, nécessite
ENABLE_WEBRTC=true
- Le streaming audio n’est pas pris en charge, et le mode lecture seule peut être configuré via des variables d’environnement
- Replay vidéo des sessions navigateur : possibilité de rejouer des sessions passées pour le débogage et l’analyse (à venir)
Implémentation et déploiement
-
Utilisation d’un conteneur Docker
- Exécution possible de Chromium en mode headful dans un conteneur Docker
- Après
cd images/chromium-headful, des scripts de build et d’exécution sont fournis
- L’activation de WebRTC et d’autres paramètres est possible via des variables d’environnement
-
Utilisation d’Unikraft Unikernel
- Une exécution basée sur Unikraft unikernel offre un démarrage et un mode veille plus rapides qu’une base Docker
- En l’absence de trafic réseau, le système passe automatiquement en mode standby, avec prise en charge des snapshots/restaurations d’état
- Cold start inférieur à 20 ms, avec conservation et restauration possibles de l’état de session (cookies, fichiers, paramètres du navigateur, etc.)
- Nécessite au moins 8 Go de mémoire
-
Points à noter lors du déploiement
- L’activation du streaming basé sur WebRTC nécessite un serveur TURN
- Lors d’un déploiement unikernel, une URL publique est émise et accessible à tous ; à ne pas utiliser pour des tâches sensibles, et l’instance doit être supprimée après usage
Aucun commentaire pour le moment.