sexta-feira, 7 de agosto de 2009

Como tornar o Windows do seu trabalho melhor?

Como tornar o Windows do seu trabalho melhor? A resposta curta: instale um produto de virtualização e rode um Linux! Quer uma outra alternativa? Utilize o cygwin! :-)

Este post é para explicar os motivos que me levam a utilização de softwares de virtualização nos desktops que uso para trabalho, em meus contratantes. Antes de prosseguir na leitura deste post, leia este artigo sobre virtualização caso deseje ter um melhor embasamento sobre este assunto.

Uma regra comum em várias empresas é: Windows nos desktops e Linux nos servidores. E eu já fui e sou contratado por empresas aonde esta regra é aplicada. A questão é que eu já utilizo Linux a muitos anos. E atualmente, o Linux está tão maduro em termos de desktop que, no meu entendimento, não há porque não utilizá-lo neste ambiente a não ser pelo fato do aprisionamento que determinados softwares impõe e/ou pela diretriz da empresa.

Desde que trabalhei como funcionário da Brasil Telecom, em Brasília em 2002, começei a utilizar softwares de virtualização para me sentir mais confortável no trabalho e utilizar ainda menos o Windows e os softwares que os contratantes acreditam serem mais práticos ou eficientes para mim. Na época, eu utilizava o VMware e a virtualização, me abriu um caminho sem precedentes para isto pois, desta forma, eu conseguia manter o desktop com os softwares padronizados pelo contratante e, mesmo assim, ser feliz utilizando o Linux e os softwares que gosto e que me tornam mais produtivo em diversas atividades. Pelo uso da virtualização, eu inicio meu Linux de dentro do Windows, instalo os programas que preciso e os que gosto, e tenho controle total da minha máquina virtual (VM). Com esta solução, eu acredito não estar saindo dos padrões do contratante e nem perdendo produtividade já que eu sou mais rápido desenvolvendo minhas tarefas no Linux e, para utilizar a virtualização num desktop Windows, eu não preciso de modificar nada nele. O Windows irá ficar lá, só servindo de hospedeiro (Host) para uma VM através de um software de virtualização. Quando eu precisar de utilizar algum software do contratante, ele estará lá. E ultimamente, exceto pelas pessoas que tem restrições ao uso de software livre, ninguém tem motivos para não utilizar o VirtualBox, que é o produto que tenho instalado nos desktops de contratantes, quando necessito de virtualização em Hosts Windows.

Sob o ponto de vista de um administrador que precisa se preocupar com a segurança, o VirtualBox é apenas mais uma aplicação instalada no Windows. E, pelo fato de eu estar acessando a rede do contratante através de uma NAT interna entre o Host (Windows) e a VM (Linux), todas as regras de segurança aplicadas a esta rede são observadas já que o IP utilizado para acessar qualquer computador é o do Host. O VirtualBox também possibilita que eu tenha um IP válido na rede da corporação e/ou que haja um IP interno no Host que seja de uso exclusivo para a comunicação entre o Host e a VM formando uma rede privada entre ambos. Mas esta configuração é utilizada somente caso seja preciso estabelecer uma conexão do Host para a VM pois, no caso da conexão partir desta para o Host, o acesso via NAT já está pronto e configurado.

Outro aspecto importante para mim, na utilização de uma VM é a questão da portabilidade da mesma. Eu, em muitas situações, levo trabalho para casa. Realizo configurações na VM fora do meu ambiente de trabalho e as trago prontas no outro dia. Seria mais complicado e lento eu ter que acessar remotamente a rede do contratante e fazer este trabalho. Além disto, grande parte do meu trabalho atual está relacionado ao desenvolvimento de scripts e ao acerto de configurações de servidores. Minha máquina virtual é o laboratório que utilizo para a realização de experiências e é fácil fazer uma cópia de uma VM e retoná-la a um estado consistente, caso ocorra algum erro. Executar uma VM em outro Host não altera em nada a VM e esta característica é ótima para a portabilidade de um ambiente inteiro de trabalho.

Hoje em dia, vários processadores suportam recursos de virtualização. E este é também o caso do processador instalado no desktop do meu contratante. Isto torna ainda mais rápida e eficiente a execução da VM. O desktop atual que utilizo em um contratante, possui 2GB de memória e um processador AMD 64 com o suporte a algumas características que tornam ainda melhor o uso da virtualização. E eu aproveito estas características para extrair o máximo desta máquina. Outra forma de não quebrar as regras do contratante e, mesmo assim, ter a liberdade para utilizar o Linux é realizando a instalação do mesmo em outra partição (ou num disco externo) e utilizar dual-boot. Desta forma, o Windows fica ali, quietinho. O problema desta abordagem é que, quando preciso utilizar algum software daqueles que só rodam no Windows, eu preciso reinicializar a máquina ou instalar o software de virtualização no Linux e tornar o Windows uma VM. Esta é uma boa saída, mas exige configurações no Windows. A virtualização acaba com o problema do dual-boot, quando os software necessários conseguem rodar tranquilamente, com a memória alocada para a VM. E este é o inconveniente da execução de programas numa VM: pode faltar memória. Seria interessante que meu desktop de trabalho neste contratante tivesse mais memória pois, desta forma, tudo o que rodo no Windows poderia também ser executado no Linux ao mesmo tempo, na VM, sem preocupações a este respeito.

Em um de meus contratantes, um projeto que estou desenvolvendo é uma VM Linux para o ambiente de desenvolvimento de aplicações Java. Como eu já utilizo virtualização no desktop que uso, este projeto já existe e esta praticamente pronto nesta VM, atendendo aos requisitos da equipe de desenvolvimento e contendo as ferramentas mais utilizadas por ela no ambiente Windows (grande parte Java). Nos cursos que ministro eu levo outra VM Linux já preparada com tudo o que será necessário para o treinamento. E veja o custo disto em termos de instalação/configuração de ambiente do Cliente: apenas a instalação do software de virtualização nas máquinas do laboratório e a cópia da VM. Todo o restante, já está pronto. E, em se tratando de uma equipe de desenvolvimento, os ganhos com a utilização de uma máquina virtual padronizada são claros.

Para concluir então, a virtualização para mim é excelente solução. Ela me deixa muito contente em poder utilizar o meu Linux sem efetuar alterações significativas nos ambientes de meus contratantes.

Um comentário:

  1. Excelente artigo!

    Eu uso virtualização desde o VMware Workstation 1.0.

    Usei o VMware para estudar redes, no começo.
    Consegui montar um lab com várias máquinas clientes e servidores dentro do ambiente de virtualização (foi a melhor forma para estudar o Active Directory do Windows 2000).

    Mas no meu caso, o sistema de virtualização roda em cima de um Linux (Ubuntu 64 bits, versão 10.10 com Virtual Box) e as VMs Windows rodam em cima dele.

    Abraço!

    ResponderExcluir