Caelum | Ensino e Inovação - Cursos de Java, Scrum, Ruby on Rails


O processo de deploy contínuo

Por Guilherme Silveira em 01/03/10

Ao término do primeiro sprint, sua aplicação está andando muito bem e tem todas as histórias aprovadas enquanto no ambiente de testes. Passaremos então para a primeira tentativa de colocá-lo em produção/homologação, e logo descobre-se que o sistema não funciona corretamente nesse novo ambiente, e é gasto muita energia para adaptar diversos detalhes que já eram considerados “prontos”.

Após esse esforço, com a aplicação rodando em outra máquina diferente da de desenvolvimento, os clientes começam a utilizá-la e a quantidade de bugs específicos desse novo ambiente que aparecem sobrecarregam os desenvolvedores. O estranho de tudo isso é que o código original rodava na máquina do desenvolvedor sem problemas, inclusive com testes unitários e de aceite.

Em sistemas que não implementam testes end to end, mesmo que smoke tests e que não se planejam para deploys desde o começo do projeto, é comum encontrar um grande número de bugs no primeiro deploy de homologação, além de uma extrema dificuldade para realizar essa implantação inicial.

A equipe passa então a trabalhar para corrigir essas onda de bugs, fica incapaz de adicionar novas funcionalidades em um ritmo adequado e desanima rapidamente.

Enquanto o processo de deploy não for automatizado, cada nova tentativa de implantação é seguida por uma enchurrada de bugs novos, sempre com as mesmas consequências negativas.

A solução aqui é automatizar todo o processo de deploy desde o primeiro sprint, e para isso você precisa estruturar muito bem seu ambiente, de forma que ele seja perfeitamente replicável entre as máquinas de desenvolvimento, homologação e produção. Isso é bastante planfletado pelo movimento Devops.

Graças aos ciclos mais curtos de deploy, o cliente testa o seu software mais cedo e recebemos feedback mais rápido quanto a bugs existentes, portanto o número de bugs novos sai do zero muito mais cedo, diminuindo um possível susto.

Martin Fowler comentou recentemente sobre a estratégia de manter dois sistemas muito parecidos em paralelo e virar a chave de roteamento de um para o outro para efetuar a transição, processo que pode e deve ser automatizado por completo em aplicações de alta disponibilidade. Fábio Akita da Locaweb explica uma estratégia simples para deploy contínuo através do uso do git.

Tudo isso minimiza o acúmulo de bugs, resultando em um ritmo constante, mas menor, de aparição de problemas, inerentes a qualquer processo.

Com o deploy contínuo através de técnicas como a citada pelo Akita, cada commit terá não só suas baterias de testes rodados, mas entra em homologação. Os bugs aparecem mais cedo durante o desenvolvimento do projeto e o processo de deploy pode ser efetuado mais frequentemente.

Indo além, com um sistema blue-green, seu processo de deploy atinge um nível maior ainda de maturidade, com a possibilidade de um rollback robusto a qualquer instante.

Como você está tratando o seu deploy?

  • Share/Bookmark

Falando em Agile 2008: Agilidade de Tartaruga

Por Paulo Silveira em 07/01/09

Mais uma palestra do Falando em Agile 2008. Desta vez com Danilo Sato e Francisco Trindade, ambos da ThoughtWorks de Londres, falando sobre os problemas encontrados no dia a dia quando se adota uma metodologia ágil. A ThoughtWorks é umas das empresas mais conceituadas quando se fala em agilidade, e tem como seu cientista chefe Martin Fowler.

Veja também outras palestras do Falando em Agile 2008:

  • Share/Bookmark

Falando em Agile 2008: eu fui!

Por alexandre.magno em 31/10/08

O Falando em Agile 2008 deixou saudades! Foi muito bom ver profissionais experientes não só em Agile, mas no mundo de software como um todo, discutindo durante dois dias sobre a difícil arte de fazer projetos darem certo, entregando software funcionando e com valor para o cliente. Foi muito bom ver profissionais de todos os mundo juntos: Java, .NET, Delphi, PMBok, Scrum, XP, FDD…em busca de um único objetivo!

Tivemos palestras abordando assunto para todos os gostos: cases de sucesso apresentados pela Dell, Aeronáutica e Globo.com; alertas sobre as dificuldades para a implantação de Agile; modelos para contratação de projetos ágeis; Scrum em ambientes PMBok; Kanban e muito mais. Foi realmente uma overdose!

