Tecnologia

Docker vs Vagrant – Será?

Por: , julho 15, 2014

Quando comecei a ler sobre o Docker vi muitos artigos comparando ele com o Vagrant. Isso me deixou bastante confuso, pois parecia que uma ferramenta estava concorrendo diretamente com a outra, com propósitos diferentes.
Ao me aprofundar tecnicamente no Docker constatei que são duas ferramentas distintas.
O Vagrant é o gerente “mandão”. Ele indica itens como:

  •  Local de inicialização do ambiente
    • VirtualBox, AWS, VMWARE, entre outros (alocação de recurso)
  • Ferramenta de automação que vai utilizar
    • Chef, puppet, shell, entre outros
  • Compartilhamento de pastas (local / remoto)
  • Versionamento da máquina virtual
  • Cache de instaladores

O Docker é o virtualizador de ambientes “sem a alocação prévia de recursos” de hardware da sua estação.

  •  Inicialização de ambiente
    • Docker
  • Ferramenta de automação
    • DockerFile (Shell script)
    • Já atuei executando receitas chef através do DockerFile
  • Versionamento da máquina Docker
  • Cache de instaladores embutido

Assim, o Docker no fim das conta lhe dá um novo SO dentro da seu Desktop só que sem a alocação prévia de recursos, como memória, CPU, disco que um VirtualBox ou VMWARE traria embutido. A alocação dos recursos da sua máquina ficaria por conta da inicialização de serviços que você executará na sua máquina Docker.
Ai vem algumas perguntas:
Mas se for assim, por que eu não executo os processos em minha própria máquina?
Imagine que você trabalhe em 6 projetos simultâneamente com uso de ferramentas distintas. Para isolar a sua máquina de problemas seria interessante você ter um ambiente virtualizado para cada um desses projetos. Caso você instale algo errado em sua estação, você poderia destruir o ambiente dos demais projetos tentando contemplar apenas um (perl, ruby, python) e teria um retrabalho gigantesco.
Mas para isso eu faço 6 máquinas virtuais no VirtualBox, não?
Sim. Porém, imagine que você alterne de projeto a todo momento. Teria que ligar uma VM/VBOX e desligar a outra para que os recursos do seu Desktop não fique alocado. Esse processo além de ser custoso é extremamente chato. No Docker basta você sair da máquina “Docker 1” e ir para a máquina “Docker 2” e iniciar os serviços.
Concluindo…
Na minha opinião, são ferramentas totalmente distintas. Atualmente, o Vagrant vem se adaptando para trabalhar com Docker e com este cenário teríamos um poder de automação muito grande utilizando as duas ferramentas.
 

  • Receba nosso conteúdo em primeira mão.