@Forest
La virtualisation permet de s’affranchir des ressources matérielles.
Un exemple simple : la Java VM pour exécuter des applets. L’applet s’exécutera sur tout système disposant d’une JVM, sans qu’il soit nécessaire de recompiler le code.
Je connais des équipes de développement qui utilisent VMWare pour raccourcir et sécuriser le cycle de développement d’un socle technique pour PC (i.e. un OS, des logiciels métier, des applications diverses, des paramétrages particuliers, etc.). Ce socle technique se traduit par un CD ou un DVD prêt à l’emploi, adapté au métier en question. Evidemment, au cours de ces développements, il peut y avoir des erreurs. Afin d’être sûr que ces erreurs n’auront pas de conséquence dans la version finale, il faut repartir d’un état antérieur valide. Sans VM, cela signifie réinstaller l’OS, effectuer toutes les opérations jusqu’au point d’erreur et adopter une autre stratégie, ce qui est très long et fastidieux. Avec une VM, il suffit de sauvegarder un état et de reprendre le développement à partir de cette sauvegarde.
Techniquement, ils installent un OS (Windows par exemple) dans une machine virtuelle. Cette installation produit un simple fichier contenant le système installé, qu’ils peuvent personnaliser à volonté. Au travers de la VM, ils peuvent voir l’OS comme s’il était installé sur un PC (bureau, exploration de fichiers, logiciels installés, etc...). Au lieu de réinstaller complètement un PC, ils suffit qu’ils copient un fichier pour repartir d’un état donné.
La virtualisation a également des intérêts en exploitation. Je connais une société qui, dans le passé, a multiplié les serveurs pour faire fasse aux problèmes de montée en charge de leurs applicatifs (des dizaines de milliers d’utilisateurs et de nouvelles applications régulièrement). Au fur et à mesure que de nouvelles applications sont développées, les serveurs peuvent être sous-dimensionnés. La virtualisation des serveurs permet de réaffecter des espaces en fonction des évolutions, sans qu’il soit nécesaire de changer les serveurs.
On troque une architecture matérielle physique rigide, contre une architecture virtuelle plus souple, au prix d’un compromis avec la vitesse d’exécution. Lorsque l’on utilise correctement ces technologies, les résultats sont malgré tout largement acceptables.