O que são máquinas virtuais (VMs)?
Uma máquina virtual é uma representação virtual de um computador físico, e as unidades de computação para a primeira geração de computação em nuvem.
Plano de fundo azul e preto
O que são máquinas virtuais (VMs)?

Uma máquina virtual é uma representação virtual, ou emulação, de um computador físico. Elas geralmente são chamadas de guests e a máquina física na qual são executadas é chamada de host.

A

Virtualização  possibilita a criação de diversas máquinas virtuais, cada uma com seu próprio sistema operacional (OS) e seus próprios aplicativos, em uma única máquina física. Uma VM não pode interagir diretamente com um computador físico. Em vez disso, ela precisa de uma camada de software leve chamada  hypervisor  para ser coordenada com o hardware físico subjacente. O hypervisor aloca recursos de computação física, como processadores, memória e armazenamento, para cada VM. Ele mantém cada VM separada das outras para evitar interferências.

Embora essa tecnologia possa ter diversos nomes, incluindo servidor virtual, instância de servidor virtual (VSI) e servidor privado virtual (VPS), este artigo se referirá a ela simplesmente como máquinas virtuais.

Como a virtualização funciona

Quando um hypervisor é usado em um computador ou servidor físico (também conhecido como servidor bare metal), ele permite que o computador físico separe o seu sistema operacional e os aplicativos do seu hardware. Em seguida, ele pode ser dividido em várias “máquinas virtuais” independentes.

Cada uma dessas novas máquinas virtuais pode executar os seus próprios sistemas operacionais e aplicativos de forma independente, ainda compartilhando os recursos originais do servidor bare metal gerenciado pelo hypervisor. Esses recursos incluem a memória, a RAM, o armazenamento e assim por diante.

O hypervisor atua de forma semelhante a um policial de trânsito, direcionando e alocando os recursos do bare metal para cada uma das diversas novas máquinas virtuais a fim de evitar interrupções.

Existem dois tipos primários de hypervisors.

Hypervisors do tipo 1  são executados diretamente no hardware físico (geralmente um servidor), ocupando o lugar do S.O. Normalmente, um produto de software distinto é usado para criar e manipular VMs no hypervisor. Algumas ferramentas de gerenciamento, como o vSphere da VMware, permitem que você selecione um sistema operacional guest para a instalação na VM.

É possível usar uma VM como modelo, duplicando-a para a criação de outras. Dependendo de suas necessidades, é possível criar diversos modelos de VM para diferentes propósitos, como testes de software, bancos de dados de produção e ambientes de desenvolvimento.

Hypervisors do tipo 2  são executados como um aplicativo dentro de um S.O. de host e geralmente visam plataformas de área de trabalho ou de notebook de usuário único. Com um hypervisor do tipo 2, é possível criar manualmente uma VM e, em seguida, instalar nela um sistema operacional guest. É possível usar o hypervisor para alocar recursos físicos para a sua VM, configurando manualmente a quantia de núcleos do processador e a memória que pode ser usada. Dependendo dos recursos do hypervisor, também é possível configurar opções como a aceleração 3D para gráficos.

O vídeo a a seguir explica os fundamentos da virtualização. Confira também o artigo, "5 Benefícios da Virtualização."

Vantagens das VMs

