Recomenda-se que os desenvolvedores trabalhem em máquinas virtuais locais para o desenvolvimento? [fechado]

Duplicate

Razões para utilizar uma VM para o desenvolvimento

Estou a tentar estabelecer uma política na minha empresa, onde todos os programadores têm de trabalhar numa máquina virtual (por exemplo, estações de trabalho VMWare) que tenha o dev. ambiente como IDE, ferramentas, pacotes de serviço já instalados para tornar mais fácil para novos comedores de equipe, mais fácil para fornecer novas máquinas, etc...

recomenda tal abordagem ou trabalha de forma semelhante na sua companhia?

Author: Community, 2009-04-13

10 answers

Tenho um colega que gosta de trabalhar assim. Ele tem uma máquina virtual para cada projecto em que trabalha. Pessoalmente, não gosto de usar uma máquina virtual para fazer o desenvolvimento.
    É mais lento do que trabalhar directamente a minha máquina. Não faz múltiplos. monitores bem.

Não protejam os vossos devs de saber os detalhes mais importantes sobre IDEs, ferramentas e pacotes de serviço. Eles precisam de saber estas coisas.

Além disso, não force os seus devs. para trabalhar de uma certa maneira. Alguns podem não estar felizes com isso, e devs infelizes = devs menos produtivos.
 14
Author: Matt Brunell, 2009-04-13 21:25:29
Trabalhei com ambos os métodos durante anos. Actualmente uso VMs. Eles têm muitas vantagens. No entanto, não force ninguém de uma maneira em particular. Não serão produtivos se forem forçados. Se conseguires, convence-os.

Vantagens da VM para o Dev:

  • implantação muito rápida: um voluntário atualiza a imagem com o mais recente e personalizado, e todos recebem o benefício.
  • Cada projeto pode obter uma cópia separada, sem interferência e sem conflitos.
  • Muito simples de "congelar" tudo e reiniciar! Não há necessidade de salvar, fechar, correr, carregar...
  • Quando as coisas correm mal, é uma imagem, contorna-a, clona uma nova e verifica o teu código.
  • congelar durante a depuração ou teste (às vezes você quer capturar um estado específico). Instantâneos ajudam se você quiser voltar e repetir algumas ações (teste de pensamento).
  • O VMWare tem depuração remota e execução atrasada!
  • Reprodutibilidade! Você devs e testadores podem reproduzir bugs desde que o o ambiente é controlado (assumindo que nada além do trabalho está na imagem) e com estados salvos (assumindo que eles usam instantâneos).

Por outro lado, existem desvantagens:

    Os VMs são mais volumosos, ocupam muito espaço e memória. Não terás 100% do teu desempenho em hardware. Vai perder algum tempo na manutenção da imagem. Algumas pessoas detestam.
 3
Author: Ash, 2009-04-13 16:05:38
Eu recomendo a utilização de máquinas virtuais para o desenvolvimento. As máquinas virtuais locais têm muito pouca penalidade de desempenho e tornam muito mais seguro experimentar novas ideias/software.

Certifica-te apenas que tens RAM suficiente para permitir vários VMs e o sistema operativo.

Veja Também

 2
Author: Chris Nava, 2017-05-23 11:52:04
Onde trabalho nos mandatos políticos de que todos temos uma máquina física que gere uma VM. Só temos privilégios de administrador para a VM e não para a máquina física. Isso tende a criar problemas quando temos que executar várias aplicações de desenvolvimento, builds tendem a ser lentos, tudo é lento para esse fato. Também quando o VM começa a atingir o limite de 15gb (cerca de um mês e meio de uso) as coisas se complicam à medida que o VMs começa a bater e precisamos pedir compressão VM.

A Minha a experiência tem sido má, por isso não recomendo. Normalmente executamos as seguintes aplicações no VM: editores de texto, IDE, instância Weblógica, TOAD para acesso a banco de dados. Explorer e Firefox, aplicações de escritório e menos.

 1
Author: Nuno Furtado, 2009-04-13 15:09:44
Pessoalmente, embora sinta que é uma boa ideia por todas as razões que mencionou, também acho que requer um pouco de custo extra nas máquinas. Eu estava apenas tentando fora do Windows 7 durante o fim de semana em VMWare e uma máquina moderada (AMD X2 4600, 2 GB RAM) eu acho que trabalhar em um VM pode muito mais ser uma experiência pior do que trabalhar em cima do hardware real.
 1
Author: Kibbee, 2009-04-13 15:13:52

Em alguns casos, como fazer o trabalho do SharePoint dev, você é mais ou menos obrigado a trabalhar em um servidor, e eu simplesmente não gosto da idéia de transformar meu laptop em um servidor de 2003/2008: -)

Temos duas caixas de VMware ESX que hospeda as nossas máquinas dev e funciona muito bem desde que as pessoas se lembrem de desligar as imagens que não estão em uso. Outra vantagem é que temos uma rede completa de imagens ESX em seu próprio domaine, o que nos dá a capacidade de fazer um monte de coisas engraçadas :-)

 1
Author: Kasper, 2009-04-13 21:48:38

Com o IDEs moderno há um monte de gráficos e disco IO acontecendo, nenhum dos quais é bem executado por VMs. Então-se o seu VM responde rápido o suficiente para os desenvolvedores usarem, então eu diria que não há razão para não o fazer. Se isso não acontecer, você precisa obter uma máquina mais rápida para eles ou voltar a documentar como configurar o ambiente de construção.

O outro fator contra VMs é que se você mudar o ambiente, você tem que fazê-lo para todos os VMs, e documentar as mudanças de qualquer maneira. Se está a dizer a toda a gente como montar o seu sistema, mais vale deixá-los montar o seu próprio sistema no metal base.

A propósito, temos VMsa para isso - mas eles tendem a ser para versões antigas do produto, então ainda podemos construí-lo sem ter que instalar os pacotes de serviço antigos, sdks e compiladores. Está bem, mas acho que instalar tudo localmente e mudar entre eles (usando junction para apontar para os diretórios de compilação) é mais fácil.

Agora a IIRC VMware tem um um projecto de virtualização chamado thinApp que coloca de forma transparente um ambiente de SO na sua caixa local, para que possa ter várias aplicações em conflito a correr lado a lado. Eu não o usei, mas olhei para ele como algo que pode ser melhor do que um VMS inteiro correndo em suas próprias janelas.

 0
Author: gbjbaanb, 2009-04-13 15:06:16
Na nossa loja, usamos todos os VM para o desenvolvimento. Uma estratégia útil que temos empregado para aumentar o desempenho VM, é sempre executá-los em um disco rígido externo de alta velocidade. Fazendo isso os faz correr incrivelmente rápido, uma vez que VM é geralmente uma demanda um monte de IO disco, como o post anterior mencionado.
 0
Author: James, 2009-04-13 15:33:11

Existem razões válidas para utilizar VMs para o desenvolvimento. No entanto, se você está pensando em fazer isso apenas para padronizar ambientes de desenvolvimento em toda a sua organização, existem melhores maneiras de realizar isso (ou seja, ter imagens padrão de máquina).

 0
Author: TheSmurf, 2009-04-13 15:52:05

Comece com alguns desenvolvedores e tente reunir alguns dados reais sobre a mudança de produtividade.

 0
Author: David Plumpton, 2009-04-13 21:32:47