O que é, usos e benefícios de uma máquina virtual?
Ainda que muita gente não saiba, as máquinas virtuais estão amplamente difundidas em uma série de utilizações quotidianas, trazendo vários benefícios em alguns casos e são essenciais em outros.
Se você ainda não sabe o que é uma máquina virtual, quais seus possíveis usos e como uma pode contribuir para seu negócio, no bate-papo de hoje vamos esclarecer essas questões.
O que é uma máquina virtual?
Uma máquina virtual, frequentemente também chamada apenas de VM (abreviação de virtual machine, em inglês), nada mais é do que um sistema executado dentro de um sistema operacional, que simula um computador físico e tudo o que esse computador é capaz de fazer.
Há quem diga que graças às máquinas virtuais, é possível ter um computador autônomo funcionando dentro de outro e de modo totalmente independente um do outro, o que não deixa de ser verdade.
Por meio de um processo conhecido como virtualização, o qual permite a utilização mais eficiente do hardware físico de um computador, de um servidor ou até de um notebook, utiliza-se um software para criar uma camada de abstração sobre o hardware do computador, possibilitando que os recursos desse hardware (processadores, memória, armazenamento, rede, etc), sejam alocados para uma máquina virtual ou VM.
Suponhamos que em um hipotético servidor, disponha de um processador octacore (8 núcleos físicos), com 16 threads, 64 Gb de memória RAM e 2 Tb de armazenamento. Entre muitas possibilidades, nele é possível criar uma VM que tenha como especificações 4 cores ou vCPUs (CPUs virtuais), 8 Gb de RAM e 250 Gb de armazenamento, por exemplo.
Na máquina virtual resultante, pode-se instalar um sistema operacional diferente daquele que foi instalado no hardware físico.
Se por exemplo, tivermos Windows como SO da máquina física, além de ser possível também instalar o Windows na VM criada, podemos ter qualquer distribuição Linux, ou FreeBSD, ou ainda outro sistema operacional.
Como resultado, em uma mesma máquina física, temos o sistema originalmente instalado e tudo que nele houver, além de uma variedade de outras possibilidades, que funcionam de modo independente e isolado do primeiro, exceto é claro que algum fator decisivo o afete, como a interrupção do fornecimento de energia ou um problema no hardware.
Quais os tipos de máquinas virtuais?
A medida que a prática de criar máquinas virtuais se popularizou, houve uma diferenciação surgida em função das diferenças das necessidades, gerando dois tipos de máquinas virtuais:
-
Máquinas virtuais de processo – uma VM de processo, ou VM de aplicativo ou ambiente de execução gerenciado (MRE, sigla de Managed Runtime Environment), 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 ou ele é concluído;
-
Máquinas virtuais de sistema – uma VM de sistema ou VM de hardware, simula um sistema operacional completo, sendo o tipo mais comum e que por simular um computador físico completo, frequentemente é o que nos referimos quando mencionamos "máquinas virtuais".
Entretanto, com o avanço e popularização da computação em nuvem (Cloud Computing), tem sido cada vez mais comum as VMs de nuvem e que nada mais são do que as máquinas virtuais criadas sobre outro computador virtual na nuvem. Se preferir, é uma VM dentro de outra VM.
Aliás, a computação em nuvem é apoiada e faz uso extensivo de virtualização e máquinas virtuais.
Como funciona uma máquina virtual?
Conforme mencionamos, as máquinas virtuais são possíveis graças ao conceito de virtualização, segundo o qual um único computador (host ou hospedeiro) pode executar várias VMs (guests ou convidadas), desde que haja recursos físicos suficientes para cada uma criada e cada qual com seus próprios sistemas operacionais, núcleos de processador, memória, armazenamento e rede.
Cada sistema operacional é executado da mesma maneira como seria no hardware host.
Sendo assim, o usuário de cada VM tem uma experiência quase idêntica que ele teria ao usar o sistema operacional executado em uma máquina física, com recursos iguais aos alocados para a máquina em tempo real.
Parte essencial disso tudo, cabe ao hipervisor, o qual consiste de uma camada de software que permite que máquinas virtuais sejam executadas no computador host, por meio do gerenciamento do uso / alocação de processadores, memória e armazenamento em todas as máquinas virtuais.
Um hipervisor gerencia o hardware e separa os recursos físicos de cada um dos ambientes virtuais. Esses recursos físicos são estipulados, conforme a necessidade do ambiente para as VMs.
Quando a máquina virtual está sendo executada e um usuário ou programa emite uma instrução que exige recursos adicionais do ambiente físico, o hipervisor se encarrega dessa solicitação, de modo a permitir que as aplicações e o sistema operacional da máquina virtual, façam uso dos recursos físicos compartilhados.
Também chamado de monitor de máquina virtual (VMM), o hipervisor também é responsável pelo monitoramento das VMs, garantindo que vários sistemas operacionais, iguais ou diferentes, tenham acesso aos recursos de hardware.
Quais os usos das máquinas virtuais?
Se está claro o que é uma máquina virtual, é de se supor que vários usos são possíveis, tanto quanto um computador físico.
Em termos práticos, as VMs costumeiramente são usadas para:
-
VPS – os VPSs (Virtual Private Servers) ou servidores virtuais privados, são um exemplo de uso bastante frequente, na medida que é possível dispor de um servidor equivalente em termos de recursos, porém mais acessível do ponto de vista financeiro;
-
Desenvolvimento de software – permite desenvolver e testar aplicativos para diferentes sistemas operacionais sem a necessidade de dispor de hardware dedicado a cada um;
-
Aplicações na nuvem – possibilita criar e implantar aplicativos para uso na nuvem;
-
Teste de SO – experimentar e testar um novo SO (sistema operacional), incluindo versões beta, como por exemplo, verificar se o Ubuntu é bom substituto ao Windows 10, antes de instalá-lo em definitivo;
-
Backup – fazer backup do sistema operacional existente no hardware físico, desde que não seja a única alternativa de backup, com a vantagem de rápida recuperação em caso de falhas;
-
Isolamento – acessar arquivos infectados por malwares ou aplicativos potencialmente nocivos ou maliciosos, em um ambiente isolado e, portanto, sem ameaça ao sistema principal;
-
Treinamento – permite o treinamento em sistemas e a experimentação e prática dos treinandos, em um ambiente controlado e sem riscos ao sistema principal;
-
Testes multiplataforma – verificar a compatibilidade de software em diferentes plataformas;
-
Computação em Nuvem – criar máquinas virtuais para fornecer serviços de computação em nuvem escaláveis.
Quais são os benefícios do uso de VMs?
Uma vez que o uso de máquinas virtuais nos mais diversos cenários só faz crescer, é de se supor que ofereçam diferentes benefícios em relação ao passado.
Por alguns dos usos mais comuns listados, as respectivas vantagens já devem estar aparentes, mas ainda assim vamos explicitamente comentar os principais benefícios.
Economia de tempo
Configurar e subir – como é chamado o processo – uma VM, é um processo bastante rápido, comparado ao trabalho equivalente de preparar um computador físico.
A economia de tempo aumenta conforme é maior a necessidade e a frequência de dispor de diferentes ambientes.
Ambiente independente
Embora se possa ter várias máquinas virtuais em um mesmo servidor ou desktop, como se comportam como computadores individuais com SOs e aplicativos individuais, na prática seu funcionamento é completamente independentes umas das outras e do computador host.
Graças a isso é possível executar VMs em que cada uma esteja executando sistemas operacionais totalmente distintos e sob demandas das mais variadas.
Portabilidade
Como as VMs são independentes umas das outras, elas também são extremamente portáteis.
É possível mover uma VM de um hipervisor para outro hipervisor em um computador completamente diferente, por meio de um processo bastante simples e rápido.
Redução de custos
A execução de vários ambientes virtuais por meio de uma única infraestrutura significa que você pode reduzir significativamente o volume ocupado pela infraestrutura física, ou seja, menor quantidade de servidores, do espaço ocupado no hack e tudo associado, como menos cabeamento, manutenção e fornecimento de energia, por exemplo.
Flexibilidade e agilidade
Ativar uma VM é relativamente fácil e rápido, sendo assim é muito mais simples criar um ambiente adequado para cada demanda que surgir, como por exemplo, um ambiente totalmente novo desenvolvimento e testes, ou para rodar um sistema específico.
Menor ociosidade
A virtualização é uma maneira de utilizar o poder computacional disponível, reduzindo a ociosidade de equipamentos antes dedicados a finalidades específicas. Além disso, a manutenção e atualizações podem ser feitas sem a necessidade de desligar o sistema, reduzindo o tempo de inatividade e aumentando o uptime.
Recuperação
Graças à portabilidade, que possibilita mudar uma VM para um hipervisor em outro computador diferente, acaba sendo uma solução para recuperação de sistemas e backup, caso ocorra uma falha no host.
Escalabilidade
Com a virtualização, ganha-se maior escalabilidade com os sistemas e aplicações, apenas adicionando mais servidores físicos ou virtuais para distribuir a carga de trabalho entre diferentes VMs, o que por sua vez resulta em maior disponibilidade e desempenho das aplicações.
Segurança
Como as máquinas virtuais comportam-se de modo autônomo, uma aplicação de segurança questionável ou sensível, não afetará o sistema operacional do host. As VMs também permitem isolar situações as quais não se tem certeza de serem seguras, isolando-as para evitar riscos para o computador host e por consequência, contribuindo para a segurança cibernética da empresa.
Conclusão
As máquinas virtuais representam um importante avanço em tecnologia da informação, com ganhos em termos de segurança, tempo, recursos e versatilidade.