As VMs oferecem vários benefícios quando comparadas ao hardware físico tradicional:

  • Utilização de recursos e ROI melhorado:  como várias VMs são executadas em um único computador físico, os clientes não precisam comprar um novo servidor toda vez que quiserem executar outro S.O. e podem obter mais retorno de cada peça de hardware que já possuem.

  • Escala: com a  computação em nuvem, é fácil implementar várias cópias da mesma máquina virtual para melhor acomodar aumentos em carga.

  • Portabilidade:  VMs podem ser realocadas conforme necessário entre os computadores físicos em uma rede. Isso possibilita a alocação de cargas de trabalho em servidores com capacidade de computação sobressalente. As VMs podem até se mover entre ambientes locais e na nuvem, tornando-os úteis para  cenários de nuvem híbrida  em que você compartilha recursos de computação entre seu data center e um provedor de serviços em nuvem.

  • Flexibilidade:  criar uma VM é mais rápido e mais fácil do que instalar um S.O. em um servidor físico porque é possível clonar uma VM com o S.O. já instalado. Desenvolvedores e testadores de software podem criar novos ambientes sob demanda para lidar com novas tarefas à medida que elas surgem.

  • Segurança:  VMs melhoram a segurança de várias maneiras quando comparadas a sistemas operacionais sendo executados diretamente em hardware. Uma VM é um arquivo que pode ser varrido por um programa externo em busca de softwares maliciosos. É possível criar uma captura instantânea inteira da VM a qualquer momento e, em seguida, restaurá-la para esse estado caso ela seja infectada por um malware, recuperando-a de forma rápida e eficaz. A criação rápida e fácil de VMs também possibilita excluir completamente uma VM comprometida e, em seguida, recriá-la rapidamente, acelerando a recuperação de infecções por malware.
Casos de uso de VM

As VMs podem ser usadas de diversas formas por administradores de TI corporativos e usuários.

Computação em nuvem:  nos últimos 10 anos, as VMs têm sido a unidade fundamental para a computação em nuvem, permitindo que dezenas de diferentes tipos de aplicativos e cargas de trabalho sejam executados e dimensionados com sucesso.

DevOps de apoio:  as VMs são uma ótima maneira de oferecer suporte a desenvolvedores corporativos, que podem definir modelos de VM com as configurações para seus processos de desenvolvimento e teste de software. Eles podem criar VMs para tarefas específicas, como testes de software estático, incluindo essas etapas em um fluxo de trabalho de desenvolvimento automatizado. Isso tudo ajuda a aperfeiçoar a  cadeia de ferramentas de DevOps.

Teste um novo sistema operacional:  uma VM permite testar um novo sistema operacional em sua área de trabalho sem afetar o seu S.O. primário.

Investigue malware:  VMs são úteis para pesquisadores de malware que frequentemente precisam de máquinas novas nas quais testar programas maliciosos.

Execute software incompatível:  alguns usuários podem preferir um S.O. enquanto ainda precisam de um programa que só está disponível em outro. Um bom exemplo é o software Dragon com ampla variedade de ditados de voz. Seu fornecedor, Nuance, descontinuou a versão macOS do produto. No entanto, a execução de um hypervisor focado em área de trabalho, como o VMware Fusion ou o Parallels, permite a execução do Windows em uma VM para acesso a essa versão do software.

Navegue de forma segura:  usar uma máquina virtual para a navegação permite visitar sites sem se preocupar com infecções. É possível tirar uma captura instantânea de sua máquina e, em seguida, recuperá-la após cada sessão de navegação. Um usuário pode realizar essa configuração por conta própria ao usar um hypervisor de área de trabalho do tipo 2. Como alternativa, um administrador pode fornecer uma área de trabalho virtual temporária localizada no servidor.

Tipos de VMs

Máquinas virtuais Windows

A maioria dos hypervisors oferece suporte a VMs em execução no sistema operacional Windows como guest. O hypervisor Hyper-V da Microsoft é fornecido como parte do sistema operacional Windows. Quando instalado, ele cria uma partição pai que contém ele mesmo e o sistema operacional Windows primário e ambos obtêm acesso privilegiado ao hardware. Outros sistemas operacionais, incluindo guests do Windows, são executados em partições filhas que se comunicam com o hardware por meio da partição pai.

Máquinas virtuais Android

O sistema operacional  Android de software livre do Google  é comum em dispositivos móveis e dispositivos domésticos conectados, como dispositivos de entretenimento doméstico. O sistema operacional Android é executado somente na arquitetura de processador ARM comum a esses dispositivos, mas entusiastas e jogadores do Android ou desenvolvedores de software podem querer executá-lo em PCs.

