Archipel: une couche au dessus de libvirt
23 : Archipel: une couche au dessus de libvirt
Auteur : Emmanuel BLINDAUER
Archipel est un logiciel de gestion d'hyperviseurs et de machines virtuelles qui contrairement à d'autres solutions n'implique pas de remise en question de l'architecture existante.
En parallèle, libvirt s'impose dans le monde du logiciel libre, comme une librairie d’interfaçage avec les machines hôtes, gommant certaines contraintes propriétaires.
C'est ce support qui a été choisi par le projet Archipel, qui se place résolument dans une optique de réutilisation maximale des existants, afin d'apporter une solution stable. Par exemple, les protocoles de dialogues entre entités utilisent XMPP (Extensible Messaging and Presence Protocol), le client web utilise le framework Cappuccino, l'implémentation de XMPP la librairie Strophe, la partie VNC, noVNC.
Archipel permet, via son système de permissions, de donner accès à des utilisateurs authentifiés, uniquement à certaines ressources de gestion: reboot, accès à la console VNC, modification, des réseaux, redéfinitions de paramètres...
Toutes les entités (utilisateurs, VM, hyperviseurs) sont identifiées par des comptes au niveau XMPP. C'est un agent sur chaque hyperviseur qui expose sa présence, ainsi que pour chaque VM.
La gestion de la liste de contacts au niveau du serveur XMPP, permet d'avoir une sécurité supplémentaire entre les entités. L'utilisation conjointe de la technologie PubSub et des événements de libvirt permet d'avoir une application asynchrone, donc résistant mieux aux montées en charge.
Le client de supervision est une application en HTML5, le dialogue avec les composants se fait également via XMPP.
Le déploiement d'Archipel est possible sur une infrastructure libvirt en production, sans interruption de service. Cela vous permettra de le tester, et sans doute, de l'adopter !
Documents