Alguém usa máquinas virtuais para desenvolvimento web e por quê? [fechadas]

10

Eu vejo alguns desenvolvedores que gostam de usar máquinas virtuais para desenvolvimento web. Existem outros que fazem isso? Se houver, por que você faz isso? Existem prós / contras no desenvolvimento de uma VM em vez de em um ambiente não virtualizado?

Eu acho que as coisas são mais lentas em uma VM.

7wp
fonte
Além da virtualização, também existem sistemas baseados em imagem como Squeak e Pharo (um derivado de squeak).
precisa
@ Jessie Millikan Não sei o que você quer dizer. Squeak e Pharo não é uma linguagem de programação? Estou tentando entender como eles se relacionam com máquinas virtuais.
7wp

Respostas:

20

Eu uso VMs para teste do IE. Eu tenho uma máquina Windows dedicada, mas me inclino a usar VMs por alguns motivos:

  • É um aborrecimento trocar computadores, mesmo que esteja ao seu lado
  • É extremamente fácil reverter uma VM para ter um ambiente de teste limpo
  • Prefiro usar um ambiente que os usuários realmente usem, em vez de kludges como o IETester, e você geralmente não pode executar várias versões do IE ao mesmo tempo.
  • É mais barato executar várias instâncias de VM do que comprar vários computadores de teste
  • As VMs, pelo menos as do Mac OS X, ficaram tão boas nos últimos dois anos que o estigma "lento" dado às VMs é injustificado.

fonte
2
As VMs são ótimas no sentido da velocidade, mas apenas se você tiver memória sobressalente para suportar uma corretamente.
Matthew Scharley
@ Matthew: Sim, mas a maioria dos computadores hoje em dia vem com o padrão de 4 GB e, para um desenvolvedor da Web, basta executar pelo menos uma (se não duas) VMs simultaneamente.
7

A outra razão pela qual as pessoas usam uma VM para desenvolvimento da Web é virtualizar um ambiente de servidor que pode desativar com muita facilidade.

Em casa, eu sempre uso uma VM para configurar projetos pessoais, para poder desligar tudo quando quiser, digamos, jogar um jogo. Em um ambiente de trabalho, você pode desativá-lo para ter todos os recursos para transcodificar um vídeo em FLV.

Ele apenas oferece flexibilidade para fazer o que você deseja com seus recursos.

Matthew Scharley
fonte
3

Prefiro usar VMs para praticamente todo o desenvolvimento ... especialmente quando estou trabalhando com uma equipe de desenvolvedores. As VMs permitem criar um "ambiente em uma caixa" que pode ser configurado rapidamente com pouca dor de cabeça. Como uso o MBP como minha máquina principal, prefiro o VMWare ... é muito menos doloroso, especialmente em um ambiente "principalmente Windows".

No que diz respeito à velocidade, ela varia honestamente de instalação para instalação. Os únicos problemas reais que eu já vi com a velocidade da VM envolvem: a) não ter recursos físicos suficientes (memória, etc.) ou b.) Não alocar recursos suficientes para a sua VM. Caso contrário, eu realmente prefiro trabalhar em uma VM do Windows no meu Mac do que trabalhar em uma caixa nativa.

Casey
fonte
2

Os ambientes de teste são grandes, como outros já mencionaram.

  • teste de navegador (ou seja, safari, etc, ...)
  • ambiente de teste limpo
  • fácil de ter várias configurações
  • teste de acessibilidade (leitores de tela e similares)

Eu tenho uma VM estritamente para criar perfil e depurar meu código, que já tem o kcachegrind configurado, junto com selenium, xdebug e algumas outras ferramentas configuradas para criar um perfil e depurar facilmente meu código. Sim, alguns podem dizer que isso já seria um ambiente de desenvolvimento, mas pessoalmente eu gosto de ter uma VM no meu desktop dedicada a esse tipo de tarefa.

Além disso, em relação à lentidão em uma VM:

As coisas são mais lentas em uma VM devido à sobrecarga necessária para "virtualizar" o ambiente. No entanto, a VM está se aproximando cada vez mais do hypervisor, o que diminui a sobrecarga necessária para a VM.

Chris
fonte
2

Eu uso máquinas virtuais o tempo todo. Para fins de teste, o raciocínio é óbvio, mas eu também o uso no meu ambiente de desenvolvimento real, principalmente porque 1) torna a migração para o novo hardware um acéfalo e 2) fornece um "instantâneo" fácil (ou conjunto de instantâneos) retornam ao necessário para essas configurações do meu ambiente de desenvolvimento. Minhas necessidades podem ser únicas - eu sou principalmente um desenvolvedor Delphi usando várias versões do Delphi e vários componentes de terceiros - mas a quantidade de tempo e dor de cabeça que meu ambiente de desenvolvimento dentro de uma máquina virtual salvou, provavelmente não poderia ser exagerado.

Dito isto, não economize na caixa em que os executa, especialmente quando se trata de memória. ; )

