ADR-0008 : Proxmox VE comme hyperviseur de virtualisation

   
Statut Accepté
Date 2025-10
Décideurs Équipe Edukit (dev + ops)
Périmètre Infrastructure d’hébergement, Edukit-VM

Contexte

Edukit doit créer et supprimer des machines virtuelles à la demande pour les étudiants. Quand une séance démarre, plusieurs dizaines de VM peuvent être créées en même temps ; quand elle se termine, elles sont toutes supprimées.

Pour que ça fonctionne, il faut un hyperviseur (le logiciel qui gère les VM) qui :

  • propose une API pour créer, configurer et supprimer des VM sans cliquer dans une interface graphique ;
  • soit gratuit - le projet est académique et ne peut pas payer de licences ;
  • permette d’ajouter des machines facilement si on a besoin de plus de capacité ;
  • soit opérable par une petite équipe avec des outils courants (scripts, client HTTP).

Décision

Utiliser Proxmox Virtual Environment (PVE) sur les serveurs physiques hébergeant Edukit.

  • VmService pilote Proxmox via son API REST avec un token d’accès dédié.
  • L’équipe OPS prépare à l’avance des templates (modèles de VM) pour chaque système d’exploitation. VmService clone un template à chaque création de VM - une seule requête API au lieu d’une dizaine.
  • La configuration réseau et utilisateur des VM est injectée via cloud-init (fichier déposé par SFTP avant le démarrage).
  • En production, la communication avec l’API Proxmox passe par HTTPS avec un certificat valide.

Conséquences

Bénéfices

  • Gratuit : Proxmox VE est open source (licence AGPLv3). Le support commercial est optionnel.
  • API complète : toutes les opérations dont on a besoin (clone, démarrage, arrêt, suppression, redimensionnement de disque) sont disponibles via l’API.
  • Extensible : ajouter un serveur au cluster Proxmox ne demande pas de modifier le code - VmService appelle la même API.
  • Bien outillé : il existe des providers Terraform, des rôles Ansible et des bibliothèques Python pour automatiser Proxmox. L’écosystème est actif.
  • Templates cloud-init : le clonage est rapide et VmService n’a pas besoin de connaître les URLs des images disques.

Coûts et limites

  • Pas de support officiel sans abonnement payant : les mises à jour sont disponibles gratuitement, mais sans garantie de support SLA. Pour un établissement, souscrire un abonnement peut être pertinent.
  • Compétences Linux requises : administrer Proxmox demande de maîtriser Debian, KVM et la gestion du stockage. L’équipe ops doit avoir ces bases.
  • Haute disponibilité : pour que Proxmox reste disponible si un serveur tombe en panne, il faut au moins trois nœuds dans un cluster. En dessous, une panne peut rendre les VM inaccessibles.

Alternatives écartées

  • VMware vSphere / ESXi : solution professionnelle très répandue, mais les licences sont devenues très coûteuses depuis le rachat par Broadcom. Incompatible avec le budget du projet.
  • Microsoft Hyper-V : bon choix dans un environnement tout-Windows, mais introduit une dépendance à Microsoft et des coûts de licences. Pas adapté ici.
  • Cloud public (AWS EC2, Azure VM) : facile à démarrer, mais le coût à l’usage est trop élevé pour un projet académique. Sans compter que les données des étudiants resteraient chez un hébergeur externe.

Références


Retour en haut