Depuis quelques mois j’entends parler de virtualisation. Voici un rapide résumé de cette technique (issu de l’article « Développeurs: Virtualisez votre environnement » du magazine Programmez N°96, avril 2007).
Prérequis: pour utiliser la virtualisation il faut:
- une machine récente (2007) multiprocesseur ou multicoeur
- 1 Go de mémoire vive
- un gros disque dur en local
- un écran de 17 ou 19 pouces.
Liens:
D’après wikipedia la virtualisation désigne l’ensemble des techniques matérielles et/ou logicielles qui permettent de faire fonctionner sur une seule machine plusieurs systèmes d’exploitation et/ou plusieurs applications, séparément les uns des autres, comme s’ils fonctionnaient sur des machines physiques distinctes. Les outils de virtualisation servent à faire fonctionner ce qu’on appelle communément des serveurs privés virtuels (« Virtual Private Servers » ou VPS) ou encore environnements virtuels (« Virtual Environments » ou VE).
Pourquoi virtualiser:
- pour tester son projet sans risque de problèmes pour son système
- créer des machines de tests avec différents systèmes et environnements de fonctionnement
- tester de nouveaux outils
- tester un site web sur différentes platesformes
- simuler le déploiement
- monter et démonter rapidement des systèmes
- utilisation optimale des ressources d’un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives),
- installation, déploiement et migration facile des machines virtuelles d’une machine physique à une autre, notamment dans le contexte d’une mise en production à partir d’un environnement de qualification ou de pré-production, livraison facilitée,
- économie sur le matériel par mutualisation (consommation électrique, entretien physique, monitoring, support, compatibilité matérielle, etc.)
- installation, tests, développements, cassage et pouvoir recommencer sans casser l’OS hôte
- sécurisation et/ou isolation d’un réseau (cassage des OS virtuels, mais pas des OS hôtes qui sont invisibles pour l’attaquant, tests d’architectures applicatives et réseau)
- isolation des différents utilisateurs simultanés d’une même machine (utilisation de type site central)
- allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,
- diminution des risques liés au dimensionnement des serveurs lors de la définition de l’architecture d’une application, l’ajout de puissance (nouveau serveur etc) étant alors transparent.
Exemples :
- QEMU : émulateur de plateformes x86, PPC, Sparc
- Plex86 : émulateur de plateforme x86
- bochs : émulateur de plateforme x86
- PearPC : émulateur de plateforme PPC sur matériel x86
- VMWare : propriétaire, émulateur de plateforme x86
- Microsoft VirtualPC et VirtualServer : propriétaire, émulateur de plateforme x86
- Lismoresystems Guest PC : propriétaire, émulateur de plateforme x86 sur matériel PPC
- MacOnLinux : émulateur de plateforme Mac OS sur Linux PPC
- VirtualBox : émulateur de plateforme x86
- Parallels : propriétaire, émulateur de plateforme x86 pour Mac OS X.
- etc…