jeudi 18 juin 2009, par Brice Favre
Il y’a de cela quelques années, pour développer un site internet dynamique, il fallait disposer d’un serveur web et, bien souvent, les développeurs passaient sous linux. Ensuite il y’a eu EasyPHP, permettant de tester ses développements en local. Depuis ce produit à fait long feu mais d’autres ont suivi : WampServer ou XAMPP.
Toutefois, ces applications, très pratiques en soit, sont sujettes à de nombreux soucis liés, non pas à leurs conceptions, mais à la plateforme sur laquelle elles reposent. Windows est loin d’être calibré pour répondre à des besoins poussés. En clair, faire tourner une application un tant soit peu gourmande en fichiers relève du masochisme pur et simple. Donc de plus en plus de développeurs se tournent vers la mise en place de serveurs virtualisés Linux sur leur machines de travail.
Je ne vais pas détailler ici le principe complet de la virtualisation [1], mais plutôt parler des outils permettant d’arriver rapidement à la mise en place d’un serveur.
Le plus pratique est, à mon avis, Sun VirtualBox qui permet de créer et de gérer des machines de façons très simple. Il suffit d’installer le produit, de télécharger l’iso d’une machine Linux et c’est parti. On peut opérer la même chose sur la dernière béta de Windows 7 ou sur une version de test d’un serveur windows, c’est plutôt gourmand en espace disque.
L’autre outil majoritairement répandu est VMWare. Il propose une application serveur pour déployer des machines et une application player permettant de les utiliser. En parcourant le net, j’ai découvert sur le site ThoughtPolice proposant des images vmware toutes faites à utiliser avec le player. Ce site propose même des guides rapides de prise en main des différentes distributions proposés. Je n’ai par contre pas fait d’essai du serveur.
Il y’a énormément d’avantages à utiliser les machines virtuels qu’elle soient sous Linux ou sous Windows. Je vais en citer ici quelques uns, mais la liste est bien entendu non exhaustive.
Premier avantage, la performance. Si vous bossez en PHP, avec un framework ou une application un peu gourmande en fichier, une machine virtuelle Linux vous fera gagner un temps énorme et ceci malgré les ressources qu’elle prendra [2]. Les développeurs eZPublish ont vu leur vie changer du tout au tout.
Autre avantage, la facilité de déploiement d’un poste de développement. En clair, il suffit de préparer la machine une fois pour toute et la copier pour que tous les développeurs d’un même projet ai la même configuration de développement. Un gain de temps énorme et surtout la garantie de ne pas perdre du temps sur des questions d’incompatibilité.
Le découpage des applications est aussi un avantage certains. Plutôt que de tout déployer sur la même machine, de se retrouver avec des projets à tire-larigot, une VM minimale pour chaque projet vous permettra de mieux cloisonner vos projets. Pensez dans ce cas à faire un raccourci vers votre fichier hosts pour gérer votre DNS local.
On pourrait aussi citer d’autres avantages comme :
Tester le clustering.
Tester des nouvelles distributions.
Se frotter à la ligne de commande sans risque de tout casser.
Se former à l’administration Linux.
Préparer des postes de formations.
Être indépendant du système hôte et pouvoir développer quelque soit la machine.
La liste est vaste et je vous laisserai la compléter.
Après bientôt un an d’utilisation diverses, je vois quelques défauts aux VM dont il faut bien faire attention.
Tout d’abord, ça prends de la place. Il faut compter facilement 2 à 4go pour une VM de base et parfois beaucoup plus quand elle est lancée. Du coup les pauvres disques de 50Go sont à la peine. Sur ce point VirtualBox fait un peu mieux que VMWare avec un gestionnaire de disque plutôt pas mal foutu. L’avantage des images VMWare étant qu’elles sont plus facilement copiable, zippable et archivable. Pensez à acheter un disque dur.
Ensuite l’autre point où je n’ai pas trouver de solutions satisfaisante est le partage des données entre la machine virtuelle et le poste de développement. La meilleure solution à ce jour est de crée un partage samba et d’ouvrir un lecteur réseau. L’inconvénient est de bien penser à recréer ce lecteur réseau et lui associer une lettre de lecteur toujours fixe. Effectuer une création au démarrage est une bonne idée mais il ne faudra pas oublier de lancer la VM. En pratique ça va, on s’en sort mais parfois un oubli fait d’un coup ramé le poste. Merci Windows.
En conclusion je vous invite à vous laisser tenter par l’utilisation de VM. Aujourdhui la puissance des machines le permet et le gain est extraordinaire. Voici quelques liens pour aller plus loin. A suivre également, quelques posts sur des éléments que je suis en train de mettre en place pour des projets Zend Framework et Drupal.
Article sur LinuxMag : http://www.linux-mag.com/id/7266.
Télécharger des VM : ThoughtPolice.
Site de VirtualBox : http://www.virtualbox.com/
Site de VMWare : http://www.vmware.com/
[1] Pour cela rien de mieux que de se référer à wikipedia.
[2] En pratique si vous avez un processeur multi coeur vous ne sentirez quasiment rien.