Isso é problemático  porque os PCs são executados em uma arquitetura de processador x86 completamente diferente e um hypervisor de virtualização de hardware transmite instruções somente entre a VM e a CPU. Ele não as converte para processadores com diferentes conjuntos de instruções. Há diversos projetos para lidar com esse problema.

Alguns, como o Shashlik ou o Genymotion, usam um emulador que recria a arquitetura ARM no software. Uma alternativa, o projeto Android-x86, move o Android para a arquitetura x86. Para executá-lo, deve-se instalar o programa Android-x86 como uma máquina virtual usando o hypervisor de tipo 2 VirtualBox. Outra alternativa, o Anbox, executa o sistema operacional Android no kernel de um sistema operacional Linux de host.

Máquinas virtuais Mac

A Apple permite que seu sistema macOS seja executado apenas em hardwares Apple, proibindo sua execução em hardwares de outras empresas como uma VM ou, de outra forma, sob o acordo de licença de usuário final. É possível usar hypervisors de tipo 2 no hardware Mac para criar VMs com um guest do macOS.

Máquinas virtuais iOS

Atualmente, não é possível executar o iOS em uma VM porque a Apple controla rigorosamente seu sistema operacional iOS e não permite que ele seja executado em qualquer outro dispositivo que não seja destinado a ele.

O mais próximo possível de uma VM iOS é o simulador de iPhone que acompanha o ambiente de desenvolvimento integrado Xcode, que simula todo o sistema do iPhone no software.

Máquinas virtuais Java

A plataforma Java é um ambiente de execução para programas escritos na linguagem de desenvolvimento de software Java. A promessa do Java era a funcionalidade para "gravar uma única vez e executar em qualquer lugar". Isso significava que qualquer programa Java poderia ser executado em qualquer hardware que executasse a plataforma Java. Para que isso seja possível, a plataforma Java inclui uma Java virtual machine (JVM).

Os programas Java contêm bytecode, que são instruções destinadas à JVM. A JVM compila esse bytecode no código da máquina, que é a linguagem de nível mais baixo usada pelo computador host. A JVM na plataforma Java de uma plataforma de computação criará um conjunto diferente de instruções de código de máquina para a JVM de outra, com base no código de máquina esperado pelo processador.

A JVM, portanto, não executa um sistema operacional inteiro e não usa um hypervisor, como fazem outras VMs. Em vez disso, ela converte programas de software de nível de aplicativo para execução em um hardware específico.

Para obter mais informações sobre Java, confira "Java: um guia completo."

Máquinas virtuais Python

Como a JVM, a VM Python não é executada em um hypervisor e não contém um sistema operacional guest. Ela é uma ferramenta que permite que programas escritos na linguagem de programação Python sejam executados em uma variedade de CPUs.

De forma semelhante ao Java, o Python converte seus programas em um formato intermediário chamado bytecode e os armazena em um arquivo pronto para execução. Quando o programa é executado, a VM Python converte o bytecode em um código de máquina para uma execução rápida.

Máquinas virtuais Linux

O Linux é um sistema operacional guest comum usado em muitas VMs. Ele também é um sistema operacional de host comum usado para executar VMs e tem até mesmo o próprio hypervisor, chamado de KVM (máquina virtual com base em kernel). O kernel do Linux convencional inclui a KVM desde 2007. Embora seja um projeto de software livre, a Red Hat agora é proprietária da empresa original que desenvolveu a KVM.

Máquinas virtuais VMware

A VMware foi um dos primeiros fornecedores de software de virtualização e agora é um fornecedor popular de hypervisors dos tipos 1 e 2 e de softwares de VM para clientes corporativos.

VMware: um guia completo” fornece uma visão geral abrangente de todos itens da VMware.

Máquinas virtuais Ubuntu

