O que é uma máquina virtual?

Uma máquina virtual (VM) é um computador baseado em software que fornece um ambiente isolado no hardware host. As máquinas virtuais podem executar programas e sistemas operacionais, armazenar dados, conectar-se a redes e realizar outras funções de computação. Grande parte da tecnologia que usamos atualmente, como a computação em nuvem e a inteligência artificial, está enraizada no conceito de máquina virtual, que permite a separação de sistemas operacionais e softwares de uma máquina física. Por exemplo, as VMs na computação em nuvem são usadas para virtualizar os recursos dos servidores dos provedores de serviços em nuvem, possibilitando a arquitetura de nuvem com vários locatários que permite que os clientes compartilhem recursos sem que um interfira no outro.

Como as máquinas virtuais funcionam?

As máquinas virtuais usam tecnologia de virtualização para criar hardware virtual, ou uma versão virtual de um computador em uma máquina física. A máquina física em que as VMs são executadas é chamada de host, e as VMs em execução no host são chamadas de convidados

Cada VM convidada é executada em uma partição isolada no host, completamente separada dos outros convidados. É possível hospedar várias VMs em uma única máquina host, geralmente um servidor, em execução em uma camada de software conhecida como hipervisor.

O hipervisor abstrai os recursos físicos da máquina host, como CPUs, GPUs, TPUs, memória, armazenamento ou redes, em um pool que pode ser provisionado e alocado dinamicamente para VMs convidadas, conforme necessário, proporcionando mais flexibilidade e aumentando a eficiência geral.

Dois tipos principais de hipervisores

  • Tipo 1: hipervisores bare-metal: são executados diretamente no hardware físico do host. Eles são usados com frequência em data centers corporativos devido ao alto desempenho e eficiência. Por exemplo, o Google Cloud usa um hipervisor baseado em KVM para alimentar as máquinas virtuais do Compute Engine.
  • Tipo 2: hipervisores hospedados : são executados como um aplicativo em um sistema operacional, o que os torna adequados para uso em computadores. O caso de uso mais comum é para desenvolvimento e teste.

Tipos de máquinas virtuais

De modo geral, há dois tipos de máquinas virtuais: de processo e de sistema.

Uma VM de processo, também chamada de máquina virtual de aplicativo ou ambiente de execução gerenciado (MRE), cria um ambiente virtual de um SO enquanto um app ou único processo está em execução e o destrói assim que você sai. As VMs de processo permitem a criação de um ambiente independente de plataforma que permite que um aplicativo ou processo seja executado da mesma forma em qualquer plataforma. Um exemplo concreto disso é o ambiente de execução do Node.js no App Engine, que permite que um programa Node.js seja executado em um ambiente gerenciado no Google Cloud, independentemente do sistema operacional.

Uma VM do sistema (às vezes chamada de máquinas virtuais de hardware) simula um sistema operacional completo, permitindo que vários ambientes de SO fiquem na mesma máquina. Normalmente, esse é o tipo de VM a que as pessoas se referem quando falam sobre "máquinas virtuais". As VMs do sistema podem executar o próprio SO e aplicativos, e um hipervisor monitora e distribui os recursos da máquina host física entre as VMs do sistema.

Alguns provedores de nuvem, incluindo o Google, oferecem a capacidade adicional de personalizar a quantidade exata de processadores virtuais e memória virtual em cada instância. Isso permite um dimensionamento mais preciso para cada carga de trabalho e evita a subutilização e os custos associados de recursos e licenças de software para essa instância de computação. Por exemplo, algumas cargas de trabalho podem exigir uma alta proporção de núcleo de computação para memória, enquanto outras podem exigir o oposto. A personalização da máquina virtual aborda esses casos de uso sem provisionamento excessivo e sem pagar demais por recursos que não serão utilizados.

VMs ou contêineres?

Embora as VMs e os contêineres sejam usados para isolar aplicativos, eles fazem isso de maneiras fundamentalmente diferentes. Uma máquina virtual virtualiza toda a pilha de hardware físico, incluindo o sistema operacional. Isso torna cada VM um ambiente isolado e independente, mas também significa que as VMs tendem a ser maiores e a consumir mais recursos.

Por outro lado, os contêineres são mais leves porque virtualizam apenas a camada do SO. Em vez de agrupar um sistema operacional completo com cada aplicativo, um contêiner compartilha o kernel do SO do host. Isso permite que os contêineres usem menos recursos do que as VMs e sejam iniciados mais rapidamente, mantendo o isolamento. Isso torna os contêineres atraentes para o desenvolvimento de novos aplicativos. Como muitos dos aplicativos desenvolvidos nos últimos 10 anos foram escritos para contêineres, muitas cargas de trabalho, incluindo e-commerce, back-office e IA, são nativas de contêineres.

Como as máquinas virtuais são usadas?

As VMs são os elementos básicos dos recursos de computação virtualizados e têm um papel fundamental na criação de qualquer aplicativo, ferramenta ou ambiente, tanto na nuvem quanto no local.