Jamo
fonte
1

Esta é uma resposta tardia. Concordo com todos os pontos da resposta aceita, mas queria acrescentar que uso VMs exclusivamente para desenvolvimento da Web, e não apenas para teste. Estou em um iMac usando o VirtualBox para executar o Windows, Fedora e Ubuntu - às vezes ao mesmo tempo. Não tenho problemas com o desempenho.

Prefiro trabalhar dessa maneira porque trabalho para clientes que executam servidores Fedora e Ubuntu e isso me permite corresponder estreitamente o ambiente de desenvolvimento ao ambiente de produção. Também me torna um melhor administrador de sistemas nas áreas mais importantes do ponto de vista do desenvolvimento.

bogeymin
fonte
1

Encontraram o uso de VMs uma boa maneira de manter uma configuração de desenvolvimento específica do cliente.

Em uma empresa de consultoria anterior, os Devs sabiam que iniciar uma VM específica significava que você tinha um ambiente de trabalho para desenvolver / testar e implantar o software suportado para esse cliente. Particularmente útil quando se suporta alguns sistemas reais de excêntricos.

Para novos aplicativos, você teria a melhor e mais recente configuração na sua máquina Dev principal. Mas e quando você precisa corrigir um aplicativo VB6 antigo que sua empresa ainda suporta. Gosta de instalar o Visual Studio 6 em sua adorável máquina VS2010 limpa? Acho que não!

Também significava que era muito fácil para qualquer desenvolvedor dar suporte a qualquer cliente.

davewasthere
fonte
0

Eu certamente usei máquinas virtuais para testar sites, mas não para escrever código.

O benefício das máquinas virtuais é que você pode ter diferentes sistemas operacionais e navegadores configurados para testar os inevitáveis ​​erros de CSS que você descobrirá no IE6 / 7/8.

David_001
fonte
0

Não vejo uma razão para desenvolver sites em uma máquina virtual, não é necessário para um usuário do Windows.

Você pode executar tudo em uma instalação do Windows (Portable IEs, Chrome, Firefox, Safari, ...). Como
alternativa , você pode usar o Expression SuperPreview para entrar em um novo mundo de testes entre navegadores.

Tamara Wijsman
fonte
Coisas como Portable IE, Expression SuperPreview, IETester são , para todos os efeitos, ambientes virtualizados. Na verdade, você não está executando uma cópia do mundo real de versões mais antigas do IE e, no caso de SuperPreview e IETester, nem sequer tem acesso ao cromo do navegador ou à arquitetura de plugins. Além do IE, você não tem acesso às versões de outros sistemas operacionais dos mesmos navegadores. Por exemplo, o Safari no Mac OS X possui recursos que não existem no Safari para Windows, e o Chrome para Mac geralmente fica atrás do Chrome para Windows.
Não não não! Portable IE, Expression SuperPreview, IETester são executados nativamente no seu sistema, não há virtualização envolvida. Você está executando uma cópia do mundo real que foi ajustada para ser executada no ambiente atual e tem o mesmo comportamento ... Não há necessidade de ter acesso ao cromo do navegador ou à arquitetura de plug-in durante o desenvolvimento na web. Para o Safari, recursos extras são novamente irrelevantes para o desenvolvimento da web em vários navegadores. Para o Chrome, as versões podem ser usadas simultaneamente ... Se alguém realmente precisar testar cada versão do navegador em cada versão do sistema operacional, haverá browsershots.org para esse fim.
Tamara Wijsman
Tente testar a integração com várias versões do Office. As VMs ainda são incrivelmente úteis.
Davewasthere 19/09/10
@davewasthere: E como o Office está relacionado ao desenvolvimento da Web? Tenho certeza que as VMs têm seu uso para várias coisas, mas para o desenvolvimento da Web você não tem problemas ... Mesmo várias versões do Office e Visual Studio podem ser instaladas juntas sem uma VM, mas, de fato, existem limites e vantagens em que você realmente precisa de uma VM.
Tamara Wijsman
@ TomWij - Eu tenho um cliente com um aplicativo de intranet no ASP.Net que se integra ao Word. Como eles usam várias versões do Office, é bom poder ter uma imagem com cada versão instalada. Eu sei que é possível lado a lado do Office e do IE. Mas, na realidade, acho uma dor. As VMs parecem muito mais limpas / mais fáceis ...
davewasthere 26/09
0

Eu uso uma máquina virtual para mapear subdomínios do virtualbox.me (eu possuo o domínio) para subdiretórios de uma pasta na minha máquina host compartilhada com o convidado.

Com essa configuração, eu apenas crio um novo diretório e imediatamente tenho um novo projeto em seu próprio subdomínio, por exemplo, / home / pete / virtualwww / my-super-project maps to http://my-super-project.virtualbox.me/

Eu escrevi o guia para replicar isso (ele usa mod_vhost_alias e VirtualDocumentRoot) aqui:

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
fonte