Serverless : un rapide aperçu de Firecracker dans Azure via de la virtualisation imbriquée …

Karim
4 min readNov 30, 2018

--

J’en ai parlé dans l’article précédent, Amazon avait donc dévoilé son projet Firecracker, une nouvelle technologie de virtualisation qui permet aux clients de déployer des micromachines virtuelles très légères (microVM). Les microVM Firecracker combinent les propriétés d’isolation de sécurité et de charge de travail des VM traditionnelles avec la rapidité, l’agilité et l’efficacité des ressources que permettent les conteneurs. Ils fournissent un environnement sécurisé et fiable pour les services multilocataires, tout en maintenant des frais généraux minimaux selon les équipes d’AWS. Caractéristiques et architecture du gestionnaire de machine virtuelle Firecracker (VMM) :

Je lance donc une instance Ubuntu Server 18.10 64 Bits en gamme Ev3 comme précédemment avec les extensions virtualisation activées via ce template et ces paramètres :

accompagné du script shell :

Le tout peut être obtenu via le portail Azure en lancement avec l’interface graphique …

Les extensions virtualisation sont actives dans l’instance :

J’installe KVM :

Je récupère le binaire firecracker depuis github et les éléments de future ma microvm (sous Alpine Linux) :

et je n’ai plus qu’à lancer ma microvm avec ces commandes vers cet API RESTful local genéré avec Firecracker (rappel de l’architecture) :

On s’y logue en root / root :

La microvm se termine avec la commande “reboot” :

Comme dans l’exemple fourni par AWS, je peux lancer une batterie de microvms :

On récupère les éléments de la microvm comme précédemment :

et on lance le tout :

avec ce résultat :

Firecracker est open source et utilisé par AWS Lambda comme base pour l’approvisionnement et le fonctionnement des bacs à sable. Comme Firecracker fournit une microVM sécurisée qui peut être rapidement provisionnée avec un encombrement minimal, cela permet des performances sans sacrifier la sécurité et d’optimiser l’utilisation du matériel physique ainsi que la façon dont AWS distribue et exécute les charges de travail pour Lambda, en mélangeant les charges de travail en fonction de facteurs tels que les périodes actives/de repos et l’utilisation de la mémoire …

A voir comment cela pourra se décliner dans d’autres Cloud et environnements …

Cet exemple qui m’a inspiré également de l’utilisation de Firecracker dans Google Cloud :

A suivre !

--

--