Encontro Técnico
STI - UFF
#quemnunca?
• Entrou numa empresa e levou dias para ter a sua
máquina configurada
• Testou na máquina e quando colocou em
h...
Solução?
O que é o Vagrant?
• Software open-source para criação e configuração de
máquinas virtuais
• Compatível com VirtualBox 4.0....
O que eu ganho?
Se você é um desenvolvedor…
• Isolamento de dependências sem sacrificar
ferramentas que você já usa para trabalhar.
• Uma v...
Se você é DevOps…
• Ambiente para testar rapidamente seus shell scripts,
Chef cookbooks, Puppet modules, etc.
• Possibilid...
Se você é designer…
• Agora você pode focar no que interessa pra você!
• Se preocupe apenas com design. Crie seus layouts ...
O que preciso para
começar?
• Instale o VirtualBox
• Instale o Vagrant (compatível com OSX, Windows,
Debian e CentOS).
• C...
Vagrantfile
Esse comando cria um Vagrantfile inicial
Principais comandos
• vagrant init
• vagrant up
• vagrant halt
• vagrant destroy
• vagrant package
Vagranfile - UFF
Um projeto padrão Rails…
Puppet Manifests
default.pp
Vantagem
• Ambiente provisionado rapidamente
• Ampla utilização de Puppet no mercado
• Muitos scripts disponíveis e docume...
Desvantagem
• Usar o Puppet não é tão simples quanto parece
• Quando não se tem um DevOps, a manutenção se
torna mais comp...
Rodando o Discourse
• git clone https://github.com/discourse/discourse.git
• cd discourse
• vagrant up
• vagrant ssh
• bun...
Nunca foi tão fácil rodar um projeto!
O que é?
• Projeto open-source para criar containers leves e
auto-suficientes que podem conter qualquer tipo de
aplicação/s...
Como começar…
http://docs.docker.io/installation/#installation
Rodando o Ubuntu
• docker pull ubuntu
• docker run -i -t ubuntu /bin/bash
Baixa o container
Abre o terminal dentro do cont...
Hands On!
Sim, é MUITO rápido!
E como eu crio uma
imagem?
Lembra do Vagrantfile?
Dockerfile!
Dockerfile MySQL
[https://github.com/tutumcloud/tutum-docker-mysql]
Talk is cheap!
Observações
• Tempo de boot do container? < 1seg
• As migrações rodam dentro do container! Você não
precisa ter o MySQL in...
Observações
• Grande facilidade na criação dos containers
• Não precisamos usar Puppet ou Chef para
provisionamento da máq...
Sim! Commits!
Commits
Se tentarmos rodar a imagem novamente, não vemos o arquivo criado…
Isso ocorre porque cada
container é completamente
isolado do outro!
Commits
Esse é o container que contém o arquivo que criamos
Aqui está a nova imagem salva
Commits
Agora quando rodamos a imagem, temos o nosso arquivo lá dentro!
Docker x Vagrant
[http://www.scriptrock.com/articles/docker-vs-vagrant/]
Docker & Vagrant
• Uma solução possível é rodar os containers dentro do
Vagrant
• http://docs.vagrantup.com/v2/provisionin...
Quem está usando?
Próximos passos
• Definir o uso de Vagrant e Docker como padrão na STI
• Integração entre o Jenkins e Vagrant/Docker.
• Pas...
Jenkins
+ + =
Links recomendados
• https://www.scriptrock.com/articles/docker-vs-
vagrant/
• http://docs.docker.io/use/basics/
• http://...
Dúvidas?
Obrigado!
Hugo Arraes Henley
hugohenley@id.uff.br
Vagrant sti
Vagrant sti
Vagrant sti
Vagrant sti
Vagrant sti
Vagrant sti
Vagrant sti
Vagrant sti
Vagrant sti
Próximos SlideShares
Carregando em…5
×

Vagrant sti

942 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
942
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Vagrant sti

  1. 1. Encontro Técnico STI - UFF
  2. 2. #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 • …
  3. 3. Solução?
  4. 4. 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 :)
  5. 5. O que eu ganho?
  6. 6. 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.
  7. 7. 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.
  8. 8. 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’.
  9. 9. O que preciso para começar? • Instale o VirtualBox • Instale o Vagrant (compatível com OSX, Windows, Debian e CentOS). • Crie o seu Vagrantfile
  10. 10. Vagrantfile Esse comando cria um Vagrantfile inicial
  11. 11. Principais comandos • vagrant init • vagrant up • vagrant halt • vagrant destroy • vagrant package
  12. 12. Vagranfile - UFF
  13. 13. Um projeto padrão Rails…
  14. 14. Puppet Manifests default.pp
  15. 15. Vantagem • Ambiente provisionado rapidamente • Ampla utilização de Puppet no mercado • Muitos scripts disponíveis e documentação na internet • Automação!
  16. 16. 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
  17. 17. 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
  18. 18. Nunca foi tão fácil rodar um projeto!
  19. 19. 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 :)
  20. 20. Como começar… http://docs.docker.io/installation/#installation
  21. 21. Rodando o Ubuntu • docker pull ubuntu • docker run -i -t ubuntu /bin/bash Baixa o container Abre o terminal dentro do container
  22. 22. Hands On!
  23. 23. Sim, é MUITO rápido!
  24. 24. E como eu crio uma imagem? Lembra do Vagrantfile?
  25. 25. Dockerfile!
  26. 26. Dockerfile MySQL [https://github.com/tutumcloud/tutum-docker-mysql]
  27. 27. Talk is cheap!
  28. 28. 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!
  29. 29. 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
  30. 30. Sim! Commits!
  31. 31. Commits Se tentarmos rodar a imagem novamente, não vemos o arquivo criado…
  32. 32. Isso ocorre porque cada container é completamente isolado do outro!
  33. 33. Commits Esse é o container que contém o arquivo que criamos Aqui está a nova imagem salva
  34. 34. Commits Agora quando rodamos a imagem, temos o nosso arquivo lá dentro!
  35. 35. Docker x Vagrant [http://www.scriptrock.com/articles/docker-vs-vagrant/]
  36. 36. Docker & Vagrant • Uma solução possível é rodar os containers dentro do Vagrant • http://docs.vagrantup.com/v2/provisioning/docker.html
  37. 37. Quem está usando?
  38. 38. 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!
  39. 39. Jenkins + + =
  40. 40. Links recomendados • https://www.scriptrock.com/articles/docker-vs- vagrant/ • http://docs.docker.io/use/basics/ • http://docs.vagrantup.com/v2/getting-started/ index.html • http://blog.relateiq.com/a-docker-dev-environment- in-24-hours-part-1-of-2/
  41. 41. Dúvidas?
  42. 42. Obrigado! Hugo Arraes Henley hugohenley@id.uff.br

×