Commit 40fcac6905ed6148e069b840fb279117071a6c7a

Authored by Guilherme Del Cantoni
1 parent 6d981cf1
Exists in master

Atualização da documentação do projeto

Showing 1 changed file with 10 additions and 6 deletions   Show diff stats
README.md
1   -# Ambiente de Desenvolvimento - Vagrant
  1 +# Ambiente de Desenvolvimento - Vagrant e Docker
2 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](https://www.vagrantup.com/ "Clique para acessar"). 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.
  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](https://www.vagrantup.com/ "Clique para acessar") e [Docker](https://www.docker.com). Essas ferramentas permitem 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 4  
5 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 6  
... ... @@ -12,8 +12,9 @@ Outra fator importante de ser feito, antes do início dos trabalhos de desenvolv
12 12  
13 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 14  
15   -* VirtualBox - https://www.virtualbox.org/
16 15 * Vagrant - https://www.vagrantup.com/
  16 +* Docker - https://www.docker.com/
  17 +* VirtualBox - https://www.virtualbox.org/
17 18 * Git - https://git-scm.com/
18 19  
19 20 Outros recursos para melhor entendimento das tecnologias citadas acima:
... ... @@ -23,6 +24,12 @@ Outros recursos para melhor entendimento das tecnologias citadas acima:
23 24 * http://pt.slideshare.net/RenanMartinsPimentel/vagrant-26647815
24 25 * http://pt.slideshare.net/rogeriopradoj/desenvolvimento-php-com-vagrant-15511228
25 26  
  27 +O provisionamento dos componentes do sistema é implementado através da plataforma de containers do [Docker](https://www.docker.com), portanto, as imagens dos containers
  28 +podem ser reutilizados isoladamente em outras configurações de infraestrutura para testes, sendo que todos os containers utilizados neste projeto estão publicados no [DockerHub](https://hub.docker.com/r/guilhermeadc/). Um exemplo de utilização dos container do Docker para preparação de ambiente de desenvolvimento do SEI pode ser visto no arquivo [docker-compose.yml](https://github.com/guilhermeadc/sei-vagrant/blob/master/docker-compose.yml) utilizado internamento pelo projeto.
  29 +
  30 +O Docker utiliza recursos do Kernel do Linux para gerenciar o isolamento provido pelos container, o que obriga a utilização deste sistema operacional para uso da "virtualização". Para resolver esta limitação é utilizado o Vagrant, responsável por criar uma virtualização para servir de host para o Docker e permitir sua utilização em outr
  31 +os Sistemas Operacionais, como Windows e MacOS. Sua função é semelhante ao provido pelos projetos [Boot2Docker](http://boot2docker.io/) e [Docker Machine](https://docs.docker.com/machine/).
  32 +
26 33 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 34  
28 35 * Rápido início do projeto de desenvolvimento ou testes por parte do desenvolvedor;
... ... @@ -34,11 +41,8 @@ O Vagrant trabalha com o conceito de Box, basicamente uma "imagem/iso" para se c
34 41 Para configurar o ambiente, será necessário a instalação dos seguintes pré-requisitos:
35 42  
36 43 * **VirtualBox** Download: https://www.virtualbox.org/wiki/Downloads
37   -
38 44 * **VirtualBox Extensions** Download: https://www.virtualbox.org/wiki/Downloads
39   -
40 45 * **Vagrant** Download: https://www.vagrantup.com/downloads.html
41   -
42 46 * **Git** Download: https://git-scm.com/downloads
43 47  
44 48 Todos os componentes acima precisam ser instalados na máquina de desenvolvimento, prestando atenção nas seguintes considerações:
... ...