O Ubuntu é uma distribuição Linux produzida pela Canonical. Ele está disponível em versões de área de trabalho e de servidor, que podem ser instaladas como uma VM. O Ubuntu pode ser implementado como um sistema operacional guest no Microsoft Hyper-V. Ele fornece uma versão otimizada do Ubuntu Desktop que funciona bem no Modo de sessão aprimorada do Hyper-V, fornecendo integração estreita entre o host do Windows e a VM do Ubuntu. Ele inclui suporte para a integração de área de transferência, o redimensionamento dinâmico de área de trabalho, as pastas compartilhadas e a movimentação de mouse entre as áreas de trabalho do host e guest.

Diversos locatários vs. único locatário

Na computação em nuvem, as máquinas virtuais são geralmente fornecidas em variações de hospedagem única e hospedagem múltipla.

Máquinas virtuais públicas ou de hospedagem múltipla são aquelas nas quais diversos usuários estão compartilhando uma infraestrutura física comum. Essa é a abordagem mais econômica e escalável para provisionar máquinas virtuais, mas ela carece de algumas das características de isolamento preferenciais de empresas com exigências rígidas de segurança ou conformidade.

Os hosts dedicados e as instâncias dedicadas são dois modelos para máquinas virtuais de hospedagem única.

Um  host dedicado  envolve alugar uma máquina física inteira e manter um acesso sustentado e um controle sobre essa máquina, seu hardware e qualquer que seja o software instalado nela. Esse modelo fornece a quantia máxima de flexibilidade e transparência de hardware, além de controle e posicionamento de carga de trabalho e algumas vantagens para determinados softwares do tipo em que o usuário traz a própria licença.

Uma  instância dedicada  oferece o mesmo isolamento de hospedagem única e o mesmo controle sobre o posicionamento da carga de trabalho, mas não é acoplada a uma máquina física específica. Portanto, por exemplo, se uma instância dedicada for reinicializada, ela poderá acabar em uma nova máquina física, dedicada à conta individual, mas uma nova máquina e possivelmente em um local físico diferente.

Modelos de precificação para VMs

Os modelos de precificação mais comuns para máquinas virtuais na nuvem são o pré-pago (por hora ou segundo), as instâncias temporárias/pontuais, as instâncias reservadas e os hosts dedicados.

  • Pré-pago: no modelo pré-pago, não há custos iniciais para a máquina virtual e os usuários simplesmente pagam pelo que usam, normalmente sendo faturados por hora ou segundo, de acordo com o tipo de provedor e instância.

  • Instâncias temporárias/momentâneas: as instâncias temporárias e momentâneas, o modelo de menor custo de VMs, aproveitam o excesso de capacidade de um provedor, mas o provedor pode recuperar essa capacidade a qualquer momento. Elas geralmente são úteis para aplicativos que não precisam estar sempre ativos ou que são proibitivamente caros em qualquer outro modelo.

  • Instâncias reservadas: diferentemente dos modelos pré-pagos, as instâncias reservadas são fornecidas com um compromisso de prazo explícito, geralmente de um a três anos, mas também são acompanhadas de descontos consideráveis.

  • Hosts dedicados: no caso de hosts dedicados, um usuário normalmente assume o custo do servidor físico total e é faturado de acordo com quaisquer incrementos sob os quais o provedor ofereça servidores dedicados, geralmente por hora ou de forma mensal.
Máquinas virtuais vs. servidores bare metal

A escolha de uma máquina virtual em detrimento de uma física, também conhecida como  bare metal server, tem menos a ver com os recursos concorrentes e mais com o conhecimento do que é necessário e quando é necessário.

Bare metal servers significam hardware bruto, potência e isolamento. Eles são servidores físicos de hospedagem única completamente nulos quanto aos ciclos de hypervisor (software de virtualização) e totalmente dedicados a um único cliente, ou seja, você.

