Vagrant sti

937 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
937
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
6
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

×