Conceitos básicos de cloud computing, pt. 2. Virtualização, Hypervisor e Máquinas Virtuais (VMs)
Tags: cloudcomputing, beginners, azure, virtualmachine
Published: 2023-09-23 13:14:30

No [post anterior](https://dev.to/macariobm/conceitos-basicos-de-cloud-computing-pt-1-definicoes-tipos-e-servicos-iaas-paas-saas-57e5) eu mencionei as Máquinas Virtuais e agora chegou o momento de falarmos um pouco mais sobre esse tipo de IaaS. 

Mas antes precisamos dar um passo atrás:

####:diamond_shape_with_a_dot_inside: O que é virtualização?
</br>
</br>
</br>

O processo de virtualização nada mais é que converter recursos físicos em recursos virtuais. 

Existem os seguintes tipos:

:snowflake: **Virtualização em nível de Sistema Operacional (SO)** - um software de virtualização (como o Docker) é instalado num SO e, a partir dele, cria, executa e distribui aplicações em pacotes de código com suas dependências. Esses pacotes (chamadas de _containers_) são independentes entre si e compartilham o _kernel_ (núcleo) do Sistema Operacional do _host_. Isso permite que vários elementos de uma aplicação funcionem paralelamente e que sejam leves e portáteis, favorecendo, por exemplo, a arquitetura de microsserviços.




:snowflake: **Virtualização de Hardware** - nesse caso a virtualização se dá por meio de um software chamado **Hypervisor** que permite virtualizar CPUs, discos, rede, RAM e gerenciar vários servidores virtuais sobre um mesmo _host_. Como não compartilham o _kernel_ do SO, é possível rodar servidores Linux sobre um _host_ Windows e vice-versa. Apesar dessa flexibilidade, não podemos perder de vista que todos os recursos compartilham a capacidade de processamento do _host_. 


####:diamond_shape_with_a_dot_inside: Tipos de Hypervisor
</br>
</br>
</br>

:cyclone: **Hypervisor tipo 1** - roda logo acima do hardware do _host_ sem precisar de um SO. São exemplos de Hypervisor tipo 1: Hyper-V e VMWARE ESXi. Esse tipo é mais comum em ambientes empresariais.

:cyclone: **Hypervisor tipo 2** - roda sobre o SO do _host_ e são normalmente direcionados ao usuário final. São exemplos de Hypervisor tipo 2: VMWARE Workstation e VirtualBox.

É possível unir os dois tipos de virtualização com a chamada **virtualização aninhada** ao rodar containers em servidores virtuais.

####:diamond_shape_with_a_dot_inside: Mas e as Máquinas Virtuais?
As Máquinas Virtuais (_Virtual Machines_ ou VMs) são exatamente esses servidores virtuais gerenciados pelo _Hypervisor_ que descrevemos ali em cima. Num ambiente cloud, como a VM é um serviço de IaaS, nós enquanto clientes nem nos preocupamos com os recursos computacionais físicos, apenas com o tipo de recurso virtualizado (os provedores oferecem várias VMs com diferentes capacidades) e o que fazemos com eles. 

Para ilustrar segue uma imagem didática sobre as diferenças que falamos aqui:

![desenho exemplificando a diferença entre os tipos de virtualização](https://raw.githubusercontent.com/badtuxx/DescomplicandoDocker/main/media/image3.png)
######A fonte é o excelente [Descomplicando Docker](https://github.com/badtuxx/DescomplicandoDocker/tree/main/chapters) do Jeferson da LinuxTips.


No próximo post veremos como esses recursos são facilmente escaláveis, replicáveis e um pouco sobre redundância.