Je vois quelques développeurs qui aiment utiliser des machines virtuelles pour le développement Web. Y en a-t-il d'autres qui font ça? S'il y en a, pourquoi le faites-vous? Y a-t-il des avantages / inconvénients à développer sur une machine virtuelle plutôt que dans un environnement non virtualisé?
Je pense que les choses sont plus lentes dans une machine virtuelle.
Réponses:
J'utilise des machines virtuelles pour les tests IE. J'ai une machine Windows dédiée, mais je penche pour l'utilisation de machines virtuelles pour plusieurs raisons:
la source
L'autre raison pour laquelle les gens utilisent une machine virtuelle pour le développement Web est de virtualiser un environnement de serveur qu'ils peuvent désactiver très facilement.
À la maison, j'utilise toujours une machine virtuelle pour configurer des projets personnels afin de pouvoir tout désactiver complètement quand je veux, disons, jouer à un jeu. Dans un environnement de travail, vous souhaiterez peut-être le désactiver afin de disposer de toutes les ressources pour transcoder une vidéo en FLV.
Il vous donne simplement cette flexibilité pour faire ce que vous voulez avec vos ressources.
la source
Je préfère utiliser des machines virtuelles pour à peu près tout le développement ... surtout lorsque je travaille avec une équipe de développeurs. Les machines virtuelles me permettent de créer un "environnement dans une boîte" qui peut être rapidement configuré avec peu de maux de tête. Puisque j'utilise un MBP comme machine principale, je préfère VMWare ... c'est beaucoup moins douloureux, surtout dans un environnement "principalement Windows".
En ce qui concerne la vitesse, elle varie honnêtement d'une configuration à l'autre. Les seuls vrais problèmes que j'ai vus avec la vitesse de la machine virtuelle concernent a.) Le manque de ressources physiques (mémoire, etc.) ou b.) L'allocation insuffisante de ressources à votre machine virtuelle. Sinon, je préfère réellement travailler dans une machine virtuelle Windows sur mon Mac plutôt que sur une boîte native.
la source
Les environnements de test sont importants comme d'autres l'ont mentionné.
J'ai une machine virtuelle strictement pour le profilage et le débogage de mon code qui a déjà configuré kcachegrind, ainsi que sélénium, xdebug et quelques autres outils configurés pour profiler et déboguer facilement mon code. Oui, certains peuvent dire que c'est déjà ce que serait un environnement de développement, mais personnellement, j'aime avoir une machine virtuelle sur mon bureau dédiée à ce genre de tâche.
En outre, concernant la lenteur dans une machine virtuelle:
Les choses sont plus lentes dans une machine virtuelle en raison de la surcharge nécessaire pour «virtualiser» l'environnement. Cependant, la machine virtuelle se rapproche de plus en plus de l'hyperviseur, ce qui réduit les frais généraux requis pour la machine virtuelle.
la source
J'utilise des machines virtuelles tout le temps. À des fins de test, le raisonnement est évident, mais je l'utilise également pour mon environnement de développement réel, principalement parce que 1) il facilite la migration vers un nouveau matériel et 2) il me donne un "instantané" (ou un ensemble de instantanés) se replient au besoin pour ces configurations de mon environnement de développement. Mes besoins peuvent être uniques - je suis principalement un développeur Delphi utilisant plusieurs versions de Delphi et de nombreux composants tiers - mais le temps et les maux de tête que mon environnement de développement à l'intérieur d'une machine virtuelle a sauvés, ne pourraient probablement pas être surestimé.
Cela dit, ne lésinez pas sur la boîte sur laquelle vous les exécutez, surtout en ce qui concerne la mémoire. ; )
la source
Ceci est une réponse tardive. Je suis d'accord avec tous les points de la réponse acceptée, mais je voulais ajouter que j'utilise des machines virtuelles exclusivement pour le développement Web, et pas seulement pour les tests. Je suis sur un iMac utilisant VirtualBox pour exécuter Windows, Fedora et Ubuntu - parfois tout à la fois. Je n'ai aucun problème de performance.
Je préfère travailler de cette façon car je travaille pour des clients utilisant à la fois des serveurs Fedora et Ubuntu et cela me permet de faire correspondre étroitement l'environnement de développement avec l'environnement de production. Cela fait également de moi un meilleur administrateur système dans les domaines les plus importants du point de vue du développement.
la source
Nous avons trouvé que l'utilisation de machines virtuelles était un bon moyen de conserver une configuration de développement spécifique au client.
Dans une ancienne société de conseil, Devs savait que le démarrage d'une machine virtuelle spécifique signifiait que vous disposiez d'un environnement de travail pour développer / tester et déployer le logiciel que nous avons pris en charge pour ce client. Particulièrement utile lors de la prise en charge de certains vrais systèmes excentriques.
Pour les nouvelles applications, vous disposeriez de la dernière et de la meilleure configuration sur votre machine principale de développement. Mais qu'en est-il lorsque vous devez corriger une ancienne application VB6 que votre entreprise prend toujours en charge. Envie d'installer Visual Studio 6 sur votre belle machine VS2010 propre? Je ne pense pas!
Cela signifiait également qu'il était assez facile pour tout développeur de prendre en charge n'importe quel client.
la source
J'ai certainement utilisé des machines virtuelles pour tester des sites Web, mais pas pour écrire du code.
L'avantage des machines virtuelles est que vous pouvez configurer différents systèmes d'exploitation et navigateurs pour tester les inévitables bogues CSS que vous découvrirez dans IE6 / 7/8.
la source
Je ne vois pas de raison de développer des sites Web dans une machine virtuelle, il n'est pas nécessaire pour un utilisateur Windows.
Vous pouvez tout exécuter dans une installation de Windows (IE portables, Chrome, Firefox, Safari, ...),
vous pouvez également utiliser Expression SuperPreview pour entrer dans un nouveau monde de tests multi-navigateurs.
la source
J'utilise une machine virtuelle pour mapper les sous-domaines de virtualbox.me (je possède le domaine) aux sous-répertoires d'un dossier sur ma machine hôte partagé avec l'invité.
Avec cette configuration, je crée simplement un nouveau répertoire et j'ai immédiatement un nouveau projet sous son propre sous-domaine, c'est-à-dire / home / pete / virtualwww / my-super-project mappe vers http://my-super-project.virtualbox.me/
J'ai écrit un guide pour répliquer cela (il utilise mod_vhost_alias et VirtualDocumentRoot) ici:
http://otaqui.com/blog/1652/setting-up-a-virtualbox-virtual-machine-for-web-development-with-multiple-sites-using-mod_vhost_alias-and-virtualdocumentroot/
la source