Commit 398e73bf09bb805f37fb88a82ae6c7937aceb4ca

Authored by Marcus Menezes
1 parent e0946125
Exists in master

Documentação básica de uso no sei-vagrant.

Showing 1 changed file with 186 additions and 0 deletions   Show diff stats
README.md 0 → 100644
... ... @@ -0,0 +1,186 @@
  1 +#Ambiente de Desenvolvimento - Vagrant
  2 +
  3 +O objetivo dessa documentação é descrever os procedimentos para preparar um ambiente de desenvolvimento ou testes do SEI de forma rápida e padronizada através do Vagrant. Essa ferramenta permite que seja provisionado automaticamente todo um ambiente funcional na máquina de trabalho do desenvolvedor, sem que seja necessário a instalação de servidores de aplicação e banco de dados pelo mesmo. Outra vantagem é que esse ambiente é completamente provisionado utilizando máquinas virtuais, necessitando que o desenvolvedor apenas configure sua IDE ou editor de texto preferido.
  4 +
  5 +Antes, gostariamos de reforçar a necessidade que todo o desenvolvimento esteja alinhado com as diretivas e padrões de interface, codificação php e modelagem de banco de dados utilizados pelo SEI. A documentação dos padrões estão disponíveis na comunidade do SEI:
  6 +
  7 +* Documentação Técnica do SEI
  8 +* Padrão de Codificação PHP
  9 +* Padrão de Modelagem de Dados
  10 +
  11 +Outra fator importante de ser feito, antes do início dos trabalhos de desenvolvimento, é a indicação da demanda previamente aprovada (Lista de Demandas do Projeto), juntamente com a Especificação de Requisitos, para avaliação, revisão e aprovação do Comitê Gestor. De acordo com o padrão trabalho estabelecido, todos as novas funcionalidades que serão implementadas no SEI precisarão de uma aprovação prévia do Comitê Gestor para que possam ser implementadas e, posteriormente, homologadas e integradas ao sistema.
  12 +
  13 +Voltando para à configuração do ambiente de desenvolvimento, as tecnologias utilizadas nesse trabalho foram as listadas abaixo. Sugerimos uma breve leitura de suas documentações para melhor entendimento.
  14 +
  15 +* ​Virtual Box - https://www.virtualbox.org/
  16 +* ​Vagrant - https://www.vagrantup.com/
  17 +* ​Git - https://git-scm.com/
  18 +
  19 +Outros recursos para melhor entendimento das tecnologias citadas acima:
  20 +
  21 +* http://friendsofvagrant.github.io/v1/docs/getting-started/index.html
  22 +* https://www.youtube.com/watch?v=zg4EMgcb6H8
  23 +* http://pt.slideshare.net/RenanMartinsPimentel/vagrant-26647815
  24 +* http://pt.slideshare.net/rogeriopradoj/desenvolvimento-php-com-vagrant-15511228
  25 +
  26 +Em resumo, o Vagrant é uma ferramenta que permite a construção de máquinas virtuais para desenvolvimento sem que seja necessário a instalação de todos os componentes da infraestrutura (banco de dados, bibliotecas, servidores web, etc) na máquina do desenvolvedor. Entre as vantagens em sua utilização estão:
  27 +
  28 +* Rápido início do projeto de desenvolvimento ou testes por parte do desenvolvedor;
  29 +* Padronização do ambiente de desenvolvimento (versões de bibliotecas, banco de dados, servidores de aplicação, etc.);
  30 +* Foco nas tarefas de desenvolvimento, e não em questões relacionadas à configuração do ambiente.
  31 +
  32 +O Vagrant trabalha com o conceito de Box, basicamente uma "imagem/iso" para se criar a instância da máquina virtual, onde é definido o sistema operacional e os demais componentes da solução. Para o projeto SEI, foi disponibilizado livremente uma Box contendo todo a ambiente funcional do SEI e seus componentes (SEI, SIP, JOD, Apache Solr), tirando a necessidade do desenvolvedor realizar toda a configuração do sistema e poder se focar apenas no desenvolvimento.
  33 +
  34 +Para configurar o ambiente, será necessário a instalação dos seguintes pré-requisitos:
  35 +
  36 +* **VirtualBox**
  37 +Download: https://www.virtualbox.org/wiki/Download_Old_Builds_4_3
  38 +
  39 +* **VirtualBox Extensions**
  40 +Download: http://download.virtualbox.org/virtualbox/4.3.30/Oracle_VM_VirtualBox_Extension_Pack-4.3.30-101610.vbox-extpack
  41 +
  42 +* **Vagrant**
  43 +Download: https://www.vagrantup.com/downloads.html
  44 +
  45 +* **Git**
  46 +Download: https://git-scm.com/downloads
  47 +
  48 +Todos os componentes acima precisam ser instalados na máquina de desenvolvimento, prestando atenção nas seguintes considerações:
  49 +
  50 +O VirtualBox Extensions é instalado dentro do VirtualBox, acessando o menu File > Preferences > Extensions. Sugerimos a instalação do Git com a funcionalidade GitBash ativado. Essa ativação é feita pelo Wizard de instalação do software e ele permitirá o acesso direto ao prompt de comando das máquinas virtuais Linux, caso necessário.
  51 +
  52 +Feito a instalação dos pré-requisitos, siga os passos abaixo para ativar o ambiente virtual do SEI:
  53 +
  54 +
  55 +##CONFIGURAÇÃO DO AMBIENTE
  56 +
  57 +### 1) Via prompt de comandos, navegue até o diretório onde está contido os códigos-fontes do SEI.
  58 +
  59 +O diretório é o mesmo disponibilizado para instalação e dentro dele deve conter os seguintes diretórios:
  60 +
  61 + /sei
  62 + /sip
  63 + /infra_php
  64 + /infra_css
  65 + /infra_js
  66 +
  67 +Esses arquivos serão compartilhados para dentro das máquinas virtuais criada pelo Vagrant para ativação do sistema.
  68 +Com isso, as alterações feitas diretamente nos arquivos php durante do desenvolvimento refletirão de forma automática no ambiente que estará disponível em http://localhost/sei
  69 +
  70 +### 2) Realizar a configuração inicial do Box do Vagrant/VirtualBox
  71 +
  72 +No diretório citado anteriormente, execute o seguinte comando:
  73 +
  74 + vagrant init processoeletronico/sei-2.6.0
  75 +
  76 +Esse comando irá criar uma arquivo de configuração iniciar para o vagrant contendo a referência para o BOX do SEI completamente configurado. Ao final da execução, um arquivo chamado Vagrantfile deverá estar presente no diretório atual.
  77 +
  78 +Outra alternativa para configuração pode ambiente pode ser realizada pelos scripts utilitários criados no ambiente colaborativo. Vide seção INFORMAÇÕES ADICIONAIS >> 2) Scritps utilitários .bat.
  79 +
  80 +### 3) Iniciar o Ambiente de Desenvolvimento Virtualizado
  81 +
  82 +No mesmo diretório, execute o comando :
  83 +
  84 +vagrant up
  85 +
  86 +Esse comando irá iniciar a construção do ambiente de desenvolvimento começando pelo download da Box processoeletronico/sei-2.6.0 contendo todo o ambiente preparado para o desenvolvimento.
  87 +
  88 +É normal que a primeira execução desse comando demore vários minutos para ser concluído, pois a imagem/box, com cerca de 2GB, será baixada para a máquina de desenvolvimento. Após o fim da transferência, o ambiente estará disponível em questão de minutos.
  89 +
  90 +Após a conclusão do primeiro provisionamento, o ambiente poderá ser destruído e recriado rapidamente já que vagrant armazenará a BOX/Imagem de referência em seu cache.
  91 +
  92 +Ao final da inicialização do ambiente de desenvolvimento, será apresentada a seguinte mensagem abaixo indicando que todos os serviços do SEI já estão em operação na máquina de desenvolvimento. A mensagem é :
  93 +
  94 + ===> default: sei_db
  95 + ===> default: sei_solr
  96 + ===> default: sei_jod
  97 + ===> default: sei_www
  98 +
  99 +### 4) Testar a Aplicação
  100 +
  101 +**SEI**
  102 +Após a finalização do provisionamento do ambiente e a apresentação das mensagens acima, o SEI estará disponível para testes na máquina local de desenvolvimento através do acesso ao endereço http://localhost/sei. O usuário para acesso será o login: teste / senha: teste, o mesmo configurado na base inicial do sistema.
  103 +
  104 +Importante mencionar que o sistema que está rodando nesse endereço se baseia exatamente no código-fonte do SEI presente na diretório onde foi executado o comando vagrant up. A alteração feita no código-fonte do sistema poderá ser visto instantaneamente no sei através de um simples Refresh no browser do desenvolvedor.
  105 +
  106 +**SIP**
  107 +Da mesma forma como descrito anteriormente, o sip estará disponível no endereço http://localhost/sip e o usuário de acesso será o login: teste / senha: teste, o mesmo configurado na base inicial do sistema.
  108 +
  109 +**Banco de dados MySQL**
  110 +O componente chamado sei_db , apresentado logo após o provisionamento do ambiente, se refere ao serviço de banco de dados do MySQL que estará acessível na máquina local através da portal 3306. O banco de dados poderá ser acesso pelo MySQL Workbench ou qualquer outra ferramenta de conexão á banco de dados. Este serviço estará com os 2 bancos de dados utilizados pelo SEI (sei e sip) e poderá ser acessados com os seguintes usuários:
  111 +
  112 + Usuário Root do MySQL: login:root / senha:root
  113 + Usuário da Base de Dados do SEI: login: sei_user / senha: sei_user
  114 + Usuário da Base de Dados do SIP: login: sip_user / senha: sip_user
  115 +
  116 + Ex: mysql -h 127.0.0.1 -u root -p sei
  117 +
  118 +**Apache Solr**
  119 +O Apache Solr também estará disponível para testes e poderá ser acessado pelo endereço http://localhost:8983/solr
  120 +
  121 +**JOD Converter**
  122 +O JOD Converter também estará disponível para testes e poderá ser acesso pelo enderelo http://localhost:8080
  123 +
  124 +
  125 +
  126 +##INFORMAÇÕES ADICIONAIS
  127 +
  128 +A operação do ambiente de desenvolvimento virtualizado pelo vagrant poderá ser feito de 2 formas:
  129 +
  130 +#### 1) Comandos Básicos do Vagrant
  131 +Os seguintes comandos poderão ser executados no diretório onde está localizado o código-fonte do SEI para ligar e desligar o ambiente:
  132 +
  133 + vagrant up
  134 +
  135 +Responsável por inicializar as máquina virtuais e gerenciar o redirecionamento dos serviços para VM para à máquina local de desenvolvimento. Caso não exista nenhum ambiente previamente configurado na máquina local, ele também se encarregará de fazer toda a instalação e provisionamento da máquina virtual.
  136 +
  137 + vagrant halt
  138 +
  139 +Responsável por desligar as máquina virtuais desligar todos os serviços em execução.
  140 +
  141 + vagrant reload
  142 +
  143 +Reinicia todo o ambiente de desenvolvimento e sua máquina virtual.
  144 +
  145 + vagrant destroy
  146 +
  147 +Como o nome diz, destroi todo o ambiente de desenvolvimento utilizado até o momento, apagando todas as informações persistidas no banco de dados. A simples execução do comando vagrant up reconstrói um novo ambiente limpo para o sistema SEI.
  148 +
  149 +#### 2) Scritps utilitários .bat
  150 +Para simplificar a operação do ambiente virtual no Windows, o NeiJobson/Anatel criou os seguintes scripts .bat que estão disponíveis no ambiente colaborativo do SEI (https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/tree/master​). Eles poderão ser baixados e copiados para o diretório onde está o código-fonte do sistema, cada um com as seguintes funções:
  151 +
  152 +
  153 +----------
  154 +
  155 +
  156 + provisionar_VM_Dev_Localhost_SEI.bat
  157 +
  158 +Responsável por criar a configuração inicial do ambiente de desenvolvimento do SEI (vagrantfile). Semelhante ao comando vagrant init processoeletronico/sei-2.6.0
  159 +Download: https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/provisionar_VM_Dev_Localhost_SEI.bat
  160 +
  161 +
  162 +----------
  163 +
  164 +
  165 + iniciar_VM_Dev_Localhost_SEI.bat
  166 +
  167 +Responsável por inicializar as máquina virtuais e gerenciar o redirecionamento dos serviços para VM para à máquina local de desenvolvimento. Caso não exista nenhum ambiente previamente configurado na máquina local, ele também se encarregará de fazer toda a instalação e provisionamento da máquina virtual. Semelhando ao comando vagrant up
  168 +Download: https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/iniciar_VM_Dev_Localhost_SEI.bat
  169 +
  170 +
  171 +----------
  172 +
  173 +
  174 + parar_VM_Dev_Localhost_SEI.bat
  175 +
  176 +Responsável por desligar as máquina virtuais desligar todos os serviços em execução. Semelhante ao comando vagrant halt
  177 +Download:https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/parar_VM_Dev_Localhost_SEI.bat
  178 +
  179 +
  180 +----------
  181 +
  182 +
  183 + destruir_VM_Dev_Localhost_SEI.bat
  184 +
  185 +Como o nome diz, destroi todo o ambiente de desenvolvimento utilizado até o momento, apagando todas as informações persistidas no banco de dados. A simples execução do comando vagrant up reconstrói um novo ambiente limpo para o sistema SEI. Semelhante ao comando vagrant destroy.
  186 +Download: https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/destruir_VM_Dev_Localhost_SEI.bat
... ...