Arquivo da tag: xen

O segredo de virtualização

O título completo deste post é “o segredo sobre virtualização que os consultores não querem que você saiba ou a hora deles pode começar a passar a valer menos”. Provavelmente a hora deles pode até valorizar, mas muita gente acha que quanto mais o cliente estiver no escuro, mais caro podem cobrar. Então considerem um post como um serviço para os profissionais da área que são competentes e não precisam desse tipo de artifício.

E qual é esse segredo? O segredo é que virtualização é muito mais simples do que parece. Muita gente olha para esse assunto e sente calafrios, como se fosse obra de magia negra. Mas graças ao amadurecimento dos produtos, muita coisa se torna muito mais simples em um ambiente virtualizado comparado com o outro que ocupa tanto espaço (também conhecido como não virtualizado).

E também, no atual estágio dessa tecnologia, virtualização não é mais uma tecnologia de ponta usada para ganhar vantagem competitiva. É uma tecnologia que se não for usada, você está gerando desvantagem competitiva para sua empresa, porque todos os seus concorrentes (os mais espertos pelo menos), cortam muitos custos dessa forma. É mais ou menos a diferença entre viajar de jato particular e de ônibus. Com a virtualização (ou com um jato particular) você faz um trabalho muito melhor e ainda “paga de gatinho”.

Típico sujeito que não usa virtualização

Típico sujeito que não usa virtualização

Mas antes de tentar entender porque é simples, você que é leigo nesse assunto e está louco para pagar de gatinho no seu CPD, deve estar se perguntando para que serve esse trem chamado virtualização? Algumas coisas legais que você pode fazer com essa tecnologia:

  • A vantagem mais óbvia é diminuir o número de objetos ocupando espaço no seu rack de servidores. Rode várias máquinas virtuais em uma máquina física. Menos tomadas, menos coisas fazendo barulho, menos peso para carregar, mais espaço para você jogar Wii Sports com seus colegas.
  • Normalmente quando você compra um servidor que não vai ser usado para virtualizar, você acaba comprando muito mais memória, CPU e disco do que vai precisar, para garantir que esses recursos não vão faltar. Ou seja, você é obrigado a DESPERDIÇAR, por motivos de segurança. Com virtualização você pode configurar cada máquina virtual com os recursos que ela realmente precisa. Nem a mais, nem a menos.
  • Vamos dizer que você precisa de um novo firewall. Na época das cavernas (conhecida como “tempo em que não existia virtualização”) você era obrigado a comprar um servidor novo, instalar o sistema operacional, baixar um firewall, tentar compilar usando o makefile que dá pau, hackear para tentar fazer a instalação dar certo, depois de instalado descobrir porque só o acesso do seu chefe não funciona, etc. Hoje você pode baixar uma máquina virtual com tudo isso já instalado e configurado. É clicar, mudar umas configurações mínimas e pronto. São as virtual appliances. E tem de tudo, desde servidor de e-mail até aplicações de CRM.
  • Seu servidor precisa de uma parada para manutenção porque um hamster enroscou na ventoinha da fonte? A aplicação que está rodando nesse servidor é crítica e não pode parar? A família do hamster está muito triste porque precisa fazer o enterro do ente perdido? Em um ambiente virtualizado você pode usar funcionalidades que permitem pegar uma máquina virtual que está rodando em um servidor físico e colocá-la para rodar em outro servidor físico SEM PARAR A MÁQUINA VIRTUAL! Eu sei que para quem não conhece, isso soa como feitiçaria, mas hoje isso é uma tecnologia encontrada nos principais produtos de virtualização. Você poderia mover sua aplicação crítica para outro servidor físico que estivesse funcionando, sem tirar a aplicação do ar por nem um segundo, e desligar a máquina com defeito e enterrar o pobre hamster. Sem virtualização, esqueça esse tipo de facilidade.
  • Lembra daquela vez em que você instalou um driver que ferrou com seu computador e você pensou como seria bom se existisse alguma forma de desfazer o que você tinha feito em um passe de mágica (CTRL+Z)? Usando uma máquina virtual isso é muito simples. Você pode gravar um estado da máquina e voltar para esse estado caso faça uma burrada. Em segundos, quase um CTRL+Z.

Existe muito mais que se pode fazer com um ambiente virtualizado, mas você já deve estar se perguntando como um troço que faz tudo isso pode ser simples. Em termos de engenharia do produto, obviamente não é simples. Mas utilizar esses produtos é bem fácil, por mérito dos fabricantes que fizeram um trabalho muito bem feito. O que a maioria das pessoas se enrola é distinguir as coisas físicas das virtuais, saber o que é possível ou não dentro desse ambiente. Mas se você entende bem como as coisas funcionam sem a virtualização, sabe qual o papel do hardware e do software, não é tão difícil de separar essas coisas.

Alguns pontos que acho, vão esclarecer um bocado as coisas:

  • a máquina virtual usa um ou mais arquivos como se fosse um disco, ou seja, os discos da máquina virtual são gravados dentro de um arquivão que é o disco virtual. Se alguma coisa funciona em uma máquina física e só depende dos arquivos em disco para funcionar, então com certeza isso também vai funcionar em uma máquina virtual.
  • considere a máquina virtual como um servidor em que a maioria dos drivers é genérico. Se o que você vai fazer com a máquina funciona com um driver bem genérico, então vai funcionar em uma máquina virtual. Coisas que dependem de hardware específico podem não funcionar (consulte a documentação ou um profissional que conheça o produto).
  • você quer botar mais memória na máquina virtual? Mais uma placa de rede? Mexa apenas na máquina virtual. A máquina física não tem nada a ver com isso. Mexer na máquina virtual significa que você faz isso só clicando na interface ou digitando comandos. Não encoste no botão de liga-desliga do servidor físico.
  • as máquinas virtuais compartilham os recursos da máquina física, a menos que sejam configuradas para ter o domínio sobre um recurso específico. Ou seja, você não precisa espetar 20 placas de vídeo ou de rede no seu servidor físico antes de virtualizar. O mais interessante é que as placas de rede das máquinas virtuais geram seus próprios MAC addresses, como se fossem placas físicas, o que significa que seus sistemas de gerenciamento da rede continuam relevantes.

Virtualização não é um tema novo, mas tem esquentado nos últimos anos. Você sabe que uma tecnologia está em curva ascendente quando vê que a Microsoft começa a investir com força para tentar seduzir um pedaço grande do mercado e a Oracle compra duas empresas com produtos de virtualização. Além disso, a Cisco decide entrar no mercado de servidores levantando a bandeira de que a grande vantagem de seus produtos é que eles foram desenhados para potencializar seu ambiente virtualizado. Sem falar nas palavras mais quentes do momento, que tem tudo a ver com virtualização: cloud computing.

O próximo passo para uma grande mudança nesse mercado seria virtualização horizontal. Juntar vários servidores para rodar como se fossem uma máquina só, ou seja, rodar uma máquina virtual utilizando vários servidores físicos (o que é diferente de um cluster). Com isso as empresas poderiam aumentar a escalabilidade de seus sistemas conforme o necessário e comprar servidores mais baratos no começo, quando a demanda é menor. Por enquanto nenhum dos nomes do mercado sinaliza estar indo por esse caminho e uma das poucas empresas que tem domínio sobre algo semelhante é o Google. E espero que esta área progrida mais ainda, porque ela não existe apenas para encher a conta bancária de uns e outros. Ela torna a vida das pessoas mais fácil.