Développeurs! Tous Up avec Vagrant

On a des choix énormes pour construire notre environnement de développement web. L’habitude était d’installer des pré-construits “tout-en-un” programmes serveurs, tels que WAMPP (Windows Apache MySQL PHP Protocole ou XAMP la version “friendly” pour Linux et Mac. En mode expert, on peut installer les logiciels directement et ce casser la tête à la configuration.
Pour travaillez sur différents projets comme PHP 5.6 et PHP 7, MySQL, SQLite, MongoDB, NodeJS, Postgres, PEAR, PHPUnit, Rails 3.1, etc on installe tous ces outils sur notre ordinateur ce qui lui rend trop lent et peut devenir infernal.
Il est préférable d’avoir une machine en locale, en l’utilisant comme un serveur sur le réseau avec les partages Samba ou un serveur SSH. Cette dernière peut conduire à des temps de latence sur les fichiers I/O, qui sont extrêmement ennuyeux. Cette idée peut être utile et extrêmement importante de nous assurer que notre environnement de développement est identique à l’environnement de production, et qui correspond à la même architecture système de point de vue RAM, Nombre de coeurs et la connexion Internet.
Si vous venez de penser à installer Apache, PHP et My Sql, il faut penser à un facteur très important. Si vous développez sur Windows8 et déployait sur un système Ubuntu, vous remarquerez qu’il y a des problèmes liés aux fichiers commençant par une capitalisation. Ce qui est commun dans Cakephp, quand quelqu’un développe un plugin avec une première lettre en minuscule. Il le chargera bien sûr sur OSX/Win8, mais ça va briser lorsqu’il est déployé à la production(Linux). Le processus de développement aurait pu simplement vous perdre certaines affaires, à cause de la différence des OS que personne ne pensaient jusqu’à ce qu’il soit trop tard.
Alors, quelle est la solution? Forcer tous vos développeurs à jeter leurs différents outils et de développer sur le même modèle exact de l’ordinateur portable?
Vous pouvez utiliser Linux, dans ce cas il faut se battre sur la distribution à utiliser. Forcer les développeurs à utiliser le même système d’exploitation va entraîner des problèmes et la réduction de la productivité. Un développeur qui utilise Ubuntu/Debian se trouve mal à l’aise sur Red Hat ou Arch Linux et surtout que la majorité aime Windows.
La virtualisation est la réponse, mais quand les gens pensent de la virtualisation, ils pensent souvent des problèmes de performance et leurs ventilateurs tourner follement alors que leur ordinateur portable tente désespérément d’exécuter deux systèmes d’exploitation.
Cela peut être encore le cas en essayant d’exécuter Windows sur une machine de faible puissance, mais ces jours-ci, un PC en moyenne dispose de 4 Go de RAM hors de la boîte, ce qui est plus que suffisant pour alimenter une installation d’un serveur Ubuntu fonctionnant en mode ligne de commande et tous vos outils habituels de développement (IDE, navigateur, outils de déboggage, etc). Il ya quelques options pour la virtualisation, mais je préfère VirtualBox d’Oracle (qui est gratuit). Ce logiciel fait tout le levage lourd pour la virtualisation, puis un outil appelé Vagrant peut gérer tous ces cas.
https://www.youtube.com/watch?v=WF3X2zzLoPI
PS: Si votre ordinateur est vieux vous risquez de le nuire avec Vagrant.