A escalada da Nuvem aumentou a procura por máquinas virtuais e também o desafio de desenvolvedores e administradores de sistemas. Esses profissionais precisam criar rapidamente aplicativos, fazer implementações e manter essa infraestrutura invisível e operando com alta performance. As tecnologias de virtualização HyperVisor e Docker prometem facilitar o dia a dia desses especialistas. Este artigo mostra a diferença entre as duas técnicas e como aproveitar o que há melhor em cada uma delas.
O grande apelo da virtualização é oferecer a oportunidade de as empresas trabalharem com diversos sistemas operacionais (SO), sem a necessidade de comprar máquinas novas cada vez que precisam de uma solução, seja para rodar em dispositivos móveis ou em qualquer outra plataforma.
Um dos benefícios dessa tecnologia é possibilitar a criação de ambientes virtuais que simulam equipamentos reais para rodar as diferentes plataformas com compartilhamento de recursos de hardware (memória, processador, interface de rede, disco, etc).
Com essas vantagens, muitas empresas e desenvolvedores têm lançado mão da virtualização para construir máquinas virtuais e criar novas aplicações, fazer implementações, protótipos, testes, entre outras funções.
Metodologia do HyperVisor
Uma das arquiteturas típicas do mercado de virtualização é a baseada em HyperVisor, sistema mais conhecido por VMM (Virtual Machine Monitor) ou simplesmente VM. Hoje, empresas já oferecem soluções de HyperVisor para criação de máquinas virtuais, gerenciamento e compartilhamento dos seus recursos.
A tecnologia de virtualização por HyperVisor foi lançada no mercado no começo da década de 1970 e o sistema funciona como uma camada de software localizada entre o hardware e o SO. Seu papel é fornecer recursos da máquina física para as virtuais.
Depois, a tecnologia evoluiu para os servidores e em meados de 1990 passou a ser utilizada também em desktop. Entre as vantagens desse modelo destacam-se o gerenciamento centralizado dos vários SOs e hardware, atualização de patches centralizada com mais rapidez, além de redução dos riscos com erros de software testados em ambientes virtuais.
Filosofia Docker
Criada em 2013 por Solomon Hykes, então CEO da dotCloud (empresa de Plataforma como Serviço – PaaS), a tecnologia Docker é um novo conceito de virtualização que vem ganhando espaço nas comunidades de desenvolvedores, pegando carona com a filosofia do DevOps que prega o trabalho em equipe alinhando com os negócios de forma colaborativa.
A tecnologia Docker nada mais é que uma plataforma de código aberto para desenvolvedores e administradores de sistemas que tem o objetivo de facilitar e tornar mais rápida a criação, implantação, gerenciamento e execução de aplicações distribuídas.
Hykes, que hoje é CTO da Docker, percebeu que não havia a necessidade de recriar um sistema operacional completo no processo de virtualização como acontece na abordagem de VM por HyperVisor. Pelo Docker é possível utilizar os mesmos recursos de SO em ambiente virtual isolado, chamado de contêiner.
Quando foi lançada, a plataforma Docker era baseada no Linux Containers (LXC). Atualmente já conta com interface própria que utiliza as funcionalidades de grupos de monitoramento (Cgroups) e espaços de nomes (Namespace) do Kernel, ou núcleo, do sistema operacional Linux, para criar e rodar ambientes virtuais de forma isolada em um único host (hospedeiro). Esse ambiente cria um contêiner onde são executados os aplicativos.
Uma das vantagens do Docker é a possibilidade de empacotamento de uma aplicação ou ambiente inteiro dentro de um contêiner com portabilidade para qualquer outro host que tenha essa plataforma instalada. É uma facilidade que reduz drasticamente o tempo de desenvolvimento porque o ambiente virtual é sempre mesmo. Uma vez criado e configurado poderá ser utilizado quantas vezes forem necessárias.
A principal diferença entre a virtualização por HyperVisor e Docker é que o modelo de máquina virtual precisa de uma camada de emulação e a instalação de um sistema operacional completo. Neste caso, a máquina é virtualizada por inteiro e praticamente não há compartilhamento entre os ambientes virtuais.
Gostou deste artigo? Comente!
Leia mais:
Qual a diferença entre virtualização e nuvem?
O que é DevOps?
NoOps: é realidade ou especulação?
Luciano Melo
Parabéns pela explicação!!!!!!!!!