Uma Virtual Machine (VM) é uma representação ou emulação virtual de um computador físico que usa software em vez de hardware para executar programas e implementar aplicações.
Ao usar os recursos de uma única máquina física, como memória, CPU, interface de rede e armazenamento, as VMs permitem que as empresas executem várias máquinas virtualmente com diferentes sistemas operacionais em um único dispositivo.
As VMs são normalmente chamadas de convidadas, com uma ou mais máquinas "convidadas" sendo executadas em uma máquina física chamada de máquina "hospedeira". A tecnologia de VM inclui servidores virtuais, instâncias de servidor virtual (VSIs) e servidores virtuais privados (VPSs).
Em um relatório da Global Market Insights (GMI), o tamanho do mercado de virtual machines ultrapassou US$ 9,5 bilhões em 2023. A GMI projeta que este mercado se expandirá a uma taxa composta de crescimento anual (CAGR) de cerca de 12% entre 2024 e 2032, impulsionada pela adoção constante da computação em nuvem. À medida que as empresas migram para a nuvem devido à sua escalabilidade, flexibilidade e eficiência de custos, os provedores de nuvem continuam integrando virtual machines e outras tecnologias críticas (por exemplo, contêineres) para fornecer uma infraestrutura de TI consistente.
As VMs funcionam usando a virtualização, um processo de criação de versões virtuais ou baseadas em software de recursos (computador, armazenamento, rede, servidores) ou aplicações.
A virtualização permite o uso mais eficiente do hardware físico do computador e é fundamental para a computação em nuvem.
A virtualização é possível com um hipervisor, também conhecido como monitor de virtual machines (VMM). Essa camada de software leve gerencia as virtual machines à medida que elas são executadas lado a lado.
O nascimento da virtualização remonta a 1964, quando a IBM projetou e apresentou o CP-40, um projeto experimental de pesquisa de compartilhamento de tempo para o IBM System/360. O CP-40, que mais tarde evoluiu para o CP-67 e depois para o Unix, fornecia um hardware de computador compatível com vários usuários simultâneos e abriu caminho para as virtual machines.
Em 2 de agosto de 1972, a IBM lançou o que muitos consideram a primeira virtual machine, o VM/370, e o primeiro mainframe System/370 compatível com memória virtual.
Em 1998, a VMware (link externo a ibm.com) desenvolveu o sistema operacional x86, que permitiu que uma única máquina fosse segmentada em várias virtual machines, cada uma com seu próprio sistema operacional. Em 1999, a empresa lançou o VM Workstation 1.0, o primeiro produto comercial que permitia aos usuários executar vários sistemas operacionais como virtual machines em um único PC.
Atualmente, a virtualização é uma prática padrão para a infraestrutura de TI de nível empresarial e uma força motriz na economia da computação em nuvem, permitindo que as empresas aumentem a utilização da capacidade e reduzam os custos. Toda a infraestrutura de TI pode ser virtualizada, incluindo ambientes de desktop, sistemas operacionais, hardware de armazenamento, data centers e muito mais.
A virtualização depende da tecnologia de hipervisor. Essa camada de software colocada em um computador físico ou servidor (também conhecido como bare metal server) permite que o computador físico separe seu sistema operacional e aplicações do hardware. Essas virtual machines podem executar seus sistemas operacionais e aplicações de forma independente, enquanto ainda compartilham os recursos originais (memória, RAM, armazenamento e assim por diante) do servidor, que o hipervisor gerencia. Em essência, o hipervisor atua como um guarda de trânsito, alocando recursos para virtual machines e garantindo que elas não atrapalhem umas às outras.
Existem dois tipos principais de hipervisores:
Além da classificação de acordo com o gerenciamento do hipervisor, as virtual machines se enquadram em duas categorias principais: virtual machines de sistema (também conhecidas como máquinas de virtualização completa) e virtual machines de processo.
As VMs do sistema permitem o compartilhamento de recursos de máquinas físicas subjacentes entre diferentes máquinas virtuais, cada uma executando seu próprio sistema operacional. Por outro lado, as máquinas virtuais de processo (também chamadas de máquinas virtuais de aplicações) executam uma aplicação dentro de um sistema operacional e oferecem suporte a um único processo. As máquinas virtuais Java, que executam programas compilados em Java, são exemplos de VMs de processo.
As VMs oferecem inúmeras vantagens em relação ao hardware físico tradicional.
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 sistema operacional. Portanto, podem obter mais retorno de cada hardware que já possuem, reduzindo consideravelmente os custos de TI relacionados a despesas operacionais e de capital.
Como as VMs são baseadas em software, é fácil criar novas, o que torna mais rápido o escalonamento para atender às novas demandas de carga de trabalho em comparação com o provisionamento de novos ambientes baseados em hardware.
As empresas podem realocar as VMs conforme a necessidade entre os computadores físicos em uma rede. Esse recurso possibilita alocar cargas de trabalho em servidores com capacidade de computação sobressalente. As VMs podem até mesmo migrar entre ambientes locais e de nuvem, tornando-as ú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 de nuvem.
Criar uma VM é mais rápido e fácil do que instalar um sistema operacional em um servidor físico, pois você pode clonar uma VM com o sistema operacional já instalado. Desenvolvedores e testadores de software podem criar novos ambientes sob demanda para lidar com novas tarefas à medida que elas surgirem.
As VMs melhoram a segurança de várias maneiras em comparação com os sistemas operacionais, que são executados diretamente no hardware. Usando um programa externo, você pode verificar um arquivo de VM em busca de um software malicioso. Você pode criar um instantâneo da VM a qualquer momento e restaurá-la para esse estado se ela for infectada por um malware, fazendo efetivamente com que a VM volte no tempo. A criação rápida e fácil de VMs também torna possível excluir e recriar rapidamente uma VM comprometida, acelerando a recuperação de infecções por malware.
Com menos servidores físicos necessários para executar cargas de trabalho e aplicações, você pode reduzir drasticamente o consumo de energia para melhorar seu impacto ambiental.
Embora as VMs tenham muitos benefícios, elas têm algumas desvantagens a serem consideradas.
As VMs dependem dos recursos de hardware disponibilizados no computador host. Recursos limitados podem levar à redução do desempenho e a ineficiências.
As máquinas virtuais podem ser complexas de configurar e de gerenciar, exigindo equipes com conhecimento técnico e experiência para configurá-las e mantê-las.
As VMs representam o risco de ponto único de falha por dependerem de um computador físico.
As VMs têm uma ampla variedade de usos para administradores e usuários de TI corporativos, incluindo os seguintes:
A VMware é a primeira empresa a comercializar com sucesso a virtualização da arquitetura de microprocessadores x86, líder no mercado de virtualização. A VMware fornece o hipervisor do tipo 1 e tipo 2 e software de VM para clientes empresariais.
A maioria dos hipervisores oferece suporte a VMs executando o sistema operacional Windows como convidado. O hipervisor Hyper-V da Microsoft faz parte do sistema operacional Windows. Quando instalado, ele cria uma partição principal que contém a si mesmo e o sistema operacional Windows principal, cada um com acesso privilegiado ao hardware. Outros sistemas operacionais, incluindo os convidados do Windows, são executados em partições secundárias e se comunicam com o hardware por meio da partição principal.
O sistema operacional Android de código aberto do Google é comum em dispositivos móveis e dispositivos domésticos conectados.
O sistema operacional Android é executado apenas na arquitetura de processador ARM típica desses dispositivos, mas entusiastas, jogadores de Android ou desenvolvedores de software podem querer executá-lo em PCs. Essa situação pode ser problemática porque os PCs são executados em uma arquitetura de processador x86 totalmente diferente e um hipervisor de virtualização de hardware só transmite instruções entre a VM e a CPU. Ele não as traduz para processadores com conjuntos variados de instruções.
Vários projetos, como o Shashlik ou o Genymotion, podem lidar com esse problema usando um emulador que recria a arquitetura ARM no software. O projeto Android-x86, uma alternativa, transporta o Android para a arquitetura x86. Para executá-lo, você deve instalar o programa Android-x86 como uma máquina virtual que usa o hipervisor VirtualBox do tipo 2. Outra alternativa, o Anbox, executa o sistema operacional Android no kernel de um sistema operacional Linux hospedeiro.
A Apple permite que seu sistema macOS seja executado somente em um hardware da Apple. Isso significa que você não pode executá-lo em um hardware que não seja da Apple como uma VM ou sob seu contrato de licença de usuário final. No entanto, você pode usar hipervisores do tipo 2 em um hardware Mac para criar VMs com um convidado no macOS.
Atualmente, é impossível executar o iOS em uma VM porque a Apple controla rigorosamente seu sistema operacional iOS e só permite que ele seja executado em dispositivos iOS.
O que mais se aproxima de uma VM do iOS é o simulador do iPhone que vem com o ambiente de desenvolvimento integrado Xcode, que simula todo o sistema do iPhone em um software.
A plataforma Java é um ambiente de execução para programas que são escritos na linguagem de desenvolvimento de software Java. A promessa do Java "escreva uma vez, execute em qualquer lugar" significa que qualquer programa Java pode ser executado em qualquer plataforma Java, e é por isso que a plataforma Java incluiu uma máquina virtual Java (JVM).
Os programas Java contêm bytecode, que é uma forma de instrução destinada à JVM. A JVM compila esse bytecode para código de máquina, que é a linguagem de nível mais baixo usada pelo computador hospedeiro. A JVM na plataforma Java de uma plataforma de computação cria 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 que o processador espera.
Portanto, a JVM não executa um sistema operacional inteiro e não usa um hipervisor como outras VMs fazem. Em vez disso, ele traduz programas de software em nível de aplicação para serem executados em um hardware específico.
Como a JVM, a VM do Python não é executada em um hipervisor nem contém um sistema operacional convidado. É uma ferramenta que permite que programas escritos em Python sejam executados em várias CPUs.
Semelhante ao Java, o Python traduz 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 traduz o bytecode em código de máquina para uma execução rápida.
O Linux é um sistema operacional convidado típico usado em muitas VMs. É também um sistema operacional hospedeiro típico usado para executar VMs e até tem seu próprio hipervisor, a máquina virtual baseada em kernel (KVM). Embora seja um projeto de código aberto, a Red Hat é proprietária da KVM.
Ubuntu é uma distribuição Linux produzida pela Canonical. Está disponível nas versões desktop e servidor, que você pode instalar como uma VM. Os usuários podem implementar o Ubuntu como sistema operacional convidado 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, proporcionando uma forte integração entre o hospedeiro Windows e a VM Ubuntu. Ele inclui suporte para integração da área de transferência, redimensionamento dinâmico da área de trabalho, pastas compartilhadas e movimentação do mouse entre as áreas de trabalho hospedeira e convidada.
As máquinas virtuais públicas ou multilocatário são máquinas virtuais com vários usuários que compartilham uma infraestrutura física comum. Esse modelo é a abordagem mais econômica e escalável para o provisionamento de máquinas virtuais. No entanto, os ambientes multilocatários não têm algumas características de isolamento que as organizações com requisitos rigorosos de segurança ou conformidade podem preferir.
Dois modelos para as máquinas virtuais de locatário único são os hospedeiros dedicados e as instâncias dedicadas.
Um modelo de pagamento conforme o uso não tem custos iniciais para a máquina virtual e os usuários simplesmente pagam pelo que usam. Os clientes pagam por hora ou segundo, dependendo do provedor e do tipo de instância.
O modelo de VMs de menor custo, instâncias temporárias ou pontuais aproveita o excesso de capacidade de um provedor, mas pode ser recuperado pelo provedor a qualquer momento. As instâncias temporárias/pontuais são úteis para as aplicações que não precisam estar sempre ativas ou que são caras em demasia em qualquer outro modelo.
Diferentemente dos modelos de pagamento conforme o uso, os casos reservados vêm com um compromisso explícito de prazo, geralmente entre um e três anos, mas também incluem grandes descontos.
Normalmente, o usuário arca com o custo total do servidor físico e é cobrado de acordo com os intervalos definidos pelo provedor para servidores dedicados, geralmente por hora ou por mês.
Os servidores bare metal são sinônimos de hardware bruto, potência e isolamento. Eles são servidores físicos de locatário único, completamente desprovidos de ciclos de hipervisor (software de virtualização) e totalmente dedicados a um único cliente: você.
Cargas de trabalho que priorizam desempenho e isolamento, como aplicações com computação intensiva de dados e mandatos de conformidade regulatória, normalmente são mais adequadas para servidores bare metal, especialmente quando implementadas por períodos prolongados.
Programas de recursos empresariais (ERP), gerenciamento de relacionamento com o cliente (CRM), gerenciamento da cadeia de suprimentos (SCM), aplicações de comércio eletrônico e serviços financeiros são apenas algumas das cargas de trabalho ideais para bare metal servers.
Por outro lado, quando suas cargas de trabalho exigem o máximo de flexibilidade e escalabilidade, é melhor colocar um hipervisor no hardware bare metal para criar uma máquina virtual. As máquinas virtuais aumentam a capacidade e a utilização do servidor. Eles são ideais para migrar dados de uma VM para outra, redimensionar conjuntos de dados e dividir cargas de trabalho dinâmicas.
A maneira mais fácil de entender um contêiner é saber como ele difere de uma virtual machine (VM) tradicional. Na virtualização tradicional, seja no local ou na nuvem, um hipervisor ajuda a virtualizar o hardware físico. Cada VM contém um sistema operacional convidado, uma cópia virtual do hardware do qual o sistema operacional precisa para ser executado e uma aplicação e suas bibliotecas e dependências associadas.
Em vez de virtualizar o hardware subjacente, os contêineres virtualizam o sistema operacional (normalmente Linux). Cada contêiner contém apenas a aplicação e suas bibliotecas e dependências. A ausência do sistema operacional convidado é o motivo pelo qual os contêineres são tão leves, rápidos e portáteis.
Contêineres e Kubernetes, a plataforma de orquestração de contêineres de código aberto que os gerencia, tornaram-se as unidades padrão das arquiteturas modernas nativas da nuvem e de microsserviços. Embora os contêineres sejam mais comumente associados a serviços sem estado, as organizações também podem usá-los para serviços com estado. Os contêineres são padrão nos cenários de nuvem híbrida porque podem ser executados de forma consistente na nuvem pública, nuvem privada e configurações no local tradicionais. Hoje, uma organização pode executar a aplicação em sua nuvem privada, mas amanhã poderá ser necessário implementá-la em uma nuvem pública de um provedor diferente. A conteinerização de aplicações oferece às equipes a flexibilidade necessária para lidar com os diversos ambientes de software da TI moderna.
É importante observar que as empresas podem coexistir com contêineres e máquinas virtuais. Por exemplo, é comum executar contêineres em VMs, já que muitas empresas têm uma infraestrutura baseada em VM.
Uma empresa pode escolher um contêiner para executar uma aplicação e ter uma virtual machine para disponibilizar a infraestrutura subjacente. Esse método combina a portabilidade e a velocidade dos contêineres com a segurança das virtual machines. Em outro cenário, uma instituição financeira pode utilizar VMs para seus sistemas de banco de dados, garantindo uma maior segurança com isolamento de recursos, e utilizar contêineres para aplicações front-end, como aplicativos móveis voltados para o cliente.
A publicação do blog "Contêineres versus VMs: qual é a diferença?" explica melhor.
O vídeo a seguir detalha os fundamentos da conteinerização e como ela se compara ao uso de VMs:
A seleção de uma máquina virtual e de um provedor de nuvem começa com a análise de suas necessidades de carga de trabalho e de orçamento, além de outros fatores críticos. Veja abaixo 10 coisas a serem consideradas ao selecionar um provedor de serviços de máquina virtual.
Acelere a transformação de negócios com soluções em nuvem projetadas para inovação e crescimento. Explore ferramentas e insights avançados para se manter à frente da concorrência.
Tudo pronto para modernizar sua empresa? Descubra as estratégias de migração para a nuvem mais eficientes que podem otimizar o desempenho, reduzir os custos e aumentar a escalabilidade.
Explore como a infraestrutura como serviço (IaaS) fornece à sua empresa soluções de infraestrutura em nuvem escaláveis, flexíveis e econômicas, adaptadas às suas necessidades.
Saiba como a IaaS, a PaaS e o SaaS podem transformar suas operações, oferecendo flexibilidade, escalabilidade e economia. Entenda as diferenças e escolha a solução perfeita para o seu crescimento.
O IBM Cloud Virtual Server for VPC é uma linha de servidores virtuais Intel x86, IBM® Z e IBM LinuxONE construídos na IBM Cloud Virtual Private Cloud.
Os servidores dedicados da IBM Cloud fornecem uma solução escalável de hospedagem na web com tráfego de backhaul ilimitado e sem custo e amplas opções de personalização.
Libere novos recursos e aumente a agilidade dos negócios com os serviços de consultoria em nuvem da IBM. Descubra como cocriar soluções, acelerar a transformação digital e otimizar o desempenho por meio de estratégias de nuvem híbrida e parcerias especializadas.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io