Firecracker, un moniteur de machine virtuelle d'Amazon

Amazon a annoncé la sortie de Firecracker 1.0, qui est un moniteur de machine virtuelle (VMM, Virtual Machine Monitor), conçu pour exécuter des machines virtuelles avec une surcharge minimale. Le pétard est un fork du projet CrosVM utilisé par Google pour exécuter des applications Linux et Android sur ChromeOS.

Amazon Web Services développe Firecracker pour améliorer les performances et l'efficacité des plateformes AWS Lambda et AWS Fargate.

À propos de Firecracker

Pour ceux qui ne connaissent pas Firecracker, sachez que ce propose des machines virtuelles légères appelées microVM. L'isolement complet de microVM utilise des technologies de virtualisation matérielle basées sur l'hyperviseur KVM, tout en conservant les performances et la flexibilité des conteneurs conventionnels.

Le système est disponible pour les architectures x86_64 et ARM64 et a été testé sur les familles de processeurs Intel Skylake, Intel Cascade Lake, AMD Zen2 et ARM64 Neoverse N1, ainsi que des outils sont fournis pour intégrer Firecracker dans l'exécution des systèmes d'isolation de conteneurs tels que Kata Containers, Weaveworks Ignite et containerd (fournis par le firecracker- conteneur et runtime).

L'environnement logiciel qui s'exécute à l'intérieur des machines virtuelles a été tronqué et ne contient qu'un ensemble minimal de composants. Pour économiser de la mémoire, réduire le temps de démarrage et améliorer la sécurité dans les environnements, un noyau Linux simplifié est publié (dans lequel les noyaux 4.14 et 5.10 sont pris en charge), dont tout ce qui est inutile est exclu, y compris les fonctionnalités réduites et la prise en charge des appareils supprimés.

Lors de l'exécution avec un noyau tronqué, la consommation de mémoire supplémentaire par rapport à un conteneur est inférieure à 5 Mo. La latence entre le démarrage de la microVM et le début de l'exécution de l'application est définie entre 6 et 60 ms (moyenne de 12 ms), ce qui permet de créer de nouvelles machines virtuelles jusqu'à 180 environnements par seconde sur un hôte doté de 36 cœurs.

Gérer les environnements virtuels de l'espace utilisateur, exécute le processus d'arrière-plan Virtual Machine Manager, qui fournit une API RESTful qui implémente des fonctions telles que la configuration, le démarrage et l'arrêt de la microVM, la sélection de modèles de CPU (C3 ou T2), la détermination du nombre de processeurs virtuels (vCPU) et la taille de la mémoire, l'ajout d'interfaces réseau et de partitions de disque, la définition de limites sur la bande passante et l'intensité de opérations, fournissant de la mémoire supplémentaire et de la puissance CPU en cas de pénurie de ressources.

Firecracker est utilisé par/intégré à : appfleet, containerd via firecracker-containrd, Fly.io, Kata Containers, Koyeb, Northflank, OpenNebula, Qovery, UniK et Weave FireKube.

En plus d'être utilisé comme couche d'isolation plus profonde pour les conteneurs, Firecracker convient également pour fournir des systèmes FaaS (Function as a Service), qui offrent un modèle informatique sans serveur, dans lequel le développement est effectué au niveau de la préparation d'un ensemble de petites fonctions individuelles, dont chacune fournit le traitement d'un certain événement et est conçu pour un fonctionnement indépendant sans référence à l'environnement (sans état, le résultat ne dépend pas de l'état précédent et du contenu du système de fichiers).

Les fonctions s'exécutent uniquement lorsque cela est nécessaire et, immédiatement après le traitement de l'événement, elles terminent leur travail. La plate-forme FaaS elle-même héberge les fonctions provisionnées, orchestre la gestion et fournit l'évolutivité des environnements requis pour exécuter les fonctions provisionnées.

Comment compiler Firecracker sous Linux ?

Pour lceux qui sont intéressés à pouvoir essayer le pétard sur leur système, ils peuvent le compiler eux-mêmes.

Pour cette il suffit d'ouvrir un terminal et La première chose qu'ils doivent faire est d'obtenir le code source pour pouvoir compiler, ce peut faire en tapant :

git clone https://github.com/firecracker-microvm/firecracker

Une fois cela fait, nous pouvons entrer dans le dossier firecracker avec:
cd pétard

Et nous procédons à la compilation avec:

tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"

Enfin si vous souhaitez en savoir plus À propos de Firecracker, vous pouvez vérifier les détails sur le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.