3. #quemnunca?
• Entrou numa empresa e levou dias para ter a sua
máquina configurada
• Testou na máquina e quando colocou em
homologação/produção encontrou alguns bugs
por causa de dependência que você desconhecia
que eram necessárias?
• Sofreu para tentar instalar o Oracle no OSX e não
obteve sucesso
• …
6. O que é o Vagrant?
• Software open-source para criação e configuração de
máquinas virtuais
• Compatível com VirtualBox 4.0.x, 4.1.x, 4.2.x e 4.3.x.
• Também funciona com VMWare e Hyper-V.
• Escrito em Ruby :)
8. Se você é um desenvolvedor…
• Isolamento de dependências sem sacrificar
ferramentas que você já usa para trabalhar.
• Uma vez que o arquivo Vagrantfile existe no projeto,
basta rodar ‘vagrant up’ para ter todo o ambiente
instalado e configurado (banco de dados, ruby,
memcached…).
• Todos os membros da equipe estarão rodando o
projeto na mesma máquina! Não importa se usam
OSX, Linux ou Windows para programar.
9. Se você é DevOps…
• Ambiente para testar rapidamente seus shell scripts,
Chef cookbooks, Puppet modules, etc.
• Possibilidade de testar scripts em clouds remotas
como AWS e RackSpace.
10. Se você é designer…
• Agora você pode focar no que interessa pra você!
• Se preocupe apenas com design. Crie seus layouts no
photoshop, CSS, etc sem se preocupar como fazer o
projeto rodar. Tudo que você precisa aprender é
‘vagrant up’, ‘vagrant halt’ e ’vagrant destroy’.
11. O que preciso para
começar?
• Instale o VirtualBox
• Instale o Vagrant (compatível com OSX, Windows,
Debian e CentOS).
• Crie o seu Vagrantfile
17. Vantagem
• Ambiente provisionado rapidamente
• Ampla utilização de Puppet no mercado
• Muitos scripts disponíveis e documentação na internet
• Automação!
18. Desvantagem
• Usar o Puppet não é tão simples quanto parece
• Quando não se tem um DevOps, a manutenção se
torna mais complicada
19.
20. Rodando o Discourse
• git clone https://github.com/discourse/discourse.git
• cd discourse
• vagrant up
• vagrant ssh
• bundle install
• rake db:create
• rake db:migrate
• rails server
25. O que é?
• Projeto open-source para criar containers leves e
auto-suficientes que podem conter qualquer tipo de
aplicação/serviço
• Possui integração com Jenkins, Travis, Chef, Puppet,
Vagrant e OpenStack
• Se é possível rodar em um Kernel Linux, pode rodar no
Docker !
• Escrito em Go :)
34. Observações
• Tempo de boot do container? < 1seg
• As migrações rodam dentro do container! Você não
precisa ter o MySQL instalado na sua máquina
• Possibilidade de criar vários containers, cada um com
um serviço
• Ganhamos isolamento e velocidade!
35. Observações
• Grande facilidade na criação dos containers
• Não precisamos usar Puppet ou Chef para
provisionamento da máquina
• Depois que o container for criado, é possível acessá-
lo via ssh
• Podemos salvar o estado de uma imagem com
facilidade
47. Próximos passos
• Definir o uso de Vagrant e Docker como padrão na STI
• Integração entre o Jenkins e Vagrant/Docker.
• Passar o conhecimento adiante!