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.
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.
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.
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.
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.
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.
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.
Solução
Solução
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos sem custo financeiro