Fundamentos da computação em nuvem
A virtualização explicada
Como um hypervisor divide um servidor físico em várias máquinas virtuais isoladas, a diferença entre hypervisors Type 1 e Type 2, e por que virtualização sozinha não transforma um sistema em uma nuvem.
- Explicar como um hypervisor deixa um servidor físico rodar várias máquinas virtuais independentes
- Distinguir hypervisors Type 1 (bare metal) de Type 2 (hosted)
- Conectar a virtualização com a característica de pooling de recursos da nuvem
- Reconhecer por que virtualização sozinha não transforma um sistema em uma nuvem
Uma caixa só, muitos computadores
Entre no data center de um provedor de nuvem e você vai encontrar fileiras de servidores físicos, mas o número de máquinas físicas está longe de chegar perto do número de clientes que as usam. Um único servidor físico pode hospedar dezenas de máquinas virtuais completamente separadas ao mesmo tempo, cada uma rodando seu próprio sistema operacional, cada uma convencida de que tem o computador inteiro só para si, cada uma invisível para as outras. Esse truque, uma única máquina física que parece ser muitas independentes, é a virtualização, e é a tecnologia que torna fisicamente possível o conjunto compartilhado de recursos da nuvem.
O hypervisor: software que divide um computador
O software que torna isso possível se chama hypervisor. Um hypervisor fica entre o hardware físico, CPU, memória, armazenamento, rede, e as máquinas virtuais (VMs) que rodam em cima, e o trabalho dele é dividir esse hardware e entregar a cada VM sua própria fatia, um pouco de ciclos de CPU, um pouco de RAM, um pouco de espaço em disco, seguindo uma agenda que o hypervisor controla.
De dentro de uma VM, tudo parece normal. O sistema operacional convidado inicializa, vê o que parece ser memória real e um disco real, e roda aplicações exatamente como faria sobre hardware físico. Ele não tem como saber que seu "hardware" na verdade é uma fatia de uma máquina bem maior compartilhada com várias outras VMs. Essa ilusão é o ponto todo: isolamento. Se uma VM falha ou é comprometida, as outras continuam rodando sem interrupção, porque o hypervisor as mantém separadas o tempo todo.
Duas formas de rodar um hypervisor
Nem todo hypervisor fica no mesmo lugar. Existem 2 tipos, e a diferença importa dependendo de onde cada um é usado.
Um hypervisor Type 1, também chamado de bare metal, se instala diretamente sobre o hardware físico e ocupa o lugar de um sistema operacional tradicional. Ele fala com a CPU e a memória diretamente, sem nada no meio do caminho. Como não há um sistema operacional anfitrião disputando recursos, hypervisors Type 1 são rápidos e são o tipo que roda as cargas de trabalho de produção em data centers e plataformas de nuvem. VMware vSphere, Microsoft Hyper-V e KVM são exemplos.
Um hypervisor Type 2, também chamado de hosted, se instala como um aplicativo comum sobre um sistema operacional normal, da mesma forma que você instalaria um navegador. Ele precisa pedir CPU e memória a esse sistema operacional anfitrião em vez de falar diretamente com o hardware, o que acrescenta uma camada de peso. Esse peso é uma troca razoável pela conveniência: hypervisors Type 2 são simples de instalar e usar, e por isso desenvolvedores os usam para testar software em vários sistemas operacionais a partir de um único notebook. VMware Workstation e Oracle VirtualBox são exemplos.
| Type 1 (Bare Metal) | Type 2 (Hosted) | |
|---|---|---|
| Roda sobre | Hardware físico diretamente | Um sistema operacional anfitrião |
| Desempenho | Mais alto, sem o peso de um sistema operacional anfitrião | Mais baixo, compartilha recursos com o anfitrião |
| Uso típico | Data centers, plataformas de nuvem, produção | Computadores pessoais, testes de desenvolvimento, desktops virtuais |
| Exemplos | VMware vSphere, Microsoft Hyper-V, KVM | VMware Workstation, Oracle VirtualBox |
Por que isso tornou possível o conjunto de recursos da nuvem
Volte à definição do NIST da lição anterior: "um conjunto compartilhado de recursos computacionais configuráveis". A virtualização é o mecanismo que torna esse conjunto compartilhável com segurança. Sem ela, um provedor teria que dar a cada cliente uma máquina física dedicada, exatamente o modelo ineficiente de um cliente por caixa que a nuvem substituiu. Com ela, um provedor pode dividir um único servidor físico potente em dezenas de VMs, vender cada uma para um cliente diferente, e recuperar e reusar essa capacidade no momento em que um cliente a libera. O provisionamento rápido, subir uma VM nova em minutos, e o pooling de recursos, muitos clientes compartilhando hardware com segurança, remontam ambos a essa única peça de software.
O limite: virtualizado não é o mesmo que nuvem
Aqui é fácil passar do ponto. Uma empresa que instala um hypervisor Type 1 nos próprios servidores e roda 10 VMs no próprio data center virtualizou sua infraestrutura, mas não necessariamente construiu uma nuvem. Se um desenvolvedor ainda precisa abrir um chamado de TI e esperar 2 dias para alguém criar manualmente uma VM nova, essa configuração falha as partes de "autoatendimento sob demanda" e "provisionado rapidamente" da definição que você aprendeu na lição anterior, mesmo que a tecnologia de base seja idêntica à que um provedor de nuvem usa.
A virtualização é necessária para a computação em nuvem na escala que você vê hoje, mas não é suficiente sozinha. A nuvem acrescenta provisionamento por autoatendimento, medição e elasticidade sobre hardware virtualizado. Você vai ver essa mesma distinção de novo quando chegar às implantações de nuvem privada mais adiante neste domínio, porque uma nuvem privada é justamente o que você obtém quando uma organização acrescenta essas peças que faltam à própria infraestrutura virtualizada.
O que vem a seguir
Você já conhece o mecanismo por trás do conjunto compartilhado: um hypervisor que divide o hardware físico em máquinas virtuais isoladas. A próxima lição nomeia os 5 traços específicos e testáveis, autoatendimento sob demanda, amplo acesso à rede, pooling de recursos, elasticidade rápida e serviço medido, que separam um sistema meramente virtualizado de uma nuvem de verdade.
