DESENVOLVIMENTO PHP
    COM VAGRANT
      Rogério Prado de Jesus
     7Masters PHP - iMasters
          Janeiro 2013
QUEM SOU EU?


• @rogeriopradoj   - Rogério Prado de Jesus

 • PHP   desde 2009

 • blog: rogeriopradoj.com

 • Grupo   de usuários:
QUEM SOU EU?
• @rogeriopradoj   - Rogério Prado de Jesus

 • Comunidade    -> leva à evolução

   • eventos

   • contribuições

   • bate-papo
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...
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...
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...
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?
EVOLUÇÃO DO AMBIENTE
  DESENVOLVIMENTO
      É aí que entra a
       virtualização!!!
VIRTUALIZAÇÃO

 Permite                                    Elimina os
  criar                                      conflitos
ambientes...




     ...leves...
                      ...reproduzíveis...
                                            ... e portatéis!
VIRTUALIZAÇÃO
                             Baseada em
                              3 pilares:


Hardware

                Sistema
               Operacional

                                  Softwares
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...
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
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
VAGRANT: COMO?
                                prontas para usar
• Oracle VirtualBox   (Boxes)




 lista mantida pela
     comunidade
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
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 ;-)
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
QUEM USA
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!!!
OBRIGADO!



• about.me/rogeriopradoj

Desenvolvimento PHP com Vagrant - 7Masters PHP

  • 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ê fezum 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?
  • 8.
    EVOLUÇÃO DO AMBIENTE DESENVOLVIMENTO É aí que entra a virtualização!!!
  • 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 entrao 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
  • 18.
  • 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!!!
  • 20.