[OFF] Preparar e compartilhar ambiente de desenvolvimento com equipe

173 views
Skip to first unread message

Daniel Lima

unread,
Sep 13, 2012, 1:38:17 AM9/13/12
to zfbr...@googlegroups.com, php-architect, phpav...@googlegroups.com, doctr...@googlegroups.com
Pessoal,

Estou iniciando um projeto - um core para desenvolvimento de aplicações comerciais (erp, crm, etc.) - onde quero preparar um 
ambiente de desenvolvimento com git + integração contínua com phing, tests, codesniffer, doctrine-migrations...

Inicialmente, o projeto conta com 4 desenvolvedores, e tudo está em fase de planejamento.
Mas quero que quando começarmos a codar possa só instalar algo e começar a trabalhar, e que o mesmo ocorra com novos programadores que entrarem no projeto.

Imagino que criar uma VM resolva o meu caso, mas quero saber qual a melhor maneira de contornar isso.
Olhei superficialmente essa ferramenta http://vagrantup.com/, e parece que é propícia para o que estou falando, ou não? haha

E se possível, poderiam me indicar alguns ambientes prontos para essa estrutura?

Abs,
________________________________________

Daniel Lima 

Web Developer at Cilens Web Applications

(33) 3621-3195 - (33) 9124-3767

Skype: yourwebmaker
Twitter: @yourwebmaker 

Talk: yourwe...@gmail.com

Msn: yourwe...@hotmail.com

Facebook: https://www.facebook.com/cilens

Website: http://www.cilens.com.br




Marcelo Rodrigues

unread,
Sep 13, 2012, 9:14:44 AM9/13/12
to php-ar...@googlegroups.com
Daniel, 

Atualmente estou trabalhando num projeto e montei exatamente esse mesmo ambiente. No servidor de desenvolvimento (que é o de integração) tenho: git + gitolite (para gerenciar usuários que tem acesso ao git, sem que os mesmos tenham conta no servidor) + gitlab (que é uma interface de projetos git no formato Github); integração contínua com Jenkins, Phing, PHPUnit, Doctrine, Codesniffer, etc. Para fins de curiosidade, o projeto é em Symfony2, mas esse ambiente foi trabalhado para suportar vários projetos. 

Para o ambiente de desenvolvimento local, tenho uma VM (Ubuntu) usando Vagrant, preparado com basicamente as mesmas coisas do servidor de desenvolvimento, exceto Jenkins, Gitlab e Gitolite, com o adicional do Zend Server CE. Empacotei isso como uma imagem para o Vagrant para que, havendo necessidade de um novo desenvolvedor, ele só instale essa imagem, subindo rapidamente o ambiente de desenvolvimento local. 

Marcelo

2012/9/13 Daniel Lima <yourwe...@gmail.com>



--
Marcelo Rodrigues

Analista Desenvolvedor
Zend Certified Engineer ZEND018059

+55 (61) 9273 2058


Wesley Victhor Mendes

unread,
Sep 13, 2012, 9:44:19 AM9/13/12
to php-ar...@googlegroups.com
Voce poderia criar receitas utilizando chef ou puppet para gerenciar suas dependencias de desenvolvimento. Os desenvolvedores poderiam roda-las em suas próprias maquínas, independente de vm, e trabalhar com projeto local utilizando o controle de versão de sua preferência.

Tendo as dependências instaladas, um ambiente de deploy imagino que seria no mínimo interessante um server com Jenkins observando branches no git, poderia aplicar métricas como: PHPCPD, PHPend, PHPCS, PHPMD, PHPUnit, PHPDoc. E assim ao definir seus limites de aceitação nas metricas gerar a build para deploy gerando até mesmo um .phar e enviando o mesmo para produção. Existe uma ferramente para envio de builds para prod, Capifony baseado no Capistrano para deploy em multi. servers. Ou usar o onion para gerar o .phar. Você pode usar o phing ou ant para gerar suas builds ou até mesmo o Makefile(o que tenho usado) para tal.

2012/9/13 Marcelo Rodrigues <marce...@gmail.com>

Daniel Lima

unread,
Sep 13, 2012, 1:44:17 PM9/13/12
to zfbr...@googlegroups.com, php-architect, phpav...@googlegroups.com, doctr...@googlegroups.com
Bom Pessoal,

