A algum tempo atrás crucifiquei o Sr. Cruise Control, na verdade não a ferramenta, mas o fato de automatizar esta integração. Porém, esses dias vi um novo cenário (que eu não tinha pensado) e que a automatização da Integração pode ser um GRANDE aliado.
Imagine você que seu desenvolvimento esteja tão, ou simplesmente, evoluído o bastante para termos várias "formas" de testes automatizados. Imagine que um de seus testes seja algo como, apagar TODA uma base de dados, e popula-la novamente com os dados mais atuais da aplicação, e só depois executar uma bateria de testes automatizados.
O bom e velho Build de 10 minutos vai pra roça !!!
Considere o exemplo acima apenas um EXEMPLO, pois podem existir várias situações em que sua integração ultrapasse, em muito, o tempo de 10 minutos.
Resumindo, você deve ter "2 momentos" de integração:
* A integração local: que seria a integração realizada em sua maquina, fazendo os testes unitários e, possivelmente, testes de integração;
* E o momento da integração automatizada, que conta com todas as vantagens da ferramenta, como relatórios e afins.
Mostrando postagens com marcador Cruise Control. Mostrar todas as postagens
Mostrando postagens com marcador Cruise Control. Mostrar todas as postagens
sexta-feira, 20 de março de 2009
quarta-feira, 19 de dezembro de 2007
CruiseControl - Automatizando minha Integração Continua
Ouvi muito se falar de CruiseControl, até mesmo aqui na empresa já estudamos a sua viabilidade. Mas, o que eu ganho com isso?
Uma integração "simples": test, backup, update, test, commit, pode ser executada com um botão ao lado do commit, então não dou "cliques a mais".
Mas lá vem uma vantagem, não preciso esperar a integração acontecer, sendo que ela pode demorar um pouco, aqui na empresa ela dura mais ou menos 5 minutos.
E como ouvi alguem me dizer, "sua maior força é sua maior fraqueza", então: a vantagem descrita acima acarreta no maior defeito, em minha opinião, de Automatizar a minha Integração Contínua, o feedback rápido é perdido.
Eu posso configurar o CruiseControl para me avisar mais rapidamente, posso saber 1 minutos após dar um erro, porém, mas se você estiver fazendo a integração "na mão" e o erro acontecer, você o corrigirá imediatamente.
E caso o gerente receba um email que a integração quebrou, duvido que ele diga, "parem o que esta sendo feito e verifiquem a integração".
Pior que isso, mesmo que o gerente peça para corrigir, é que se duas pessoas jogarem erros que provoquem "quebra" na integração, a pessoa que for corrigi-la pode conhecer apenas um dos erros e a demora para a correção desses erros é maior que seria caso a Integração fosse feita "na mão".
A dificuldade de correção pode acarretar num grande problema, o repositório pode ficar muito tempo quebrado.
O Vinícius da ImproveIT escreveu num post sobre Barrigas Abertas a seguinte frase: "Nos projetos que eu conheci, que utilizavam CruiseControl, era comum o repositório estar quebrado.", isso já me parece motivo suficiente para não usar essa Automatização.
Dois bons links sobre Integração Contínua e CruiseControl:
http://www.improveit.com.br/xp/praticas/integracao
http://weblogs.pontonetpt.com/contracorrente/posts/2008.aspx
Uma integração "simples": test, backup, update, test, commit, pode ser executada com um botão ao lado do commit, então não dou "cliques a mais".
Mas lá vem uma vantagem, não preciso esperar a integração acontecer, sendo que ela pode demorar um pouco, aqui na empresa ela dura mais ou menos 5 minutos.
E como ouvi alguem me dizer, "sua maior força é sua maior fraqueza", então: a vantagem descrita acima acarreta no maior defeito, em minha opinião, de Automatizar a minha Integração Contínua, o feedback rápido é perdido.
Eu posso configurar o CruiseControl para me avisar mais rapidamente, posso saber 1 minutos após dar um erro, porém, mas se você estiver fazendo a integração "na mão" e o erro acontecer, você o corrigirá imediatamente.
E caso o gerente receba um email que a integração quebrou, duvido que ele diga, "parem o que esta sendo feito e verifiquem a integração".
Pior que isso, mesmo que o gerente peça para corrigir, é que se duas pessoas jogarem erros que provoquem "quebra" na integração, a pessoa que for corrigi-la pode conhecer apenas um dos erros e a demora para a correção desses erros é maior que seria caso a Integração fosse feita "na mão".
A dificuldade de correção pode acarretar num grande problema, o repositório pode ficar muito tempo quebrado.
O Vinícius da ImproveIT escreveu num post sobre Barrigas Abertas a seguinte frase: "Nos projetos que eu conheci, que utilizavam CruiseControl, era comum o repositório estar quebrado.", isso já me parece motivo suficiente para não usar essa Automatização.
Dois bons links sobre Integração Contínua e CruiseControl:
http://www.improveit.com.br/xp/praticas/integracao
http://weblogs.pontonetpt.com/contracorrente/posts/2008.aspx
Assinar:
Postagens (Atom)