1. DESENVOLVIMENTO PHP
COM VAGRANT
Rogério Prado de Jesus
7Masters PHP - iMasters
Janeiro 2013
2. QUEM SOU EU?
• @rogeriopradoj - Rogério Prado de Jesus
• PHP desde 2009
• blog: rogeriopradoj.com
• Grupo de usuários:
3. QUEM SOU EU?
• @rogeriopradoj - Rogério Prado de Jesus
• Comunidade -> leva à evolução
• eventos
• contribuições
• bate-papo
4. EVOLUÇÃO DO AMBIENTE
DESENVOLVIMENTO
“me passa a senha
não sabe que pode do FTP que já
separar os corrijo lá...”
ambientes...
desenvolve grande chance de
direto em quebrar o sistema
produção... enquanto o cliente
está usando...
5. EVOLUÇÃO DO AMBIENTE
DESENVOLVIMENTO
aprende que pode separar a
produção do desenvolvimento...
instala os softwares no pacotes facilitam:
próprio computador... XAMPP, WAMP, MAMP...
6. EVOLUÇÃO DO AMBIENTE
DESENVOLVIMENTO
projetos diferentes exigem
para não faltar nada,
softwares diferentes...
tudo é instalado...
computador começa a conflitos entre
ficar lento... diferentes versões...
7. Ou você fez um sistema ... ou o sistema
baseado nas Web standards, só funciona no
e o cliente usa IE6... seu ambiente!
Pode ocorrer tanto na
produção...
...quanto com seus colegas
de desenvolvimento...
...se esses ambientes
http://vidadesuporte.com.br/ forem divergentes
QUEM NUNCA?
9. VIRTUALIZAÇÃO
Permite Elimina os
criar conflitos
ambientes...
...leves...
...reproduzíveis...
... e portatéis!
10. VIRTUALIZAÇÃO
Baseada em
3 pilares:
Hardware
Sistema
Operacional
Softwares
11. VIRTUALIZAÇÃO
Manualmente ainda
é trabalhoso...
... ter que tomar
TODAS as decisões
dos 3 pilares da VM
Exemplo de uma
VM com 21GB (HW, SO e SWs)...
... é portátil, mas
nem tanto...
12. Aí que entra o
Vagrant! VAGRANT
• Ferramentapara agilizar configuração de seu ambiente de
desenvolvimento
• Baseado em Virtualização É possível instalar no
Windows, Mac, Linux, BSD...
Ex-garoto propaganda
do Vagrant
13. Junta a configuração
VAGRANT do HW e do SO
• Oracle VirtualBox (Boxes)
• Provisionamento (configuração e instalação)
• Puppet
Automatiza a
• Chef instalação/configuração dos SWs
• Shell
• Melhora a paridade entre os ambientes dev e prod
Ideal da VM, agora muito mais simples
14. VAGRANT: COMO?
prontas para usar
• Oracle VirtualBox (Boxes)
lista mantida pela
comunidade
15. VAGRANT: COMO?
Busquem o máximo aqui
Um pouco
• Puppet e Chef aqui
Dois brasileiros que
sabem muito! (já tem
muitos outros, é que eles
começaram)
Lista oficial de
Lista oficial de
provisionamento Puppet
provisionamento Chef
16. COMANDOS
Lista todos os
• vagrant --help subcomandos nesse slide só tem alguns
Vagrantfile é o arquivo que
Cria um arquivo define configuração projeto
• vagrant init Vagrantfile na pasta
• vagrant
“Sobe” o ambiente
up
com as definições Provavelmente o
do Vagrantfile comando mais usado ;-)
17. DEMO
Exemplos de
Vagrantfiles
Provisionamento com Puppet
https://github.com/marcusesa/loteria-api
Provisionamento com Chef
https://github.com/rogeriopradoj/vagrant-chef-php-apache-sqlite
Provisionamento com Shell Script
https://github.com/rogeriopradoj/base-php-codingdojo-vagrant
Múltiplas VMs paralelas, Provisionamento com Puppet
https://github.com/pyrocms/devops-vagrant
Box com provisionamento já empacotado
https://github.com/rogeriopradoj/symfony2-vagrant-phpconfbrasil2012
19. MAIS?
Documentação
oficial
http://vagrantup.com/
Usem http://friendsofvagrant.github.com/
Tradução pt_BR vocês
também
da documentação oficial podem
Ativo!!! em andamento ajudar!!!