[Cisl-comunidade] SVN e CVS para controle de versões de deploy de aplicações

Bruno F. Souza bruno em javaman.com.br
Terça Maio 7 02:54:06 BRT 2013


On 06/05/2013, at 11:09, Otávio Gonçalves de Santana <otaviopolianasantana at gmail.com> wrote:

> Para controlar a versão do seu código tem o subversion: http://subversion.apache.org/
> Em relação ao deploy, vc fala de deployment continous ? Se sim, vc pode usar o jekins com os plugins para isso: http://jenkins-ci.org/
> 
> 2013/5/6 Jonatas Monteiro Nobre <jonatas.nobre at bancoamazonia.com.br>
> 
>       Primeiramente agradeço ao apoio que a comunidade tem me dado. Venho pedir o apoio em indicar uma ferramenta ou ferramentas para a implementação de um ambiente mais adequado para controle e registro de atualizações de deploys de aplicações.
> 


Ola Jonatas,

Vou complementar o que o Otavio disse, dando umas dicas a mais:

Primeiro, nao recomendo o CVS… o Subversion (svn) foi criado exatamente para substituir o CVS, e tem muitas melhorias, pode decidir por ele tranquilo. Se quiser considerar um repositorio mais recente e mais moderno, o Git eh uma opcao, mas o Subversion eh tranquilo, e 
super usado.

Para fazer o que voce quer, voce pode fazer de varios passos, aumentando o seu controle do ambiente:

Subversion (repositorio de codigo) http://subversion.apache.org
Voce pode utilizar o Subversion para fazer controle de versao do seu codigo, e criar Tags para marcar uma versao especifica. Alguns projetos usam branches para fazer isso, que pode ser tambem, depende da complexidade do projeto. Uma tag ja identifica todas as versoes de todos os arquivos que compoe a sua release, entao, voce ja sabe exatamente o que entra em uma versao (tag) especifica da sua aplicacao.

Jenkins (testes e integracao continua) - http://jenkins-ci.org
Uma vez criada a tag, voce pode usar o Jenkins (que ja foi citado pelo Otavio) para executar todos os testes. O Jenkins eh um servidor de integracao continua, que vai compilar, montar a sua release e executar os testes. Voce pode executar testes de integracao, ou mesmo testes de interface, etc.

Nexus (repositorio de artefatos) - http://www.sonatype.org/nexus/‎
Passando pelos testes, voce provavelmente deveria guardar os artefatos resultantes (o "binario" da sua aplicacao ou da sua biblioteca) em um repositorio de artefatos. O Nexus eh uma das ferramentas mais usadas para isso. Dessa forma, voce tem guardado um zip ou jar ou war de toda a sua aplicacao. Se voce precisar mais pra frente instalar uma versao especifica para algum teste, ou para voltar para uma versao que funcionava, voce tem uma copia do binario. 

Jenkins (deployment continuo) - http://jenkins-ci.org
Dai, o Jenkins pode ser usado para fazer o tao sonhado "deploy continuo". Esse eh um passo mais complicado, porque envolve varias coisas: (1) a capacidade de instalar a aplicacao no ambiente de producao (2) um teste para verificar se esta tudo OK, e verificar se o servico continua funcionando bem e (3) uma forma de voltar para a versao anterior, caso alguma coisa tenha saido errado. 

Ja que o deployment continuo eh um passo automatico (1), se voce nao conseguir (2) testar ou nao conseguir (3) fazer o rollback, voce pode acabar com uma aplicacao nao funcional e afetar seu cliente. (2) e (3) podem ser bem simples (apenas verificar se o site responde, e copiar os arquivos antigos de volta se nao responder), ou podem ser bem complexos (verificar se o tempo de resposta esta aceitavel, se o numero de clientes atendidos esta dentro da media, e se nao, ter que voltar o banco para uma versao anterior, eliminar filas de mensagens, mudar configuracao do application server, voltar versao do sistema operacional, etc). 

Redmine (gerenciamento de projetos) - http://redmine.org
Para finalizar, voce pode interligar tudo isso com o seu gerenciador de pendencias e de projetos, e gerenciar o que entra em cada versao, listar bugs conhecidos, e usar essa versao para fazer o tag, e controlar o resto do processo. O Redmine eh uma ferramenta de gerenciamento de pendencias excelente, usado em grandes projetos open source (como linguagem Ruby e o servidor LightHTTPd) que permite voce ter uma visao total do seu projeto.

Ou seja, da pra fazer um ambiente bem bacana de versionamento, totalmente com ferramentas livres, e integrado com tudo que seu time precisa.

E caso voce prefira ter alguem te ajudando a implantar tudo isso, nos da ToolsCloud (http://www.toolscloud.com) mantemos ambientes 100% livres, com todas essas (e outras) ferramentas, totalmente integradas e damos o suporte para que seu time possa trabalhar sem ter que se preocupar com configurar e manter o ambiente (veja imagem em anexo). Somos uma empresa brasileira, totalmente baseada em software livre, e voce pode ter esse ambiente todo a disposicao da sua equipe ainda hoje! :-) 

Eu acredito que, usando ambientes livres, temos como ampliar a profissionalizacao dos desenvolvedores no Brasil, e melhorar a nossa produtividade. Portanto, se precisar de qualquer ajuda para entender melhor como fazer isso para o seu time, estou aa disposicao (bruno at toolscloud.com).

[]s,
Bruno.
______________________________________________________________________
Bruno Peres Ferreira de Souza                         Brazil's JavaMan
http://www.javaman.com.br                      bruno at javaman.com.br
        if I fail, if I succeed, at least I live as I believe








-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/cisl-comunidade/attachments/20130507/d5f7ff97/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ToolsCloud-Diagram-v2.png
Type: image/png
Size: 43129 bytes
Desc: not available
URL: <http://listas.softwarelivre.org/pipermail/cisl-comunidade/attachments/20130507/d5f7ff97/attachment-0001.png>


More information about the Cisl-comunidade mailing list