Virtualizando Até Mesmo um Único Servidor
Acho muito comum, em conversas que envolvem virtualização, que o conceito de consolidação – que, no contexto da virtualização de servidores, refere-se a colocar várias cargas de trabalho antes físicas em uma única máquina física, com a separação tratada pelas barreiras das máquinas virtuais – seja tratado como o princípio central e o recurso fundamental da virtualização. Sem dúvida, a consolidação de cargas de trabalho representa uma oportunidade incrível com a virtualização, mas é extremamente importante que o valor da virtualização e o valor da consolidação não sejam confundidos. Com frequência demais, tenho observado que a consolidação é vista como o valor-chave da virtualização e a principal justificativa para ela, mas não é esse o caso. A consolidação é um recurso bônus, mas nunca deveria ser necessária para justificar a virtualização. A virtualização deveria ser uma conclusão praticamente inevitável, ao passo que a consolidação precisa ser avaliada e, em muitos casos, não seria utilizada. O fato de que cargas de trabalho não devam ser consolidadas nunca deveria levar à crença de que essas cargas de trabalho não devam ser virtuais. Gostaria de explorar o espaço de decisão da virtualização para ver como deveríamos encarar esse ponto.
A virtualização deve ser entendida como abstração de hardware, pois é realmente isso que ela é, em sentido prático. A virtualização encapsula o hardware e apresenta um conjunto de hardware previsível e impecável aos sistemas operacionais convidados. Isso pode parecer que adiciona complicação mas, na realidade, na verdade simplifica muitas coisas tanto para os fabricantes de sistemas operacionais e drivers quanto para os profissionais de TI que projetam sistemas. É justamente porque computadores, periféricos de computador e sistemas operacionais são feras tão complexas que essa camada adicional acaba removendo complexidade do sistema ao criar interfaces padronizadas. Da padronização vem a simplicidade.
Esse mesmo conceito de apresentar uma máquina virtual padronizada a uma camada de software existe também em outras áreas da computação, como na forma como muitas linguagens de programação são implementadas. Esse é um modelo de computação muito maduro e confiável.
A abstração de hardware e a estabilidade que ela traz já são, por si só, razão suficiente para padronizar a virtualização em todos os casos, mas a natureza prática da abstração de hardware, conforme implementada por todos os produtos corporativos de virtualização disponíveis para nós hoje, nos traz recursos ainda mais importantes. É certo que a maioria dos benefícios da virtualização pode ser obtida de alguma outra forma, mas raramente de maneira tão completa, confiável, simples ou gratuita quanto a partir da virtualização.
O maior conjunto de recursos adicionais costuma vir da abstração de armazenamento e memória, permitindo a capacidade de tirar um snapshot do armazenamento ou até mesmo de todo o estado em execução de uma máquina virtual – isto é, capturar uma imagem do sistema em execução e armazená-la em um arquivo. Essa capacidade leva a muitas funcionalidades muito importantes, como a possibilidade de tirar um snapshot do sistema antes de instalar novos softwares, alterar configurações ou aplicar correções, permitindo reversões extremamente rápidas caso algo dê errado. Esse recurso aparentemente menor pode trazer grande tranquilidade e confiabilidade geral do sistema. Ele também torna o teste de recursos e a reversão, ou testes repetidos, muito fáceis em ambientes que não são de produção.
A capacidade de tirar snapshots a partir da camada de abstração também leva à possibilidade de fazer “backups baseados em imagem”, isto é, backups feitos por meio do mecanismo de snapshot em uma camada de dispositivo de blocos, em vez de a partir da camada do sistema de arquivos do sistema operacional. Isso permite mecanismos de backup independentes do sistema operacional e backups que incluem todo o pool de armazenamento do sistema de uma só vez. Backups de imagem permitem o que tradicionalmente se conhecia como “restaurações bare metal” – o sistema inteiro pode ser restaurado a um estado totalmente operacional sem interação adicional – de forma fácil e muito rápida. Nem todos os fabricantes de hypervisor incluem essa capacidade, ou a incluem em níveis equivalentes, de modo que, embora conceitualmente seja um recurso importante, é fundamental que a extensão em que esse recurso existe ou é licenciado seja considerada caso a caso (notavelmente, o HyperV o inclui plenamente, o XenServer o inclui parcialmente e o VMware vSphere o inclui apenas nos níveis de licença não gratuitos). Quando disponíveis, os backups baseados em imagem permitem uma recuperação extremamente rápida, em velocidades impensáveis com outras metodologias de backup. Restaurar sistemas em minutos é possível, do desastre à recuperação!
A capacidade de tratar máquinas virtuais como arquivos (ao menos quando não estão ativamente em execução) proporciona benefícios adicionais relacionados aos benefícios de backup listados acima. A saber, a capacidade de migrar de forma rápida e fácil entre hosts físicos e até mesmo de mover-se entre hardwares distintos. Tradicionalmente, atualizações ou substituições de hardware significavam um complicado processo de migração repleto de perigos. Com a virtualização moderna, mudar do hardware existente para um novo hardware pode ser um processo confiável e não destrutivo, com opções seguras de retorno e pouco, ou possivelmente até nenhum, tempo de inatividade! Tarefas que são incomuns, mas que antes eram muito arriscadas, muitas vezes podem se tornar triviais hoje.
Frequentemente, é esse o verdadeiro benefício da virtualização e dos mecanismos de abstração. Não é, necessariamente, melhorar as operações do dia a dia de um sistema, mas reduzir riscos e proporcionar flexibilidade e opções no futuro. Preparar-se para incógnitas que são imprevisíveis ou que são simplesmente ignoradas na maioria das situações comuns. Raramente esse tipo de planejamento é feito, para grande desgosto dos departamentos de TI que ficam com atualizações difíceis e perigosas que poderiam ter sido facilmente mitigadas.
Há muitos recursos da virtualização que se aplicam apenas a cenários especiais. Muitos produtos de virtualização incluem ferramentas de migração ao vivo para mover cargas de trabalho em execução entre hosts, ou possivelmente até entre dispositivos de armazenamento, sem tempo de inatividade. Opções de alta disponibilidade e tolerância a falhas frequentemente estão disponíveis, permitindo que algumas cargas de trabalho se recuperem rápida ou até transparentemente de uma falha de hardware do sistema, migrando do hardware que falhou para um hardware redundante sem intervenção do usuário. Embora seja mais um benefício de nicho e certamente não deva ser incluído em uma lista de por que “quase todas as cargas de trabalho” devem ser virtuais, vale a pena observá-lo como um exemplo primordial de recursos que muitas vezes estão disponíveis e poderiam ser adicionados mais tarde, caso surja uma necessidade deles, desde que a virtualização seja usada desde o início. Do contrário, seria necessária uma migração para a virtualização antes de poder aproveitar tais recursos.
Os produtos de virtualização normalmente vêm com extensos recursos adicionais que só importam em certos casos. Grande parte deles se enquadra em um grande conjunto de “em caso de necessidade futura”. Possivelmente o maior de todos esses é o conceito de consolidação, como mencionei no início deste artigo. Como outros recursos avançados, tais como a alta disponibilidade, a consolidação não é um valor central da virtualização, mas é frequentemente confundida com ele. Cargas de trabalho que não pretendem aproveitar a alta disponibilidade ou a consolidação ainda assim devem ser virtualizadas – sem dúvida. Mas esses recursos são tão potencialmente valiosos como opções futuras, mesmo para cenários em que não serão usados hoje, que vale a pena mencioná-los de qualquer forma.
A consolidação pode ser extremamente valiosa, e é fácil compreender por que tantas pessoas simplesmente presumem que ela será utilizada, já que tantas vezes é tão valiosa. A disponibilidade dela, uma vez que uma infraestrutura está implantada, é um ponto-chave de flexibilidade para lidar com as incógnitas das cargas de trabalho futuras. Mesmo quando a consolidação é completamente desnecessária hoje, há uma chance muito boa, mesmo nas menores empresas, de que ela seja útil em algum momento desconhecido no futuro. A virtualização nos oferece uma proteção contra o desconhecido ao preparar nossos sistemas para o máximo de flexibilidade. Um dos aspectos mais importantes de qualquer decisão de TI é gerenciar e reduzir riscos. A virtualização faz isso.
A virtualização tem a ver com estabilidade, flexibilidade, padronização, gerenciabilidade e seguir as melhores práticas. Nenhum produto corporativo de virtualização importante deixa de estar disponível, ao menos em alguma forma, gratuitamente hoje. Qualquer aquisição exigiria, é claro, uma análise cuidadosa de valor versus gasto. Entretanto, com excelentes opções corporativas disponíveis gratuitamente em todas as quatro principais linhas de produtos desse espaço atualmente (Xen, KVM, HyperV e VMware vSphere), não precisamos fazer tal análise. Precisamos apenas demonstrar que a implementação não é negativa.
O que torna a tomada de decisão fácil é que, quando consideramos o caso nominal – o mínimo básico que toda virtualização corporativa proporciona, que são os benefícios de custo zero, abstração, encapsulamento e os ganhos baseados em armazenamento – descobrimos que temos um pequeno benefício em efetivamente todos os casos, nenhuma desvantagem mensurável e um benefício potencial muito grande nas áreas de flexibilidade e proteção contra necessidades futuras. Isso nos deixa com uma vitória clara e uma decisão simples: a virtualização, sendo gratuita e sem essencialmente nenhuma desvantagem por si só, deve ser usada em qualquer caso em que seja possível (o que, neste ponto, é essencialmente todas as cargas de trabalho). Recursos adicionais não centrais, como consolidação e alta disponibilidade, devem ser avaliados separadamente e somente depois que a decisão de virtualizar já tiver sido consolidada. Nenhuma ausência de necessidade desses recursos estendidos sugere, de forma alguma, que a virtualização não deva ser escolhida com base em seus próprios méritos.
Esta é simplesmente uma explicação das melhores práticas existentes no setor, que há muitos anos consistem em virtualizar todas as cargas de trabalho potenciais. Isso não é novo nem uma mudança de direção. Apenas o fato de que a virtualização generalizada tem sido uma das melhores práticas do setor por quase uma década mostra o quanto essa metodologia é comprovada e aceita. Sempre haverá cargas de trabalho que, por um motivo ou outro, simplesmente não podem ser virtualizadas, mas estas devem ser muito poucas e raras e devem motivar uma análise profunda para descobrir por que isso ocorre.
Ao decidir se deve ou não virtualizar, a abordagem deve sempre ser presumir que a virtualização é uma conclusão inevitável e desviar disso somente se uma razão técnica sólida e defensável tornar isso impossível. Quase todos os argumentos contra a virtualização partem de uma posição de desentendimento, com a crença de que consolidação, alta disponibilidade, armazenamento externo, custo de licenciamento e outros conceitos vagamente relacionados ou não relacionados são, de alguma forma, intrínsecos à virtualização. Eles não são e não devem ser incluídos em uma decisão entre implantação virtualizada e física. São aspectos separados e devem ser avaliados como opções separadas.
Vale observar que, como a consolidação não faz parte da nossa matriz de decisão ao estabelecer o valor base da virtualização, todas as razões que estamos utilizando se aplicam igualmente tanto às implantações um para um (isto é, uma única máquina virtual em um único dispositivo físico) quanto às cargas de trabalho consolidadas (isto é, várias máquinas virtuais em um único dispositivo físico). Não existe situação em que uma carga de trabalho seja “pequena demais” para ser virtualizada. Se há algo, é o oposto: apenas nas maiores cargas de trabalho, normalmente com extrema sensibilidade à latência, é que um cenário de nicho de não virtualização ainda existe como caso de borda, mas mesmo esses casos estão desaparecendo rapidamente à medida que melhoram a latência na virtualização e as capacidades totais de carga de trabalho. Esses casos são tão raros e estão desaparecendo tão depressa que até mesmo dedicar tempo a mencioná-los provavelmente é imprudente, pois sugere que exceções, baseadas em necessidades de capacidade, são comuns o suficiente para serem avaliadas, o que não são, especialmente não no mercado de PMEs. Quanto menor a carga de trabalho, mais ideal para a virtualização, mas isso serve apenas para reforçar que as pequenas empresas, com cargas de trabalho singulares, são o caso mais ideal para a virtualização em todos os aspectos, em vez de uma exceção às melhores práticas, e não para sugerir que as empresas maiores deveriam, elas próprias, procurar exceções.