As cargas de trabalho que priorizam altamente o desempenho e a reclusão, como aplicativos com uso intensivo de dados e exigências de conformidade regulamentar, geralmente são mais adequadas para servidores bare metal, especialmente quando implementadas por períodos prolongados.

Os aplicativos de e-commerce, ERP, CRM, SCM e serviços financeiros são somente algumas das cargas de trabalho ideais para servidores bare metal.

Então, quando colocar um hypervisor em cima do hardware de bare metal para criar uma máquina virtual? Quando suas cargas de trabalho demandarem grande flexibilidade e escalabilidade.

As máquinas virtuais aumentam facilmente a utilização e a capacidade do servidor, sendo ideais para a movimentação de dados de uma máquina virtual para outra, o redimensionamento de conjuntos de dados e a divisão de cargas de trabalho dinâmicas.

Máquinas virtuais vs. contêineres

A maneira mais fácil de entender um  contêiner  é entender como ele difere de uma  máquina virtual  (VM) tradicional. Na virtualização  tradicional, seja local ou na nuvem, um  hypervisor  é usado para virtualizar o hardware físico. Cada VM contém um sistema operacional guest, uma cópia virtual do hardware que ele precisa para ser executado e um aplicativo com suas bibliotecas e dependências associadas.

Em vez de virtualizar o hardware subjacente, os contêineres virtualizam o sistema operacional (geralmente Linux) de modo que cada contêiner individual contenha  apenas  o aplicativo e suas bibliotecas e dependências. A ausência do sistema operacional guest é o motivo pelo qual os contêineres são tão leves e, portanto, rápidos e portáveis.

Os contêineres e o mecanismo de orquestração que os gerencia, Kubernetes, são adequados para arquiteturas modernas,  nativas da nuvem  e  de microsserviços . Embora os contêineres sejam mais comumente associados a serviços stateless, também podem ser adequados para serviços stateful.

Os contêineres também estão se tornando mais comuns em cenários de nuvem híbrida porque podem ser executados de maneira consistente em notebooks, na nuvem e na TI tradicional local.

A postagem do blog "Contêineres vs. VMs: qual é a diferença?" explica mais.

O vídeo a seguir detalha os fundamentos da conteinerização e como ela se compara ao uso de VMs:

Escolhendo um provedor de máquina virtual

A seleção de uma máquina virtual e de um provedor de nuvem não precisa ser um desafio, desde que você saiba o que procurar. Evidentemente, a máquina virtual precisa atender às suas necessidades de carga de trabalho e ao orçamento de seus negócios, mas outros fatores desempenham funções importantes entre você e seu ambiente de virtualização. Veja abaixo dez coisas a serem consideradas ao selecionar um provedor de serviços de máquina virtual.

Suporte confiável. Certifique-se de que haja suporte ao cliente 24h por telefone, e-mail, chat ou remoto. Você deseja que uma pessoa real do outro lado da linha o ajude em situações críticas de TI. Também é importante observar quais provedores de nuvem oferecem serviços adicionais para um suporte mais prático.

Opções gerenciadas. O provedor de nuvem oferece soluções tanto não gerenciadas quanto gerenciadas? Se você não conhece bem a tecnologia de virtualização, considere um provedor que seja responsável pela configuração, manutenção e monitoramento contínuo do desempenho.

Integração de software. O ambiente de sua máquina virtual funcionará bem com outros ambientes? Sistemas operacionais, softwares de terceiros, aplicativos e tecnologias de software livre ajudam você a fornecer mais soluções para seus negócios. Prefira um provedor de máquina virtual com fortes parcerias e suporte com os fornecedores de software mais usados do mercado. Observação: não se prenda a um único fornecedor.

Rede e infraestrutura de alta qualidade. Quão atualizada está a infraestrutura na qual a sua nova máquina virtual será executada? Isso inclui servidores bare metal confiáveis, data centers modernos e o backbone de rede. Um provedor de nuvem deve ser capaz de cumprir sua parte do negócio com hardwares de ponta e tecnologias de rede de alta velocidade.