UPDATE: Veja o vídeo de algumas das palestras.

DSC_7741_50 DSC_7744_50
DSC_7675_50 DSC_7653_50

Eu poderia neste post relatar cada uma das palestras, citar pontos positivos e negativos do evento, enfim, falar em detalhes do evento. No entanto a comunidade já está fazendo isto com maestria, então cito abaixo alguns posts sobre o Falando em Agile 2008:

Vitor Hugo Germano,
Daniel Wildt
André Faria Gomes
Fabricio Sousa
Inove
André Ferreira
Danilo Bardusco,
Guilherme Chapiewski
Antonio Carlos Silveira
Philip Calçado
Flickr do Antônio Carlos
Danilo Sato

Nós da Caelum agradecemos a todos os palestrantes, que tornaram o evento muito mais especial, e as empresas que patrocinaram e apoiaram o evento: Globo.com, Yahoo! Brasil, Borland, além da Heptagon, Sea Tecnologia, Locaweb, Scrum Alliance e ThoughtWorks. Vejo vocês
no Falando em Agile 2009, e aguardem a disponbilização de algumas palestras do evento!

  • Share/Bookmark

Novo treinamento: PM-51, Programação Extrema (XP) com Java

Por Sérgio Lopes em 21/10/07

Você já desenvolveu software usando o modelo waterfall? Brigou com o cliente para discutir se aquele requisito fazia ou não parte do contrato? Se perdeu com tantas obrigações do processo unificado? Cansou de escrever todo UML antes de escrever uma única linha de código? E aí alterar todo o UML pois ele não representava aquilo que o cliente queria? Só faz uma release estável de ano em ano?

O mercado está mudando. O gerenciamento de software está mudando. Precisamos de releases  rápidos, código testado, responder rapidamente aos novos requisitos do cliente, não se perder em milhares de páginas de contratos e requisitos. Agilidade.

Curso de XPA Caelum acaba de anunciar a criação de um novo treinamento focado em desenvolvimento ágil: PM-51, Programação Extrema (XP) com Java. A elaboração do treinamento contou com a consultoria de Danilo Sato, mestre em Ciência da Computação pela USP em metodologias ágeis.

As metodologias “tradicionais” de desenvolvimento de software têm causado cada vez mais complicações para as empresas. A abordagem das metodologias ágeis (como Scrum e XP) procura resolver esses problemas focando no resultado final do produto, na rápida resposta às mudanças e na satisfação do cliente. Grandes nomes do desenvolvimento de software e grandes empresas pelo mundo todo (como Google, Yahoo e Microsoft) têm apostado nas metodologias ágeis e têm tido ótimos resultados. A Caelum também abraçou a causa, e utiliza metodologias ágeis em seus projetos e clientes.

Iniciamos o enfoque em metodologias ágeis com o treinamento de Scrum no início desse semestre, com Alexandre Magno. Agora completamos a grade com o treinamento de Extreme Programming (XP), metodologia que é inclusive muito utilizada em conjunto com Scrum.

Neste treinamento de XP abordaremos as práticas da metodologia e as práticas de programação que trazem agilidade ao desenvolvimento de software. Desde tópicos técnicos como testes automatizados, design patterns, refatoração e o processo de build até a integração contínua, programação pareada e o uso de controle de versão. Além disso, falaremos dos valores ágeis, das reuniões diárias, jogo do planejamento, métricas de qualidade de código e tracking para controle geral do processo de desenvolvimento. Diferentemente do treinamento de Scrum, a parte prática deste treinamento possui bastante código e desenvolvimento.

Entre em contato conosco para saber mais ou fazer sua reserva.

  • Share/Bookmark



Caelum | Ensino e Inovação
São Paulo: Rua Vergueiro, 3185, cj. 87, próximo ao Metrô Vila Mariana   |   Tel. (11) 5571-2751
Rio de Janeiro: Rua Senador Dantas, 80, cj. 307/308 - Centro   |   Tel. (21) 2220-4156 ou 2297-0033
Brasília: SCS Qd. 8 Bl. B-50, Sala 521 - Ed. Venâncio 2000   |   Tel. (61) 3039-4222