Pergunta

Recentemente, o zumbido de virtualização atingiu meu local de trabalho onde os desenvolvedores a experimentar as máquinas virtuais em seus computadores. Anteriormente eu tenho ouvido de vários desenvolvedores diferentes sobre a configuração de máquina virtual em seus computadores de mesa por causa de manter seus ambientes de desenvolvimento limpo.

Há uma abundância de produtos de software de máquina virtual no mercado:

Estou interessado em saber como você usa a virtualização de forma eficaz em seu trabalho. A minha pergunta é como você usa máquinas virtuais para o desenvolvimento do dia-a-dia e por que razão?

Foi útil?

Solução

Eu só construiu uma máquina beefy verdadeira em casa para que eu pudesse executar várias VMs ao mesmo tempo. Meu caso é provavelmente extremo embora, mas aqui é a minha lógica para fazê-lo.

Teste

Quando eu testar, particularmente um aplicativo de desktop, eu normalmente criar várias VMs, um para cada plataforma que o software deve ser executado em (Windows 2000 / XP / Vista etc). Se 32 e 64 sabores bit estão disponíveis, eu também construir um de cada. Eu também jogar com as configurações de hardware da VM (por exemplo, muita memória RAM, pouca RAM, 1 núcleo, 2 centrais, etc). Eu encontrei uma abundância de pequenos erros desta forma, que definitivamente teria feito isso para a vida selvagem se eu não tivesse usado essa abordagem.

