Recomenda-se que os desenvolvedores trabalhem em máquinas virtuais locais para o desenvolvimento? [fechado]
Duplicate
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?
10 answers
-
É 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.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.
Certifica-te apenas que tens RAM suficiente para permitir vários VMs e o sistema operativo.
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.
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 :-)
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.
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).
Comece com alguns desenvolvedores e tente reunir alguns dados reais sobre a mudança de produtividade.