ti-enxame.com

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

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 em desenvolver em um VM em vez de em um ambiente não virtualizado?

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

10
7wp

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

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

A outra razão pela qual as pessoas usam um VM para desenvolvimento web é para virtualizar um ambiente de servidor que eles podem desligar com facilidade.

Em casa, sempre uso um VM para configurar projetos pessoais, de modo que posso desligar tudo quando quero, digamos, jogar um jogo. Em um ambiente de trabalho, você pode querer ativar para que você tenha todos os recursos para transcodificar um vídeo para FLV.

Isso apenas oferece a flexibilidade de fazer o que quiser com seus recursos.

7
Matthew Scharley

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

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

3
Casey

Os ambientes de teste são importantes, como outros mencionaram.

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

Eu tenho um VM estritamente para criar perfis e depurar meu código que já possui o kcachegrind configurado, junto com Selenium, xdebug e algumas outras ferramentas configuradas para facilmente criar perfis e depurar meu código. Sim, alguns podem dizer isso é o que já seria um ambiente de desenvolvimento, mas pessoalmente gosto de ter um VM no meu desktop dedicado a este tipo de tarefa.

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

As coisas estão mais lentas em um VM devido à sobrecarga requer "virtualizar" o ambiente. No entanto, o VM está se tornando cada vez mais perto do hipervisor, o que diminui a sobrecarga necessária para a VM.

2
Chris

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

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

2
Jamo

Descobri que usar VMs é uma boa maneira de manter uma configuração de desenvolvimento específica do cliente.

Em uma empresa de consultoria anterior, Devs sabia que disparar um VM específico significava que você tinha um ambiente de trabalho para desenvolver/testar e implantar o software que fornecíamos suporte para esse cliente. Particularmente útil ao dar suporte a algum estranho real sistemas.

Para novos aplicativos, você teria a melhor e mais recente configuração em sua máquina Dev principal. Mas e quando você precisar consertar algum aplicativo VB6 antigo que sua empresa ainda suporta. Gostaria 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 Dev oferecer suporte a qualquer cliente.

1
davewasthere

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

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

1
bogeymin

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

Com essa configuração, acabo de criar um novo diretório e imediatamente tenho um novo projeto em seu próprio subdomínio, ou seja,/home/pete/virtualwww/my-super-project mapeia para http: // my-super-project. virtualbox.me/

Eu escrevi um 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/ =

0
pete otaqui

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 ​​bugs de CSS que você descobrirá no IE6/7/8.

0
David_001

Não vejo razão para desenvolver sites em uma máquina virtual, não há necessidade disso para um usuário Windows.

Você pode executar tudo em uma instalação do Windows (IEs portáteis, Chrome, Firefox, Safari, ...),
como alternativa, você pode usar Expression SuperPreview para entrar em um novo mundo de testes em vários navegadores.

0
Tamara Wijsman