Esta abordagem também torna mais fácil de jogar com diferentes cenários de software (o que acontece se o usuário instalar o programa não tem .NET 3.5 SP1? O que acontece se ele não tem componente XXX? Etc?

Desenvolvimento

Quando eu desenvolvo, eu tenho uma VM correndo os servidores de banco de dados (SQL2000 / 2005/2008). Isto por duas razões. Primeiro, é mais realista. Em um ambiente de produção o seu aplicativo provavelmente não está sendo executado na mesma caixa como o db. Por que não replicá-lo quando você desenvolve? Além disso, quando eu não estou desenvolvendo (lembre-se esta é também a minha máquina de casa), eu realmente preciso ter todos os serviços de banco de dados em execução? Sim, eu poderia ligá-los e desligado manualmente, mas a sua muito mais fácil mudar uma VM por diante.

clientes

Se eu quero mostrar um cliente algum trabalho web que eu fiz, eu posso colocar apenas uma única VM para a DMZ e ele pode entrar no VM e jogar com o projeto web, enquanto o resto da minha rede / computador é seguro.

Compatibilidade

Vista64 é agora a minha máquina principal. Qualquer hardware / software mais velhos que eu próprio não vai jogar bem com que o OS. Meus soluções é ter o Windows XP 32 como um VM para todos esses itens.

Outras dicas

O Aqui algo que não foi mencionado ainda.

Sempre que um projeto de entrar no modo de manutenção (aka abandonded), eu criar uma VM com todas as ferramentas, bibliotecas e código-fonte necessário para construir o projeto. Dessa forma, se eu tiver que voltar a ele um ano depois, eu não vou aposta pouco na bunda por quaisquer ferramentas atualizados ou bibliotecas na minha estação de trabalho.

Quando eu comecei na minha empresa atual, mais pessoal de apoio / dev / PM iria executar o Virtual PC com 1-3 VMs em seu desktop para testar.

Depois de alguns meses eu montar uma proposta e agora usamos um servidor VMware ESXi execução de um pool de máquinas virtuais (todos em 24/7) com ambientes diferentes para nossa equipe de suporte para os problemas dos clientes de teste e questões reproduzir em. Temos VMs do Windows 2000 / XP / Vista com cada um escritório 2000/2002/2003/2007 instalado (de modo que é 12 VMs) mais algum teste mais geral VMs, alguns Servidor 2003/2008 máquinas que executam o Citrix, Terminal Services, etc. Basicamente na maioria das vezes quando nós batemos uma nova configuração de cliente que precisamos de depuração, e é provável que outros clientes também têm essa configuração, eu vou configurar uma VM para ele. (Eg Nós só estamos usando três 64-bit VMs no momento -. Na maior parte é de 32 bits)

No topo do que o mesmo servidor executa um XP VM que eu uso para construir instaladores (InstallShield, WiX) de depuração (VS 2005) e localização (Lingobit), bem como uma segunda VM que nossos desenvolvedores usam para testes automatizados (TestComplete ).

O desenvolvimento e instalação VM foram alocados maior prioridade e são ambos configurados como dual-cpu VMs com 1GB de memória. Os restantes VMs têm igual prioridade e 256-1Gb RAM.

Tudo é executado em um Xeon dual-quad-core com 8 GB de RAM rodando ESXi e hardware RAID (4x1Tb RAID10)

Para pouco mais de US $ 2.5k investimento Melhoramos a produtividade 10 vezes (imagine o tempo de inatividade enquanto um Lackie apoio instala uma versão mais antiga do escritório em sua área de trabalho para replicar um problema do cliente, ou o tempo que eu não posso usar minha área de trabalho, porque estamos construindo instaladores). O próximo passo será duplicar a RAM 16GB como adicionar mais memória com fome Server 2008 e Vista VMs.

Nós ainda temos a VM estranho em nossos desktops (Eu tenho versões do Windows, Ubuntu e Windows 7 localizadas em execução no VMware Workstation, por exemplo), mas o comumente / configurações muito utilizadas foram descarregados para um servidor dedicado que pudermos tudo se conectar remotamente para. Muito, muito mais fácil.

A virtualização (com instantâneos ou discos não persistentes) é realmente útil para testar a instalação do software em uma configuração limpa conhecido (ou seja, nada que sobraram de instalações de buggy anteriores do seu software).

Ter sua caixa de desenvolvimento em um único arquivo (com uma máquina virtual), será muito mais fácil de backup e restauração se ocorrer um problema.

Além disso, você também pode transportar a sua caixa de desenvolvimento portátil máquinas em torno de diferentes, uma vez que você não está restrito em que única máquina especial que você normalmente trabalhar.

Não só isso, mas você pode teste em diferentes sistemas operacionais ao mesmo tempo, com um único sistema operacional instalado em um cada arquivo de máquina virtual que você tem.

Acredite, isso vai economizar bastante incómodo ao fazer os trabalhos que eu mencionei acima.

Outro caso de uso agradável para VMs é criar uma rede virtual de máquinas. Por exemplo, você pode trazer máquinas que executam os diferentes níveis de sua pilha de aplicativos, cada um executando em seu próprio VM. Pense nisso como datacenter de um homem pobre.

Estas VMs também podem aparecer disponível na rede física, assim você pode usar RDP ou semelhante para obter uma sessão de terminal remoto com eles.

Você pode ter uma máquina beefy (muita memória) em execução estas VMs, enquanto você acessá-los remotamente a partir de outra máquina, como um laptop, ou qualquer máquina que você tem com a melhor tela.

Eu uso uma máquina virtual no Windows para rodar o Linux. Mesmo que já existe uma versão do Emacs para janelas, usá-lo em Linux só se sente mais gratificante por algum motivo.

Manter computadores arquivado

Eu tenho a situação onde as escolas na minha região estão fechadas para baixo, mas o seu sistema de financiamento tem de ser mantido por até 2 anos para garantir que todas as contas pendentes são pagos. Isto costumava ser tratada pela manutenção do hardware do mothballed escolas que tiveram alguns problemas:

  • Este desperdício de recursos de hardware escassos e pegou um monte de espaço físico.
  • Oficiais de Finanças tinha que estar fisicamente presente no hardware para o trabalho em cada sistema.

Hoje eu anfitrião cada escola desativada em sua própria caixa virtual dentro de um único host físico. Cada sistema individual é acessado pela RDP sobre o número IP do hospedeiro, mas com o seu próprio número de porta e a segurança original de cada escola é mantida.

oficiais Finanças podem agora trabalhar em escolas desactivadas sem ter que viajar para onde eles estão localizados fisicamente, não há mais espaço físico na sala de servidores e backup de todas as escolas desactivadas ao mesmo tempo é um processo automatizado simples.

Com cada escola desativada em seu próprio vbox não há nenhuma maneira de contaminação cruzada de dados entre sistemas. Muitos milhares de dólares em hardware também é liberado para reafectação.

A virtualização parece ser a solução perfeita para este problema.

Eu usei a abordagem de virtualização usando VMWare Server quando a tarefa diante de mim era testar um ambiente em cluster do WebSphere Application Server. Depois de configurar VMWare Server eu criei uma nova máquina virtual e fez todas as instalações de software que eu precisaria como WebSphere App Server, Oracle, WebSphere Commerce etc, após o qual o desligamento i VM, e copiado sobre a imagem de disco rígido virtual para dois diferentes arquivos, um como um clone VM e outro como um backup.

Criado uma nova VM e atribuído a uma das imagens de disco copiados, então eu tenho dois sistemas em funcionamento agora o que me permitiu testar o mesmo cenário de um ambiente de cluster. Tirei uma foto da VM através VMware e se eu gozado com quaisquer actividades Gostaria de reverter as alterações para o instantâneo tirado indo assim ao estado anterior e aumentar a minha produtividade, em vez de ter que descobrir o que para reverter. A imagem de disco de backup também pode ser usado se eu precisar reverter para um estado muito antiga, em vez de ter que começar do zero.

A funcionalidade de snapshot que existe em ambos VMware e da Microsoft Virtual PC / Server é bom o suficiente para considerar a virtualização para cenários onde você acha que você pode fazer alterações significativas, que podem não ser tão fácil de reverter.

Pelo que eu sei, não há nada como o Parallels no Mac, mas sim para o trabalho em vez de testar.

A integração (com "coerência", a sua VM não está em execução "em uma janela" do seu sistema host, todos os programas no sistema convidado têm sua janela adequada no sistema host) é esplêndido e vamos preencher todos (< ! strong> todas ) lacunas:
Meu colega de trabalho tem-configurado que Outlook (não há nada como o Outlook para MacOSX) no Windows aparece quando ele clica em um "mailto:" - link em uma página web, navegavam com o Firefox no Mac
! Na outra direção, se ele ficar de enviar um PDF, ele DoubleClick para o anexo no Outlook (no Windows) que abre o PDF no Mac-buildin PDF-viewer.

VirtualBox também oferece esta possibilidade janela separação (pelo menos quando o Windows está em execução na VM em Linux), que é realmente útil para o trabalho.

Para testar etc., é claro, não há nada como um ambiente claramente separados.

Temos um servidor físico dedicado à hospedagem de máquinas virtuais em nosso ambiente de desenvolvimento. As máquinas virtuais são criadas e derrubadas em uma base regular e são usados ??para testar software em ambientes conhecidos Operacionais Padrão.

Também é realmente útil quando queremos uma aplicação para rodar em um domínio que é diferente para o ambiente de desenvolvimento.

Além disso, a organização que eu estou trabalhando para estão na fase de planejamento para criar um grande campo de testes virtual. Esta será uma grande rede de máquinas, sentado em sua própria rede, e todos pessoal interno das organizações, empreiteiros e fornecedores de terceiros serão capazes de encenar seu software para fins de teste antes de implementar no ambiente de produção. As máquinas virtuais irá reflectir as máquinas físicas no ambiente de produção.

Parece ótimo, mas todo mundo é um pouco cético:. Esta é uma organização do Governo ... A burocracia e a burocracia irá provavelmente transformar isso em um grande desperdício de tempo e dinheiro

Se estamos usando a máquina virtual (VPC 2007, Virtual Server 2005, a aplicação VMWare etc ..)

1.We pode executar vários sistemas operacionais (windows98,2000, XP, Vista, Windows Server 2003,2008, o Windows 7 / Linux / Solaris) em um único servidor

2.We pode reduzir os custos de hardware e de dados do Centro Espacial

3.We pode reduzir o poder & AC custo de refrigeração.

4.We pode reduzir recursos admin,

5.We pode reduzir custo de aplicação

6.We pode executar ADS / DNS / DHCP / Exchange / SQL / Sharepoint Server / File Server, etc ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top