Introduction
Docker propose une API non documentée pour lancer des microVM, ce qui ouvre de nouvelles possibilités pour l'exécution de code non fiable. Nous avons réussi à reverse-engineer cette API et à développer le SDK Sandbox Agent open-source pour orchestrer des agents de codage à l'intérieur de ces microVM.
Contexte Technique
Docker Sandboxes utilise des microVM pour exécuter des agents de codage de manière sécurisée, contrairement aux conteneurs Docker classiques qui partagent le noyau de l'hôte et peuvent présenter des risques de sécurité. Les microVM offrent une meilleure isolation et une sécurité accrue grâce à des noyaux séparés.
Notre équipe a découvert que Docker Sandboxes utilise un daemon appelé sandboxd qui écoute sur un socket Unix et propose trois endpoints pour gérer les microVM : GET /vm, POST /vm et DELETE /vm/{vm_name}. Nous avons utilisé ces endpoints pour créer, gérer et supprimer des microVM.
Analyse et Implications
L'utilisation de microVM avec Docker Sandboxes ouvre de nouvelles possibilités pour l'exécution de code non fiable, tels que les agents de codage IA, les scripts soumis par les utilisateurs et les plugins multi-locataires. Les microVM offrent une isolation et une sécurité accrues par rapport aux conteneurs classiques.
Cependant, la gestion des microVM nécessite une attention particulière à la configuration du réseau, des volumes et de la sécurité. Notre équipe a développé un script pour automatiser la création, la gestion et la suppression des microVM, ainsi que le chargement d'images Docker et l'exécution de conteneurs à l'intérieur des microVM.
Perspective
L'API MicroVM de Docker Sandboxes offre de nouvelles possibilités pour l'exécution de code non fiable et l'orchestration d'agents de codage. Cependant, il est important de prendre en compte les limites et les défis liés à la gestion des microVM, tels que la configuration du réseau, des volumes et de la sécurité.
Notre équipe continuera à explorer les possibilités offertes par l'API MicroVM de Docker Sandboxes et à développer des outils et des scripts pour faciliter son utilisation. Nous sommes convaincus que cette technologie aura un impact significatif sur la façon dont nous exécutons et gérons les applications et les services dans le cloud.