Salve, Deus, beleza? Então, começando a nossa saga aqui no nosso módulo de Docker, vamos começar definindo o que é virtualização. Nós precisamos saber, de fato, o que é virtualização, porque é um conceito muito confundido com containers. Eles estão relacionados principalmente por conta do objetivo dos dois, que a gente quer virtualizar, a gente quer rodar vários tipos de softwares isolados dentro do mesmo hardware ali. Mas a forma que virtualização faz e a forma que container faz são diferentes. E esse entendimento muda totalmente o jogo. Então, eu não quero falar de containers aqui nessa aula, nós vamos definir o que é virtualização. Eu até falo que não é muito difícil para você poder definir. Se você caísse agora uma questão numa prova para poder falar o que é virtualização com as suas palavras, não é muito complicado, porque é um conceito muito difundido. Provavelmente você já usou virtualização alguma vez na sua vida, os softwares que você pode usar aí, o VMware ou um VirtualBox, muito simples. Você pega ali uma ISO, joga lá e você já consegue rodar um sistema operacional dentro de outro. Então, vamos de fato entender as motivações e o que é essa virtualização. Eu criei um material, como eu falei na última aula, toda aula vai ter ali um texto envolvido com referências bibliográficas, sempre vai estar aqui no final. Eu vou disponibilizando isso para vocês aí no GitHub, então serve como material adicional. A gente tem aqui, inclusive, até um livro que fala sobre Linux containers e virtualização. O começo desse livro, inclusive, fala dos conceitos básicos de virtualização. Então, é um material interessante para que você leia. Agora, já aviso logo de cara, isso aqui são referências que são adicionais. Isso aqui não vai ser cobrado na prova, mas claro que a gente está sempre recomendando materiais para que você aprofunde todos os conceitos que são passados aqui na aula. Nós podemos definir a virtualização de forma bem simples. Vai ser um sistema rodando dentro do outro e esse sistema pode ser totalmente diferente do sistema original, quando a gente está falando de sistema, sistema operacional. Então, pode ter um Windows que roda Windows 10, que vai virtualizar um outro Windows 10, ou ele pode virtualizar um Mac, ou um Linux, ou um Windows XP, ou um sistema totalmente diferente. Então, é um sistema operacional rodando dentro de outro. A gente vai poder rodar vários sistemas operacionais diferentes a gente vai chamar ali de máquina virtual dentro desse nosso sistema esse sistema base que a gente tem nós chamamos de sistema hospedeiro e a máquina virtual é o sistema convidado e aí eu posso ter máquinas virtuais diferentes ali e elas estão totalmente isoladas. Mas por que a gente vai querer virtualizar sistemas? Porque a ideia é compartilhar os recursos de hardware com vários usuários e empresas diferentes. O início da virtualização, a ideia é justamente essa. Imagina se a gente não início da virtualização, a ideia, é justamente essa. Imagina se a gente não tivesse virtualização, para cada usuário, para cada empresa que quisesse usar um servidor, teria que criar um servidor totalmente diferente para ela, ter um servidor físico. Isso iria tornar o uso de recursos computacionais muito caros. Então, por isso que virtualização é legal, porque a ideia, na verdade, de cloud já vem lá de trás, da década de 60, permitindo que vários usuários e empresas compartilhem os recursos de hardware usando um sistema operacional dentro de outro, mas para o usuário, para a empresa, ele acha que está usando um servidor físico, está performático, está bacana, mas a gente está alugando isso para esses usuários está usando um servidor físico, está performático, está bacana, mas a gente está alugando isso para esses usuários e para essas empresas, permitindo até que eu tenha um sistema que rode um outro sistema totalmente diferente. Então, na década de 60, o que tem notícia, isso é muito bem documentado, a pioneira disso foi a IBM. A IBM criou o CP-40, que foi a primeira versão do CP barra CMS, foi o primeiro sistema operacional a implementar essa ideia de virtualização. E a ideia é justamente para poder usar isso em larga escala e permitir compartilhar recursos de hardware entre vários usuários diferentes. compartilhar recursos de hardware entre vários usuários diferentes. Aí na década de 60, a IBM publicou esse paper aqui, que é a Virtual Machine System for the 360-40, pelo Adair e o Bales. Eles introduziram um conceito para poder falar sobre essa questão de máquina virtual, que é o Hypervisor. Não confundir com o Hypervisor da Microsoft, que é a ferramenta deles para poder virtualizar. Então, o Hypervisor vai ser a camada que a gente vai ter ali no hardware ou no sistema operacional, vou falar disso daqui a pouco, que vai permitir a criação dessas máquinas virtuais diferentes. Então, eu posso ter um hypervisor instalado diretamente no hardware ou no próprio sistema operacional. No próprio hardware é para situações específicas. Isso aqui, normalmente, é bem mais corporativo. Agora, um hypervisor instalado no sistema operacional é que a gente consegue baixar a qualquer momento aqui da internet. Posso baixar um VirtualBox, um VMware, o Hyper-V lá da Microsoft, e aí eu consigo gerar novos sistemas operacionais dentro dele. Então, a gente acaba tendo esse cenário aqui. Eu tenho o hardware, aí eu posso ter o sistema operacional embaixo aqui do hypervisor ou ele diretamente no hardware. Mas aí ele que vai gerenciar para mim todas as máquinas virtuais que vão sendo criadas e disponibilizadas para os usuários. A máquina virtual totalmente isolada, uma da outra. Você pode ter várias máquinas virtuais também aí na sua máquina para você poder utilizar e etc. Mas a gente vai ter ainda uma outra camada, que eu tenho aqui a VM, que é a máquina virtual 0, 1, 2, 3, 4, 5, mas tenho a VMM. Eu coloquei isso aqui também nesse texto, que é a Virtual Machine Monitor. Essa camada aqui vai fazer com que o sistema operacional seja enganado. Ele vai achar que ele está lá lindo, maravilhoso, utilizando o hardware, utilizando rede, utilizando a CPU, mas, na verdade, essas coisas estão sendo virtualizadas para ele, para a gente poder alocar somente o que é necessário ali, porque a gente está compartilhando os recursos. Então nós temos essa camada também. Então normalmente o que a gente vê nas máquinas virtuais acaba sendo isso, mas ao longo dos anos nós tivemos novas necessidades para poder virtualizar sistemas, a computação também foi evoluindo, as máquinas também foram evoluindo. Nós tivemos um outro conceito sendo adicionado, que é a para-virtualização, que é uma virtualização mais eficiente. Você pode pesquisar na internet a Bell Labs e o Protocol 9. A ideia para a virtualização é diferente de uma virtualização convencional em que a gente deixa transparente para o sistema convidado que ele está sendo virtualizado. A gente fala assim, você está sendo virtualizado, tenha ciência disso. E aí ele trabalha mais em conjunto com o sistema hospedeiro, que é o sistema operacional que a gente está rodando ali exatamente no disco. Então, dessa forma, a gente consegue mais eficiência porque não tem esse overhead inicial, que quando eu levanto uma máquina virtual convencional, ele sequestra ali da sua máquina CPU e memória. Não tem o que fazer. Então, a para-virtualização consegue ir usando os recursos e até devolvendo conforme necessário. Então, ela trabalha em conjunto com o sistema hospedeiro. A gente pode citar um que é muito famoso, é o próprio WSL do Windows, que é o Linux rodando lá dentro do Windows. Você inicia lá o seu Linux dentro do Windows, ele não aloca um monte de CPU de memória, não. Ele vai usando o que é necessário, vai devolvendo, vai usando e vai trabalhando ali em conjunto. Então, nós temos alguns tipos também de virtualização que vão ser adequados a certas situações também. Mas, de uma forma geral, a gente consegue virtualizar tudo hoje em dia. A gente consegue virtualizar memória, CPU, rede. E a máquina virtual pode imaginar que ela está usando o hardware físico, mas, no final das contasas ela não está utilizando. Então, o que é importante de entender é essa ideia que a gente quer virtualizar porque a gente quer permitir que usuários diferentes compartilhem os recursos da nossa máquina, do nosso servidor. Com a evolução de cloud, com o surgimento de cloud, nós tivemos as máquinas virtuais que eu poderia alugar ali da AWS, Azure, enfim. Você já parou para pensar que essa máquina virtual que você está alugando é uma máquina virtualizada dentro de um servidor que tem recursos muito maiores, mas você está alugando ali um pouquinho de CPU, um pouquinho de memória com Linux, com Windows, enfim, para poder fazer o seu uso, mas você está numa máquina virtual que também está rodando junto com outras máquinas virtuais. Então, você está compartilhando aquele servidor com outras empresas e usuários. Pense num mundo em que a gente não tivesse isso. A gente não tivesse isso. A gente não teria essa evolução da computação como se tem hoje. O uso de recursos ia ser muito mais burocrático e muito mais caro também. Sempre a gente teria que ter um servidor físico para poder trabalhar. Então, isso aqui é muito esclarecedor para a nossa cabeça. Pensar que isso já existia lá na década de 60 e as motivações disso também. Então, tem aqui o material, tem um livro também, que é esse Linux Containers and Virtualization, que vocês podem dar uma lida, que mostra os fundamentos básicos de containers e virtualização também, e alguns outros links que eu coloquei. Então, vamos seguir a nossa saga. É isso aí e até a próxima.