Conteúdo
Muitas das tecnologias de ponta atuais, como computação em nuvem, computação de ponta e microsserviços, derivam do conceito de máquina virtual – desacoplando um sistema operacional e uma instância de software do computador físico subjacente.
O que é uma máquina virtual?
Uma máquina virtual (VM) é um software que executa um programa ou aplicativo sem estar vinculado a uma máquina física. Em uma instância de VM, um ou mais computadores convidados podem ser executados no host.
Cada máquina virtual tem seu próprio sistema operacional e funciona separadamente de outras máquinas virtuais, mesmo que estejam no mesmo host físico. As máquinas virtuais geralmente são executadas em servidores, mas também podem ser executadas em sistemas desktop ou até mesmo em plataformas embarcadas. Várias VMs podem compartilhar os recursos de um único host físico, incluindo ciclos de CPU, largura de banda de rede e memória.
As máquinas virtuais se originaram na computação no início dos anos 1960, quando o compartilhamento de tempo por usuários de mainframe era usado para separar o software dos sistemas host físicos. Uma máquina virtual foi definida no início da década de 1970 como “uma cópia eficiente e independente de uma máquina de computador real”.
As máquinas virtuais como as conhecemos hoje ganharam muita atenção nos últimos 20 anos, pois as empresas adotaram a virtualização de servidores para utilizar com mais eficiência o poder de computação de seus servidores físicos, reduzindo o número de servidores físicos e economizando espaço no data center. Como aplicativos com diferentes requisitos de sistema operacional podem ser executados em um único host físico, cada aplicativo não requer hardware de servidor diferente.
Como funciona uma máquina virtual?
De um modo geral, existem dois tipos de máquinas virtuais: máquinas virtuais de processo, que separam processos individuais, e máquinas virtuais de sistema, que separam completamente o sistema operacional e os aplicativos do computador físico. Exemplos de VMs de processo incluem o Java Virtual Machine, o .NET Framework e o Parrot Virtual Machine.
A máquina virtual do sistema depende do hypervisor como um intermediário que fornece acesso de software aos recursos de hardware. Um hipervisor emula a CPU, memória, disco rígido, rede e outros recursos de hardware de um computador, criando um conjunto de recursos que podem ser alocados para VMs individuais com base em seus requisitos específicos. O hipervisor pode suportar várias plataformas de hardware virtual isoladas, permitindo que as máquinas virtuais executem os sistemas operacionais Linux e Windows Server no mesmo host físico.
Os players notáveis no espaço do hypervisor incluem VMware (ESX/ESXi), Intel/Linux Foundation (Xen), Oracle (MV Server para SPARC e Oracle VM Server para x86) e Microsoft (Hyper-V).
Os sistemas de computador desktop também podem utilizar máquinas virtuais. O exemplo aqui é um usuário de Mac executando uma instância virtual do Windows em seu hardware físico do Mac.
Quais são os dois tipos de hipervisores?
O hipervisor gerencia recursos e os atribui a máquinas virtuais. Ele também pode agendar e ajustar como os recursos são alocados com base em como o hipervisor e as máquinas virtuais estão configurados e pode realocar recursos conforme a demanda flutua. A maioria dos hipervisores se enquadra em uma das duas categorias:
- Tipo 1. Os hypervisors bare metal são executados diretamente no host físico e têm acesso direto ao seu hardware. Os hipervisores Tipo 1 normalmente são executados em servidores e são considerados mais eficientes e de desempenho do que os hipervisores Tipo 2, tornando-os ideais para virtualização de servidores, desktops e aplicativos. Exemplos de hipervisores Tipo 1 incluem Microsoft Hyper-V e VMware ESXi.
- Tipo 2. Às vezes chamado de hypervisor gerenciado, um hypervisor Tipo 2 é instalado na parte superior do sistema operacional do host e lida com chamadas para recursos de hardware. Os hipervisores do tipo 2 geralmente são implantados em sistemas de usuários finais para casos de uso específicos. Por exemplo, um desenvolvedor pode usar um hypervisor tipo 2 para criar um ambiente específico para construir um aplicativo ou um analista de dados pode usá-lo para testar um aplicativo em um ambiente isolado. Exemplos incluem VMware Workstation e Oracle VirtualBox.
Quais são as vantagens de uma máquina virtual?
Como o software é desacoplado do host físico, os usuários podem executar várias instâncias do sistema operacional em uma única peça de hardware, economizando tempo das empresas, custos de gerenciamento e espaço físico. Outra vantagem é que as VMs podem oferecer suporte a aplicativos herdados, reduzindo ou eliminando a necessidade e o custo de migrar aplicativos herdados para sistemas operacionais mais novos ou diferentes.
Além disso, os desenvolvedores usam máquinas virtuais para testar aplicativos em um ambiente seguro de sandbox. Os desenvolvedores que desejam ver se seus aplicativos serão executados em um novo sistema operacional podem usar máquinas virtuais para testar seus softwares, em vez de comprar antecipadamente novos hardwares e sistemas operacionais. Por exemplo, a Microsoft atualizou recentemente suas VMs gratuitas do Windows, permitindo que os desenvolvedores baixem uma VM de avaliação com o Windows 11 para experimentar o sistema operacional sem atualizar o computador principal.
Isso também ajuda a isolar malware que pode infectar instâncias de VM específicas. Como o software dentro da máquina virtual não pode adulterar o host, o malware não pode espalhar tanto dano.
Quais são as desvantagens das máquinas virtuais?
As máquinas virtuais têm algumas desvantagens. A execução de várias VMs em um host físico pode levar a um desempenho irregular, especialmente se os requisitos de infraestrutura de um aplicativo específico não forem atendidos. Isso também os torna menos eficientes em muitos casos em comparação com computadores físicos.
Se um servidor físico travar, todos os aplicativos executados nele ficarão inativos. A maioria das lojas de TI usa um equilíbrio entre sistemas físicos e virtuais.
Que outras formas de virtualização existem?
O sucesso das VMs na virtualização de servidores levou à adoção da virtualização em outras áreas, incluindo armazenamento, rede e desktops. Muito provavelmente, se um tipo de hardware é usado no data center, o conceito de virtualização está sendo explorado (como controladores de entrega de aplicativos).
Na virtualização de rede, as empresas exploraram opções de rede como serviço e virtualização de funções de rede (NFV), que usa servidores de uso geral em vez de equipamentos de rede dedicados para serviços mais flexíveis e escaláveis. Isso é um pouco diferente da rede definida por software, que separa o plano de controle de rede do plano de encaminhamento para permitir provisionamento mais automatizado e gerenciamento baseado em políticas de recursos de rede. A terceira tecnologia, funções de rede virtual, são serviços baseados em software que podem ser executados em um ambiente NFV, incluindo processos como roteamento, firewall, balanceamento de carga, aceleração de WAN e criptografia.
Por exemplo, a Verizon usa NFV para alimentar seu serviço de rede virtual, permitindo que os clientes criem novos serviços e recursos sob demanda. Os serviços incluem aplicativos virtualizados, roteamento, WAN definida por software, otimização de WAN e até Session Border Controller as a Service (SBCaaS) para gerenciar centralmente e implantar com segurança serviços baseados em IP em tempo real, como VoIP e comunicações unificadas.
Máquinas virtuais e contêineres
O crescimento das máquinas virtuais levou a maiores desenvolvimentos em tecnologias como contêineres, levando o conceito um passo adiante e ganhando força entre os desenvolvedores de aplicativos da web. Em uma configuração de contêiner, um único aplicativo e suas dependências podem ser virtualizados. Os contêineres têm muito menos sobrecarga do que as VMs, portanto, os contêineres contêm apenas binários, bibliotecas e aplicativos.
Enquanto alguns argumentam que o desenvolvimento de contêineres pode matar as máquinas virtuais, as máquinas virtuais têm recursos e vantagens suficientes para manter a tecnologia avançando. Por exemplo, as VMs ainda são úteis ao executar vários aplicativos ao mesmo tempo ou executar aplicativos herdados em sistemas operacionais mais antigos.
Além disso, alguns argumentam que os contêineres são menos seguros que os hipervisores porque os contêineres têm apenas um sistema operacional compartilhado pelos aplicativos, enquanto as máquinas virtuais isolam os aplicativos e os sistemas operacionais.
Mesmo que os clientes explorem arquiteturas e contêineres em nuvem, o mercado de software de VM continua sendo uma tecnologia importante, disse Gary Chen, gerente de pesquisa do Grupo de Computação Definida por Software da IDC. “Embora o mercado de software de máquina virtual esteja muito maduro e próximo da saturação, ele continuará experimentando um crescimento positivo nos próximos cinco anos”, escreveu Chen no Virtual Machine Software World Forecast 2019-2022 da IDC.
Máquinas virtuais, 5G e computação de borda
As máquinas virtuais são vistas como parte de novas tecnologias, como 5G e computação de ponta. Por exemplo, fornecedores de infraestrutura de desktop virtual (VDI), como Microsoft, VMware e Citrix, estão procurando maneiras de estender seus sistemas VDI para funcionários que agora trabalham em casa como parte de um modelo híbrido pós-COVID.
“Com o VDI, você precisa de latência extremamente baixa porque basicamente está enviando pressionamentos de tecla e movimentos do mouse para a área de trabalho remota”, disse Mahadev Satyanarayanan, professor de ciência da computação da Carnegie Mellon University. Em 2009, Satyanarayanan contribuiu para o desenvolvimento da computação de borda escrevendo um artigo sobre como usar cloudlets baseados em máquinas virtuais para fornecer melhores recursos de computação para dispositivos móveis na borda da Internet.
No espaço sem fio 5G, o processo de fatiamento de rede usa redes definidas por software e tecnologias NFV para ajudar a instalar funções de rede em máquinas virtuais em servidores virtualizados para fornecer serviços que antes só podiam ser executados em hardware proprietário.
Como muitas outras tecnologias em uso hoje, essas inovações emergentes não teriam se desenvolvido se não fosse pelo conceito original de VM introduzido décadas atrás.
Leia também: A automação ameaçará os empregos?
Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software e SEO de sites.