Obrigado a todos pelas respostas.

Já vi que terei que dar uma olhada nesse Vagrant mesmo, pois parece que a solução de uma máquina local "padrão" para todos os devs é mesmo usar uma VM.

Vou descrever a estrutura que vou trabalhar aqui:

Máquina dos desenvolvedores:
Apache + PHP 5.4, PHPUnit, MySql... e o que mais ser necessário =)

Server de desenvolvimento:
Github + Travis CI (Integração contínua) + Métricas e demais comandos para um deploy saudável.


Marcelo (php-architect),
O projeto também será em SF2 + Doctrine + Outras cositas más, e TODOS os devs são remotos.
É mais um grupo de estudos do que algo "comercial" mesmo, mas pra isso preciso de algo padrão para todos os devs.

De qualquer forma, obrigado a todos (de todos os grupos que enviei mensagem) pelas respostas.

Assim que terminar tudo, e caso use mesmo Vagrant, compartilho a VM aqui com vcs.

Abs a todos.
________________________________________

Daniel Lima 

Web Developer at Cilens Web Applications

(33) 3621-3195 - (33) 9124-3767

Skype: yourwebmaker
Twitter: @yourwebmaker 

Talk: yourwe...@gmail.com

Msn: yourwe...@hotmail.com

Facebook: https://www.facebook.com/cilens

Website: http://www.cilens.com.br






2012/9/13 Daniel Lima <yourwe...@gmail.com>

Arthur Cláudio Almeida Pereira

unread,
Sep 13, 2012, 4:11:59 PM9/13/12
to php-ar...@googlegroups.com
Fala, 

  Acredito que por ser um time distribuído a solução do Marcelo é a melhor pois com o mínimo de esforço é possível manter um ambiente homogêneo entre todos os dev's. 
  Um tutorial de como instalar todo o ambiente é legal mas o grande problema disso é a falta de padronização entre as máquinas dos dev's e os servidores tanto de produção como de homologação e afins. 
  Geralmente quando a instalação do ambiente é feito "manunalmente" acontece de versões de banco de dados, linguagem, frameworks  entre outras coisas serem um pouco diferentes em suas versões e acontecer aquele problema que todo programador adora falar: "Na minha máquina funciona". 
  Essa forma de trabalho ajuda até em um início rápido no engresso de um novo profissional na  equipe pois o ambiente já está pronto. 

abraços

Daniel Lima

unread,
Sep 13, 2012, 4:16:14 PM9/13/12
to php-ar...@googlegroups.com
Arthur,

Você reforçou o que estava pensando e o que já havia conversado com um membro do time.
Já havia pensando sobre o problema do "na minha máquina roda" e esse foi o ponto chave da minha decisão.

Abs,
________________________________________

Daniel Lima 

Web Developer at Cilens Web Applications

(33) 3621-3195 - (33) 9124-3767

Skype: yourwebmaker
Twitter: @yourwebmaker 

Talk: yourwe...@gmail.com

Msn: yourwe...@hotmail.com

Facebook: https://www.facebook.com/cilens

Website: http://www.cilens.com.br






2012/9/13 Arthur Cláudio Almeida Pereira <arthur.alm...@gmail.com>

Raphael Almeida

unread,
Sep 13, 2012, 10:41:44 PM9/13/12
to PHP Architect
Tenho ambiente Linux e Windows no trampo.
Estou testando o vagrant e por enquanto está dando certo.

Se o seu ambiente mudar muito, recomendo que deixe uma VM base e
coloca tudo nas recipes, versionadas de preferência para acompanhar as
mudanças.
Se não mudar nada, blz monta uma VM e disponibiliza para a galera.

--
[]ão,

Raphael de Almeida

http://raphaeldealmeida.net
http://www.twitter.com/raph_almeida
http://rubyonrio.org | http://phprio.org | http://androidinrio.com.br
http://www.arduinrio.cc | http://dojorio.org

Mayck Xavier

unread,
Sep 14, 2012, 12:34:04 PM9/14/12
to php-ar...@googlegroups.com
O Elton Minetto escreveu sobre Vagrant no seu blog.
Espero que ajude
--
Mayck Xavier



2012/9/13 Raphael Almeida <jagua...@gmail.com>
Reply all
Reply to author
Forward
0 new messages