Quelqu'un utilise-t-il des machines virtuelles pour le développement Web et pourquoi? [fermé]

10

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.

7wp
la source
Outre la virtualisation, il existe également des systèmes basés sur l'image comme Squeak et Pharo (un dérivé de squeak).
Jesse Millikan
@Jesse Millikan Je ne sais pas ce que tu veux dire. Squeak et Pharo ne sont-ils pas un langage de programmation? J'essaie de comprendre comment ils sont liés aux machines virtuelles.
7wp

Réponses:

20

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:

  • C'est difficile de changer d'ordinateur, même s'il est juste à côté de vous
  • Il est extrêmement facile de restaurer une machine virtuelle pour avoir un environnement de test propre
  • Je préfère utiliser un environnement que les utilisateurs vont utiliser plutôt que des kludges comme IETester, et vous ne pouvez généralement pas exécuter plusieurs versions d'IE en même temps.
  • Il est moins coûteux d'exécuter plusieurs instances de VM que d'acheter plusieurs ordinateurs de test
  • Les machines virtuelles, du moins celles pour Mac OS X, sont devenues si bonnes au cours des deux dernières années que la stigmatisation "lente" donnée aux machines virtuelles est injustifiée.

la source
2
Les machines virtuelles fonctionnent bien dans le sens de la vitesse, mais uniquement si vous avez la mémoire disponible pour en prendre correctement en charge une.
Matthew Scharley,
@Matthew: Oui, mais la plupart des ordinateurs sont livrés de nos jours avec la norme de 4 Go, et pour un développeur Web, cela suffit pour exécuter au moins une (sinon deux) machines virtuelles simultanément.
7

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.

Matthew Scharley
la source
3

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.

Casey
la source
2

Les environnements de test sont importants comme d'autres l'ont mentionné.

  • test du navigateur (ie, safari, etc, ...)
  • environnement de test propre
  • facile d'avoir plusieurs configurations
  • tests d'accessibilité (lecteurs d'écran et similaires)

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.

Chris
la source
2

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. ; )

Jamo
la source
1

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.

bogeymin
la source
1

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.

davewasthere
la source
0

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.

David_001
la source
0

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.

Tamara Wijsman
la source
Des choses comme Portable IE, Expression SuperPreview, IETester sont , à toutes fins utiles, des environnements virtualisés. Vous n'êtes pas en train d'exécuter une copie réelle des anciennes versions d'IE, et dans le cas de choses comme SuperPreview et IETester, vous n'avez même pas accès au chrome du navigateur ou à l'architecture du plugin. Au-delà d'IE, vous n'avez pas accès aux autres versions d'OS des mêmes navigateurs. Par exemple, Safari sur Mac OS X possède des fonctionnalités qui n'existent pas sur Safari pour Windows, et Chrome pour Mac est généralement en retard sur Chrome pour Windows.
Non non Non! IE portable, Expression SuperPreview, IETester exécuté en natif sur votre système, aucune virtualisation n'est impliquée. Vous exécutez une copie réelle qui a été ajustée pour s'exécuter dans l'environnement actuel et a le même comportement ... Il n'est pas nécessaire d'avoir accès à l'architecture du navigateur ou du plug-in du navigateur lors du développement Web. Pour Safari, les fonctionnalités supplémentaires ne sont à nouveau pas pertinentes pour le développement Web multi-navigateur. Pour Chrome, les versions peuvent être utilisées simultanément ... Si l' on a vraiment besoin de tester chaque version du navigateur sur chaque version du système d'exploitation , il est browsershots.org à cette fin.
Tamara Wijsman
Essayez de tester l'intégration avec plusieurs versions d'Office. Les machines virtuelles sont toujours incroyablement pratiques à avoir.
davewasthere
@davewasthere: Et comment Office est-il lié au développement Web? Je suis sûr que les machines virtuelles ont leur utilité pour diverses choses, mais pour le développement Web, vous vous en sortez bien ... Même plusieurs versions d'Office et de Visual Studio peuvent être installées ensemble sans machine virtuelle, mais en fait, il y a des limites et des compromis où vous vraiment besoin d'une VM.
Tamara Wijsman
@TomWij - J'ai un client avec une application intranet dans ASP.Net qui s'intègre à Word. Puisqu'ils utilisent plusieurs versions d'Office, il est agréable de pouvoir avoir une image avec chaque version installée. Je sais qu'il est possible de côte à côte Office et IE. Mais en réalité, je trouve cela pénible. Les machines virtuelles semblent juste beaucoup plus propres / plus faciles ...
davewasthere
0

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/

pete otaqui
la source