- Les microVM sont un domaine très actif de la R&D technologique depuis cinq ans
- L’idée centrale consiste à réinventer certains concepts et technologies inventés par IBM avec l’hyperviseur dans les années 1960
- Concevoir spécialement l’OS pour qu’il s’exécute comme invité sur d’autres OS
- Le faire fonctionner dans une VM, mais en communiquant avec les ressources fournies par un hyperviseur spécifique (VirtIO) plutôt qu’avec un faux matériel
- L’objectif commercial est d’offrir les performances de l’informatique « serverless »
- AWS Lambda fonctionne avec Firecracker
- Firecracker repose sur l’hyperviseur KVM intégré au noyau Linux (alors qu’AWS utilisait auparavant l’hyperviseur Xen)
- Linux-on-Linux
- Dans le même environnement où FreeBSD démarre en 25 ms, Linux met 75 à 80 ms
- Quand le développeur du noyau FreeBSD Colin Percival a commencé à travailler sur l’amélioration de la vitesse de démarrage, il fallait 10 secondes ; c’est désormais 400 fois plus rapide
- Pour l’instant, l’optimisation concerne x86-64, mais des travaux sont aussi en cours pour Arm64
- Firecracker est actuellement l’une des microVM les plus connues, mais il existe aussi d’autres produits
- QEMU a ajouté une plateforme virtuelle microvm, et le service d’environnement de développement en ligne Hocus est passé de Firecracker à QEMU
- Il pourrait y avoir des usages au-delà du cloud
- Exécuter, au-dessus d’un OS complètement différent, un programme unique conçu pour un autre OS peut être utile dans de nombreuses situations
5 commentaires
Quelle est, en pratique, la différence entre 80 millisecondes et 20 millisecondes du point de vue de l’ensemble du service, ou de l’expérience du fournisseur de services ? J’ai aussi vaguement l’impression que 80 millisecondes sont déjà suffisantes. Bon, 10 secondes, c’était un peu excessif, en revanche.
Si l’on peut réduire le temps de cold start à moins que le temps nécessaire pour effectuer le handshake TLS avec le client, il devient alors inutile de prendre des mesures comme le warming pour éviter la baisse de réactivité initiale perçue par certains utilisateurs à cause de cold starts lents.
CloudFlare s’est déjà vanté d’avoir réellement atteint cet objectif en ramenant le temps de chargement de son service Workers à seulement 5 millisecondes.
Les compétences techniques de Cloudflare sont impressionnantes...
Récemment, Colin Percival a fait parler de lui avec la modification de
SYSINIT, passant du tri à bulles au tri fusion,mais comme ce texte explique aussi l’amélioration sous-jacente de la vitesse de démarrage de FreeBSD et son lien avec les microVM, je le partage ici.
Hocus - l’alternative open source à GitHub Codespaces
Pourquoi Firecracker a remplacé QEMU
FreeBSD utilise 7 % de son temps de démarrage à trier les SYSINIT avec un tri à bulles
FreeBSD remplace le tri à bulles de SYSINIT par un tri fusion
Ah, c’est donc un article dans la même veine. C’est intéressant.