Muito interessado no assunto DevOps e suas ferramentas, andei pesquisando nos últimos dias e achei alguns materiais bem interessantes e outros nem tanto. Nesse segundo grupo, que foi a grande maioria, achei muita coisa vaga que após ler/assistir você tem mais perguntas do que respostas, mais dúvidas do que certezas.
Então, resolvi não explicar as ferramentas e conceitos que aprendi e estou praticando, mas sim reunir links para materiais realmente úteis.
Espero que nos links abaixo, assim como aconteceu comigo, você possa realmente começar a entender do assunto, indo direto ao que interessa, mas sem perder de vista os fundamentos. Você irá entender sobre Virtual Environments e sua diferença em relação a Virtual Machines, o que são Linux Containers e vai fazer começar a fazer sentido o papel das ferramentas Puppet e o Chef e como elas se relacionam com as demais.
Primeiro, os fundamentos. Assumindo que você entende de Linux, aprenda o que são Linux Containers (LXC)…
Depois você já terá condições de facilmente entender a ferramenta Docker, que é um LXC:
- http://www.ricardomartins.com.br/docker-um-engine-linux-container/
- http://stackoverflow.com/questions/16047306/how-is-docker-io-different-from-a-normal-virtual-machine?rq=1
Em seguida, já sabendo que Containers são Virtual Environments, é hora de entender as diferenças entre as ferramentas Docker e o Vagrant. Um bom começo é esse post:
Apenas com essas rápidas leituras, você começará a visualizar cenários de uso viáveis dessas ferramentas que podem ser usadas de maneira combinada ou não, dependendo da necessidade do seu projeto ou dos seus objetivos: (Nota: Na esquerda temos o nível mais baixo enquanto na direita o mais alto)
- Cenário sem Virtual Machines:
- Docker -> Puppet ou Chef;
- Cenários com Virtual Machines:
- Vagrant->LXC (“Nativo” do Linux)->Puppet ou Chef
- Vagrant->Docker->Puppet ou Chef;
Nesse ponto, lembrei de uma apresentação que o Mathieu Depriee (Octo Technology) fez lá na Infoglobo sobre DevOps, mais especificamente esse slide:
Apresentação completa em: http://www.slideshare.net/OCTOTechnology/introduction-to-devops-28779951
Se fossemos categorizar e posicionar o Vagrant e o Docker no diagrama do slide acima, acho que o Vagrant se encaixaria mais no quadro vermelho. Já o Docker estaria na interseção entre a vermelha e a verde, mas mais para a verde.