O que é a virtualização e por que é importante estudá-la
Como futura desenvolvedora, é importante compreender determinados conceitos da computação. A virtualização é uma ferramenta muito valiosa para a área de desenvolvimento de software, uma vez que permite a criação de sistemas isolados e mais seguros para teste de softwares em desenvolvimento, redução de gastos com equipamentos físicos, um melhor aproveitamento dos recursos de hardware, entre outros benefícios.
A virtualização é a simulação de um computador, que recebe o nome de máquina virtual, em computador físico. Isso significa que um único hardware roda múltiplos sistemas operacionais ou ambientes isolados ao mesmo tempo, como se fossem computadores independentes.
Um pouco de história
A virtualização remonta ao início dos anos 70. Nessa época, era comum que cada computador, mesmo de um único fabricante, tivesse seu próprio sistema operacional, e isso se tornou uma das principais razões para o aparecimento das máquinas virtuais: permitir que qualquer software pudesse ser executado em diferentes computadores. A IBM foi a primeira a implementar a ideia em sua linha de mainframes IBM System/370 e seu sucessores.
Atualmente, a virtualização tornou-se importante devido ao aumento do poder computacional dos atuais processadores, a disseminação de sistemas distribuídos e a onipresença das redes de computadores.
A máquina virtual
Na minha jornada na DIO, aprendi a criar máquinas virtuais para testar o sistema operacional Linux.
Uma máquina virtual nada mais é que uma camada de software que oferece um ambiente completo muito similar a uma máquina física. Assim como um computador real, uma máquina virtual possui um sistema operacional, CPU virtual, memória, discos para armazenar arquivos, entre outros recursos.
Portanto, pode-se usar uma máquina virtual para aprender a mexer no Linux, já que se trata de uma simulação de um computador físico real e funciona como um ambiente isolado dentro da máquina, evitando conflitos com o sistema operacional principal, como o Windows.
Quem cria e executa as máquinas virtuais é um software chamado de hipervisor. Ele separa os recursos físicos do sistema e os divide para que ambientes virtuais possam usá-los, conforme necessário.
Tipos de hipervisores
Tipo 1: Nativo ou Bare Metal
Executado diretamente no hardware da máquina, sem precisar de um sistema operacional intermediário. Ele substitui um sistema operacional host, como o Windows ou Linux, e é o gestor principal do sistema. É mais comum em data centers ou ambientes baseados em servidor.
Tipo 2: Hipervisor hospedado
Esse tipo de hipervisor precisa de um sistema operacional hospedeiro para funcionar, pois é executado como um software dentro dele. É mais utilizado em computadores pessoais para fins educacionais e de teste. Exemplo: VirtualBox
KVM: máquina virtual baseada em Kernel
O KVM (Kernel-based virtual machine) é uma tecnologia de virtualização nativa do Linux que permite que o kernel do sistema operacional atue como um hipervisor. Suporta a execução de múltiplos sistemas operacionais e os usuários podem criar e executar várias máquinas virtuais em um único servidor.
Tipos de virtualização
- Virtualização de Servidores: executa em um único servidor físico diversos servidores virtuais. Cada servidor virtual funciona de forma independente, sem problemas de compatibilidade.
- Virtualização de Redes: cria uma representação lógica de uma rede física, utilizando software em vez de hardware para gerenciar conexões, roteamento, segurança e outros recursos.
- Virtualização de Desktop: cria desktops virtuais nos quais os usuários podem acessar arquivos, dispositivos, aplicativos e dados de qualquer local. O sistema operacional e os aplicativos de um computador são executados em um servidor remoto, em vez de ficarem armazenados e processados localmente no próprio dispositivo do usuário.
- Virtualização de Armazenamento: agrupa todos os recursos de armazenamento físico e os apresenta como um único ambiente de armazenamento virtualizado.
Computação em nuvem
A virtualização é uma tecnologia que torna possível a computação em nuvem.
A nuvem oferece serviços de computação, como servidores, armazenamento, banco de dados, rede, software, análise e inteligência através da internet. A utilização de serviços em nuvem são mais rápidos e econômicos. No lugar de investir dinheiro em uma infraestrutura de TI, as empresas podem simplesmente deslocar uma parte dessa infraestrutura interna para nuvem, onde ela contrata os recursos computacionais necessários de um provedor. Nesse caso, a empresa armazena e processa seus dados em data centers de terceiros.
Um exemplo de plataforma de computação em nuvem é a Amazon Web Services (AWS), que fornece diversos serviços baseados em virtualização.
Benefícios da Virtualização
→ Melhor aproveitamento do hardware
Em vez de investir em várias máquinas físicas, que consomem espaço, eletricidade e exigem manutenção constante, a virtualização permite que uma única máquina hospede várias máquinas virtuais, otimizando os recursos disponíveis.
→ Maior segurança
Como as máquinas virtuais são ambientes isolados, um problema em uma delas não afeta as outras nem compromete o computador físico. Isso torna a virtualização ideal para testes e experimentação sem riscos para o sistema principal.
→ Facilidade na recuperação de dados
Caso ocorra algum desastre natural ou um ataque cibernético, é mais fácil recuperar o que foi perdido, ao contrário dos equipamentos físicos que demandam mais tempo e recursos.
→ Sistemas mais escaláveis
Se um sistema precisar crescer e demandar mais servidores no futuro, a virtualização permite adicionar novos recursos rapidamente, sem a necessidade de novos equipamentos físicos.
Conclusão
A virtualização revolucionou a computação ao permitir que múltiplos sistemas operacionais e serviços rodem em um único hardware, reduzindo custos e aumentando a eficiência. Seja para aprendizado, desenvolvimento de software ou grandes infraestruturas de TI, a virtualização oferece flexibilidade, segurança e escalabilidade.
Dicas de materiais de estudo sobre o assunto:
- Artigo de Alexandre Carissimi "Virtualização: da teoria a soluções" da Universidade Federal do Rio Grande do Sul (UFRGS). 2008.
- O que é Virtualização - Introdução e conceitos básicos. Disponível em: <https://www.youtube.com/watch?v=XD1zl2m9wSU>.
- O que é um pipeline de CI/CD?. Disponível em: <https://www.redhat.com/pt-br/topics/virtualization/what-is-virtualization>.
- O que é Cloud Computing - Computação em Nuvem. Disponível em: <https://www.youtube.com/watch?v=LG7AVqWR4rk>.
- O que é a computação em nuvem?. Disponível em: <https://aws.amazon.com/pt/what-is-cloud-computing/>.