A Virtualização como Padrão Consolidado
A virtualização, como conceito corporativo, é quase tão antiga quanto a própria computação empresarial. O valor de abstrair a computação do hardware bruto foi reconhecido muito cedo e, quase assim que os computadores tiveram capacidade para gerenciar o processo de abstração, os trabalhos começaram a implementar a virtualização tal como a conhecemos hoje.
O primeiro trabalho comumente reconhecido sobre virtualização começou em 1964, com os desenvolvedores do sistema operacional IBM CP-40 para o mainframe IBM System/360. Essa foi a primeira incursão real na virtualização comercial, e o código e o design dessa plataforma inicial de virtualização evoluíram até dar origem, hoje, à plataforma IBM VM, que tem sido usada continuamente desde 1972 como camada de virtualização para as famílias de mainframes da IBM ao longo das décadas. Desde que a IBM introduziu a virtualização pela primeira vez, temos visto sistemas corporativos adotarem esse padrão de abstração de hardware de forma quase universal. Muitos sistemas de computação de grande escala, minicomputadores e mainframes, migraram para a virtualização durante a década de 1970, com a maior parte de todos os demais sistemas corporativos fazendo o mesmo, à medida que a capacidade e a tecnologia ficavam disponíveis, durante as décadas de 1980 e 1990.
O único caso notável de resistência à virtualização na computação corporativa foi a plataforma Intel IA32 (também conhecida como x86), que carecia dos recursos avançados de hardware necessários para implementar uma virtualização eficaz até o surgimento da plataforma estendida AMD64 de 64 bits e, mesmo assim, apenas com tecnologia nova e específica. Uma vez introduzida essa tecnologia, a mesma virtualização de alto desempenho e altamente segura passou a estar disponível em todas as principais plataformas de computação empresarial.
Como as plataformas x86 de baixo custo careciam de virtualização significativa (à parte da virtualização por software, geralmente de baixo desempenho, e das plataformas de paravirtualização de alto desempenho de nicho) até meados dos anos 2000, isso deixou a virtualização quase completamente fora de cogitação para a grande maioria das pequenas e médias empresas. Isso levou muitos dos que se dedicam ao espaço das PMEs a desconhecerem que a virtualização é um conjunto de tecnologias bem estabelecido e maduro, que há muito tempo se consolidou como o padrão de fato para a computação empresarial em servidores. O uso da abstração de hardware é quase onipresente na computação corporativa, sendo que muitas das maiores e mais estáveis plataformas não têm a opção, ao menos não uma opção oficialmente suportada, de executar sistemas “bare metal”.
Existem nichos específicos em que a necessidade de evitar a abstração de hardware por meio da virtualização não é recomendada, mas eles são extremamente raros, especialmente no mercado de PMEs. Os sistemas que normalmente precisam não ser virtualizados incluem sistemas sensíveis à latência (como plataformas de negociação de baixa latência) e cargas de trabalho combinadas em múltiplos servidores, como clusters de computação HPC, em que o objetivo principal é o desempenho acima da estabilidade e da praticidade. Nenhum desses é comum nas PMEs.
A virtualização oferece muitas vantagens. Muitas vezes, nas PMEs, onde a virtualização é menos esperada, presume-se que o objetivo da virtualização seja a consolidação, em que podem ocorrer economias de custo em larga escala, ou a oferta de novas maneiras de garantir alta disponibilidade. Ambas são ótimas opções que podem ajudar organizações e situações específicas, mas nenhuma delas é a justificativa fundamental para a virtualização. Podemos consolidar e alcançar alta disponibilidade por outros meios, se necessário. A virtualização simplesmente nos oferece um amplo leque de opções nessas áreas específicas.
Muitos dos usos da virtualização são artefatos do ecossistema, como uma possível redução nos custos de licenciamento. Esse tipo de vantagem não é uma vantagem intrínseca da virtualização, mas existe e não pode ser ignorado em uma avaliação do mundo real. Nem todos os benefícios se aplicam a todos os hypervisors ou plataformas de virtualização, mas quase todos se aplicam de modo geral. A abstração de hardware é um conceito, não uma implementação, então a forma como ela é aproveitada varia. Conceitualmente, abstrair o hardware, seja na camada de armazenamento, na camada de computação, etc., é muito importante, pois facilita o gerenciamento, melhora a confiabilidade e acelera o desenvolvimento.
Aqui estão alguns dos benefícios da virtualização. É importante observar que, à parte de aspectos específicos como consolidação e alta disponibilidade, quase todos esses benefícios se aplicam não apenas à virtualização em um único nó de hardware, mas a uma única carga de trabalho nesse nó.
- Redução do esforço e do impacto humano associados a mudanças, falhas, modificações, expansões de hardware, etc.
- Encapsulamento do armazenamento para simplificar o processo de backup/restauração, mesmo com destinos de hardware distintos
- Captura de snapshots de todo o sistema para proteção no gerenciamento de mudanças
- Facilidade de arquivamento no momento da desativação ou descomissionamento
- Melhores recursos de monitoramento, adicionando gerenciamento fora de banda mesmo em plataformas de hardware que não oferecem isso nativamente
- A independência de hardware elimina o aprisionamento a fornecedores, pois os sistemas operacionais acreditam que o hypervisor é o hardware, e não o hardware em si
- Segmentação fácil de cargas de trabalho
- Consolidação fácil mantendo a segmentação das cargas de trabalho
- Utilização de recursos consideravelmente melhorada
- A abstração de hardware cria uma oportunidade concretamente realizada de melhorar o desempenho e a estabilidade do sistema, ao mesmo tempo em que reduz as exigências sobre o sistema operacional e sobre os desenvolvedores de drivers dos sistemas operacionais clientes
- Implantação simplificada de cargas de trabalho novas e variadas
- Transição simples de ambientes de hospedagem de plataforma única para multiplataforma, o que permite a adição de opções como implantações em nuvem ou sistemas de plataforma de alta disponibilidade
- Reimplantação de cargas de trabalho para permitir um dimensionamento físico fácil
Nos ambientes de computação atuais, as cargas de trabalho do lado do servidor devem ser universalmente virtualizadas por essas razões. Os benefícios da virtualização são enormes, enquanto as desvantagens são poucas e triviais. Os dois cenários comuns em que a virtualização ainda precisa ser evitada são situações em que há hardware especializado que deve ser usado diretamente no servidor (o que se tornou muito raro hoje, mas ainda existe de vez em quando) e sistemas de latência extremamente baixa, em que latências inferiores a um milissegundo são críticas. O segundo desses casos é comum apenas em situações de negócios extremamente específicas, como sistemas de negociação de investimentos de baixa latência. Sistemas com esses requisitos também terão exigências incríveis de rede e de geolocalização, como Infiniband de baixa latência com fibra até o pregão a menos de oito quilômetros de distância.
Algumas pessoas apontam que os clusters de computação de alto desempenho não utilizam virtualização, mas essa é uma área cinzenta, pois qualquer forma de clustering é, na verdade, uma forma de virtualização. Acontece simplesmente que se trata de um nível de virtualização de “supersistema”, em vez de ser estritamente no nível do sistema.
É seguro presumir que, em qualquer cenário em que você possa se encontrar e no qual não deva usar virtualização, você saberá disso sem sombra de dúvida e será capaz de demonstrar empiricamente por que a virtualização é física ou praticamente impossível. Em todos os demais casos, virtualize. Virtualize se você tiver apenas um servidor físico, uma única carga de trabalho física e um único usuário. Virtualize se você for uma empresa da Fortune 100 com as cargas de trabalho mais exigentes. E virtualize se você for qualquer coisa entre esses extremos. O tamanho não é um fator na virtualização; virtualizamos pelo desejo de ter um ambiente de computação mais eficaz e estável, tanto hoje quanto no futuro.