Confira algumas formas mais comuns de uso das máquinas virtuais:

Várias máquinas físicas podem ser reconfiguradas como uma VM e executadas em um host com outras VMs. Isso permite que as organizações reduzam a expansão. As VMs já provaram ser capazes de executar até mesmo os aplicativos mais sensíveis ao desempenho.

Uma organização central de TI pode provisionar e gerenciar VMs para cada unidade de negócios e área funcional, acelerando o acesso aos recursos e melhorando a visibilidade corporativa.

As VMs podem servir como ambientes isolados para teste e desenvolvimento que incluem funcionalidade completa, mas não afetam a infraestrutura relacionada.

As VMs podem ser facilmente desativadas ou ativadas, migradas e adaptadas, oferecendo o máximo de flexibilidade para desenvolvimento e implantação.

A flexibilidade e a portabilidade que as VMs fornecem são essenciais para aumentar a velocidade das iniciativas de migração.

A replicação de sistemas em ambientes de nuvem usando VMs pode fornecer uma camada extra de segurança e certeza. Os ambientes de nuvem também podem ser atualizados continuamente.

As VMs fornecem a base para criar um ambiente de nuvem junto de um local, oferecendo flexibilidade sem abandonar sistemas legados.

Benefícios das máquinas virtuais

As máquinas virtuais oferecem muitos benefícios, principalmente se você optar por uma VM na nuvem, incluindo os seguintes: 

Escalonabilidade

As VMs baseadas na nuvem facilitam o escalonamento dos aplicativos, aumentando a disponibilidade e o desempenho. É possível aumentar a capacidade de acordo com a demanda sem precisar investir em servidores físicos próprios. 

Portabilidade 

Uma máquina virtual consiste em um único pacote de software com recursos de hardware, um sistema operacional e todos os aplicativos relacionados. É fácil mover VMs de um servidor para outro ou até mesmo de hardware local para ambientes de nuvem. 

Consumo e custos reduzidos

Com as VMs, você pode executar vários ambientes virtuais em uma única máquina. Isso reduz o consumo de infraestrutura física, a conta de energia e os custos de manutenção e gerenciamento. 

Provisionamento mais rápido 

As VMs podem ser facilmente duplicadas, o que permite que as empresas criem ambientes novos e idênticos, sem ter que configurá-los do zero.

Confiabilidade

As máquinas virtuais e os respectivos componentes existem virtualmente e permanecem isoladas de outras VMs convidadas. Se a VM falhar, as outras VMs convidadas permanecerão operacionais e a máquina host física não será afetada. 

Mais segurança

Com as máquinas virtuais, é possível executar vários sistemas operacionais sem afetar o sistema operacional do host. As VMs permitem criar ambientes virtuais seguros para testar aplicativos ou até mesmo estudar vulnerabilidades de segurança sem alto risco para a máquina host. 

Possíveis desafios das máquinas virtuais

No entanto, há algumas considerações a serem feitas ao executar VMs. Um dos maiores desafios em potencial das máquinas virtuais é que executar vários sistemas operacionais e uma camada de hipervisor pode gerar custos de desempenho se a máquina host não for robusta o suficiente. Além disso, o hardware virtual pode não ser tão eficiente quanto o hardware físico de uma máquina física. Por fim, a maioria dos provedores de nuvem oferece máquinas virtuais com CPU e memória fixas, o que leva a um uso ineficiente dos recursos.

Muitas dessas preocupações podem ser superadas com a escolha de usar VMs oferecidas por um provedor de serviços de nuvem. As VMs em nuvem oferecem muitas vantagens sobre as VMs tradicionais, porque permitem que as organizações acessem o poder computacional de todos os computadores de um data center, em vez de uma única máquina. Além disso, os tamanhos de máquinas virtuais do Google Compute Engine oferecem tipos de máquinas personalizados. Em vez de selecionar entre tipos de máquinas predefinidos que podem incluir capacidade excessiva, você pode adaptar a proporção de CPU para memória especificamente para suas cargas de trabalho, pagando apenas pelos recursos que realmente usa. Essa abordagem direcionada minimiza o desperdício e pode reduzir significativamente seus gastos com a nuvem, especialmente ao migrar do local para o Google Cloud ou de outros provedores de nuvem. O Compute Engine também oferece tipos de máquina virtuais otimizados para necessidades específicas dos clientes para cargas de trabalho corporativas, configurações de memória alta ou cargas de trabalho exigentes, como machine learning ou computação de alto desempenho.

O Google Cloud também oferece máquinas virtuais protegidas para maior segurança e integridade verificável das instâncias de VM. As máquinas virtuais protegidas do Google Cloud usam recursos e controles avançados de segurança da plataforma que protegem as cargas de trabalho da empresa contra ameaças como ataques remotos, escalonamento de privilégios e pessoas maliciosas com informações privilegiadas. 

Resolva seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
Fale com um especialista em vendas do Google Cloud para discutir seu desafio exclusivo em mais detalhes.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos sem custo financeiro

Google Cloud