Localização, localização, localização. Quanto mais próximos os dados estiverem de seus usuários, menos problemas você terá com relação à latência, segurança e entrega de serviços pontual. Uma boa rede global de data centers dispersos e locais POP é importante para que os dados possam ser dados onde e quando for necessário.

Backup e recuperação. Qual plano o seu provedor de nuvem tem para manter as suas máquinas virtuais em funcionamento diante de eventos inesperados? Ele também fornece opções adicionais de backup e redundância para o seu ambiente virtualizado? A operação contínua é algo que deve ser levado a sério.

Facilidade de escalabilidade. Quão rápido e fácil será acelerar, desacelerar, reservar, pausar e atualizar a sua máquina virtual? A palavra que você mais deseja ouvir quando se trata da capacidade para ajustar a escala de máquina virtual é “sob demanda”.

Configurações de CPU variadas. Quanto mais configurações, melhor. Nem toda configuração de máquina virtual se adapta a todas as cargas de trabalho durante cada estação de uso. Certifique-se de procurar um fornecedor de máquina virtual que ofereça pacotes de configuração variados para requisitos de hospedagem única e múltipla.

Camadas de segurança. Pergunte ao provedor sobre elas e, em seguida, pergunte novamente sobre elas. Seus dados de negócios são a moeda mais importante, especialmente ao lidar com informações confidenciais do cliente. Linhas de rede privada, opções de data centers federais, recursos de criptografia integrados e cumprimento dos padrões de conformidade regulamentar são essenciais para proteger seu ativo mais valioso.

Suporte à migração perfeita. Suas prioridades de TI sempre evoluirão. Disso, todos sabemos. Qualquer fornecedor de máquina virtual deve ser capaz de ajudá-lo a alternar entre ambientes híbridos, on-premise e externos. Procure opções de ingestão de dados completa, sobre a rede e a migração orientada por aplicativo.

Soluções relacionadas
IBM Cloud

A IBM Cloud with Red Hat oferece segurança líder no mercado, escalabilidade corporativa e inovação aberta para aproveitar todo o potencial da cloud e da IA.

Conheça a IBM Cloud
Soluções VMware

IBM Cloud for VMware Solutions foi projetado para ajudar a migrar cargas de trabalho VMware de implementações locais para a IBM Cloud.

Conheça as soluções IBM Cloud for VMware
Servidores Virtuais

Os servidores virtuais da IBM Cloud são públicos e dedicados e provisionam e ajustam a escala sob demanda, com opções de faturamento mensal e por hora.

Conheça os servidores virtuais
Recursos O que é cloud computing?

A computação em cloud transforma a infraestrutura de TI em um utilitário, permitindo se conectar a recursos e aplicativos de computação pela Internet, sem instalá-los e mantê-los no local.

O que é a cloud híbrida?

A nuvem híbrida integra serviços de nuvem pública, serviços de nuvem privada e infraestrutura local em um único ambiente de computação distribuído.

O que é DevOps?

O DevOps acelera a entrega de software de qualidade superior combinando e automatizando o trabalho de desenvolvimento de software e equipes de operações de TI.

Dê o próximo passo

O IBM Cloud Virtual Server for VPC oferece capacidade de computação de provisionamento rápido com as mais altas velocidades de rede e os recursos de rede definidos por software mais seguros disponíveis na IBM Cloud. Desenvolvida no IBM Cloud Virtual Private Cloud (VPC) e com poderosos processadores Intel® Xeon® de 2ª geração, essa infraestrutura simplificada para o desenvolvedor ajuda a impulsionar cargas de trabalho modernas com mais rapidez e facilidade através de perfis de instância predefinidos, implementação rápida e controle de rede privada em um ambiente de nuvem pública ágil. Escolha entre diversos locatários ou a opção dedicada, inclua GPUs e pague por hora de maneira pré-paga.

Conheça o IBM Cloud Virtual Server for VPC