OpenNebula 5.12 avec Firecracker : gérer les charges de travail avec des microVMs dans les clouds privés ou hybrides …
Tags: opennebula, serverless, docker, edgecomputing
Published: 2020-07-05 12:37:37

---
title: OpenNebula 5.12 avec Firecracker : gérer les charges de travail avec des microVMs dans les clouds privés ou hybrides …
published: true
date: 2020-07-05 12:32:59 UTC
tags: opennebula,serverless,docker,edgecomputing
canonical_url: https://medium.com/@deep75/opennebula-5-12-3e0b0ac758d6
---

![](https://cdn-images-1.medium.com/max/1024/1*S7nBPWbpgS9688jzmVQnmw.jpeg)

Firecracker est une technologie de virtualisation open source spécialement conçue pour créer et gérer des conteneurs sécurisés et multi-tenants ainsi que des services basés sur des fonctions qui fournissent des modèles opérationnels en mode serverless. Firecracker exécute des charges de travail dans des machines virtuelles légères, appelées microVM, qui combinent les propriétés de sécurité et d’isolement fournies par la technologie de virtualisation matérielle avec la vitesse et la flexibilité des conteneurs.

[Firecracker](https://firecracker-microvm.github.io/)

Le composant principal de Firecracker est un moniteur de machine virtuelle (VMM) qui utilise la machine virtuelle du noyau Linux (KVM) pour créer et exécuter des microVM. Firecracker a un design minimaliste. Il exclut les périphériques inutiles et les fonctionnalités destinées aux invités pour réduire l’empreinte mémoire et la surface d’attaque de chaque microVM. Cela améliore la sécurité, diminue le temps de démarrage et augmente l’utilisation du matériel. Firecracker prend actuellement en charge les processeurs Intel, AMD (aperçu) et Arm (aperçu). Firecracker a également été intégré dans les temps d’exécution des conteneurs, par exemple Kata Containers et Weaveworks Ignite.

![](https://cdn-images-1.medium.com/max/1024/0*H0NQQ3oqttsXNGrP.png)

Firecracker a été développé chez Amazon Web Services pour accélérer la vitesse et l’efficacité de services comme AWS Lambda et AWS Fargate. Firecracker est open source sous Apache version 2.0.

OpenNebula a sorti la version 5.12 de sa plate-forme éponyme en utilisant Firecracker comme option de virtualisation en conjonction de KVM, LXD et VMware :

![](https://cdn-images-1.medium.com/max/872/0*3iPvTbLvHNGcO9qc.png)

Cette nouvelle version apporte notamment l’intégration transparente avec des places de marchés comme Docker Hub ou l’exécution directe d’images Docker sur microVM et leur composition dans des conteneurs avec mise à l’échelle automatique …

![](https://cdn-images-1.medium.com/max/1024/0*TcW2YTv7E0DrbwMb.jpg)

Je pars donc pour cette nouvelle expérience d’une instance Ubuntu 20.04 LTS 64 Bits dans DigitalOcean qui permet l’accès à de la virtualisation imbriquée :

![](https://cdn-images-1.medium.com/max/1024/1*QJJUPx5ESxrMrV7UTRN_Ww.jpeg)

Et j’utilise pour cela la dernière version de MiniONE, un outil de déploiement facile à utiliser pour construire un cloud OpenNebula basé soit sur des machines virtuelles (KVM), des conteneurs système (LXD), des micro VM (Firecracker) ou un déploiement Edge auprès du fournisseur cloud Packet.

![](https://cdn-images-1.medium.com/max/597/1*kI-NeHkXgIRZMMoeowwBrw.jpeg)

Tous les composants nécessaires pour gérer et exécuter les machines virtuelles ou les conteneurs sont installés et configurés sur un système dédié en une seule commande …

![](https://cdn-images-1.medium.com/max/614/0*b7dlxLAaLDyBpFD4.png)

[OpenNebula/minione](https://github.com/OpenNebula/minione)

Récupération du script :

![](https://cdn-images-1.medium.com/max/1024/1*7QI8K8_1ocs-LOqhG4br_g.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*loGNYO1pHJyivJrD-Ve9NQ.png)

et lancement de MiniONE avec Firecracker (en chargeant une image Ubuntu du Docker Hub et avec un dashboard accessible sur le port TCP 8888) :

![](https://cdn-images-1.medium.com/max/1024/1*4QdZF1vmrZEocbRxxSlvEA.png)

![](https://cdn-images-1.medium.com/max/1024/1*Xjtgu6ptDEBZzxedN52vqg.jpeg)

L’installation se termine avec les identifiants générés automatiquement pour le compte administrateur de la plate-forme :

![](https://cdn-images-1.medium.com/max/1024/1*eWHXvvbaHm_2ZUr-t70hQg.jpeg)

Accès au dashboard d’OpenNebula :

![](https://cdn-images-1.medium.com/max/1024/1*tkeoGajUkd_E6qn4afjGuw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*co3J2XV9PsjOzIRj_oNixg.jpeg)

Je charge l’image officielle Node.js du Docker Hub en LTS avec Alpine Linux :

![](https://cdn-images-1.medium.com/max/1024/1*2npkHjnYl1R6h8FN_6Mp9g.jpeg)

sur le datastore local :

![](https://cdn-images-1.medium.com/max/1024/1*b3M5_yPnkAr8ca2Ni7Ckqw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*BONZulfCGr4eUVT1znqAbQ.jpeg)

et je modifie les paramêtres de cette image dans le contexte d’utilisation de Firecracker parmis les templates disponibles :

![](https://cdn-images-1.medium.com/max/1024/1*Jp6Gdh6sdoWdhJXRPgpifw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*OR59q8VHlTZGZNpvmqPjMw.png)

![](https://cdn-images-1.medium.com/max/1024/1*VjCDmHVkAiNSebl8O14lDg.jpeg)

Je lance directement 6 MicroVMs avec Firecracker et cette image officielle Node.js du Docker Hub :

![](https://cdn-images-1.medium.com/max/1024/1*kYRsmZ1DAboBQbt-naD2ZA.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*HymjlHMdGkXFqJ7C0nBEyw.jpeg)

Comme pour une machine virtuelle classique, je vais utiliser Puppet Bolt pour populer ses instances Firecracker avec le sempiternel démonstrateur FC :

[Getting started with Bolt](https://puppet.com/docs/bolt/latest/getting_started_with_bolt.html)

![](https://cdn-images-1.medium.com/max/1024/1*q0p-Dctiao0N7NbqNzBiZQ.jpeg)

en commençant par son installation :

![](https://cdn-images-1.medium.com/max/1024/1*MPC1iov9gxN16hiaaDLUlw.png)

et je crée cette arborescence :

![](https://cdn-images-1.medium.com/max/856/1*WkBU4Fuey8t8M_rt2Z_org.png)

avec ce script shell :

![](https://cdn-images-1.medium.com/max/1024/1*wfAyTqCvt3H11U6Q-1os-A.png)

et ce plan en YAML :

[Writing plans in YAML](https://puppet.com/docs/bolt/latest/writing_yaml_plans.html)

![](https://cdn-images-1.medium.com/max/1024/1*QgE3CIVxv03K44lZZESkZA.png)

Puis exécution du plan avec Bolt vers ces microVMS Firecracker :

![](https://cdn-images-1.medium.com/max/1024/1*V1oB9urVZutuVUW3GKbsFQ.png)

et le démonstrateur FC est disponibles sur ces dernières :

![](https://cdn-images-1.medium.com/max/1024/1*B1IiZ3_RmTWk_rTOFxsgLg.jpeg)

J’installe GoBetween comme Load Balancer local sur l’instance MiniONE :

[gobetween - documentation](http://gobetween.io/documentation.html)

![](https://cdn-images-1.medium.com/max/1024/1*WNaJ_kwi3excKGROOpBfuw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*bcXr-gfkN512cMO9kimIOA.jpeg)

avec ce fichier de configuration TOML :

![](https://cdn-images-1.medium.com/max/856/1*F7s6cFOSfgpa6FRV7kcLGA.png)

GoBetween va donc officier pour répartir la charge sur chacune des MicroVMs hébergeant le démonstrateur FC :

![](https://cdn-images-1.medium.com/max/1024/1*XV_zKCZBrq3lDuLbip_xCQ.png)

Sur le Port 80 de l’instance MiniONE, j’accède au démonstrateur FC :

![](https://cdn-images-1.medium.com/max/1024/1*7B7ovshxGEfFigLWHvKnZw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*9lgb6SuLzJT7ThI67VSAAQ.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*OrpFfSynXkuvH0duSgmQ3A.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*xp7X4OSlZWBI5CO2pjelHw.jpeg)

![](https://cdn-images-1.medium.com/max/1024/1*zVI6YDbfvogAJr-iJOEtbQ.jpeg)

C’est une introduction au monde de l’intégration de Firecracker en tant que nouvelle technologie de virtualisation officiellement prise en charge dans cette version 5.12 d’OpenNebula qui ouvre un tout nouvel ensemble de possibilités. Comme OneEdge dans un contexte d’Edge Computing Open Source …

![](https://cdn-images-1.medium.com/max/1024/1*_rbsyAkIqulopeZnxrEwJg.jpeg)

- [OpenExpo Europe 2020 - Past, Present and Future of OpenNebula](https://opennebula.io/openexpo-europe-virtual-2020/)
- [Next Generation Edge Cloud Platform](https://oneedge.io/)
- [OpenNebula vs Kubernetes: Comparing Two Container Orchestration Models](https://opennebula.io/opennebula-kubernetes-comparing-two-container-orchestration-models/)

À suivre !

![](https://cdn-images-1.medium.com/max/600/0*hyco7pArvYYoZMGo.jpg)