sexta-feira, 22 de setembro de 2017

Saiba o que rolou no evento de Setembro/2017

No dia 13/09 foi realizado o evento de Setembro do GUTS-RS e nesta edição contamos com a presença de Marcelo Adamatti, engenheiro de software na Zenvia, que compartilhou um pouco da sua experiencia e conhecimento sobre Continuous Integration (CI) e Continuous Delivery/Deployment (CD).

O Global Tecnopuc de casa cheia com o GUTS-RS
Vamos imaginar dois cenários:

O primeiro cenário é de uma empresa cujo seus softwares vão para produção quatro vezes por ano e todas as vezes que uma parte do produto vai para produção as equipes investem um grande esforço preparando o deployment. Tudo tem que dar certo. Tudo tem que ser testado minunciosamente e intensivamente, gerando retrabalho e horas-extras. Quando chega o grande dia, uma parte da equipe está preparada para colocar o software em produção e outra parte está preparada para dar um rollback caso algo errado aconteça.

Agora vamos para o segundo cenário: uma empresa que coloca os seus softwares em produção a cada commit do desenvolvimento. Uma vez por dia uma nova versão do produto estará em produção e a equipe está preparada em todo seu processo de desenvolvimento para realizar isso.

Qual das duas situações mais se parece com a realidade da sua empresa? Foi com esses dois exemplos que o palestrante iniciou a apresentação e explicou os conceitos de CI e CD.

Marcelo Adamatti falando sobre CI e CD
A ideia dos cenários foi para fazer o público se identificar e comparar com a realidade da sua respectiva empresa. Além disso, Marcelo nos mostrou uma linha do tempo com evolução de práticas que existiam no processo waterfall e que mudaram com a chegada das metodologias ágil e lean, proporcionando o desenvolvimento de práticas como CI e CD. Essas práticas permitem que as equipes possam disponibilizar novas versões do software para produção com maior frequência.

Vejamos alguns conceitos para melhor entendimento:

Continuous Integration é a integração contínua do trabalho dos desenvolvedores, ou seja, os desenvolvedores mesclam as suas mudanças na mesma branch com frequência. A prática de CI é apoiada por desenvolvimento de testes automatizados, já que é preciso garantir que as mudanças efetuadas não afetaram outras partes do código.

Continuous Delivery/Deployment é o mindset de ter o código pronto para deploy para produção a qualquer momento, podendo ser manual (continuous delivery) ou automático (continuous deployment).

Um ponto relevante que foi apresentado é que essas práticas podem e devem ser combinadas com outras técnicas e ferramentas, como, por exemplo, TDD para apoiar o CI ou Docker para facilitar o deploy. Segue abaixo uma lista de ferramentas e técnicas citadas pelo palestrante: 

Ferramentas utilizadas no CI e CD
O Marcelo também trouxe exemplos práticos (código) e apresentou para a comunidade que mostrou-se interessada no assunto através de perguntas e discussões ao final do evento.

Moisés Ramírez, Alessandra Paixão, Marcelo Adamatti e Joyce Bastos
E a noite não parou por aí! Nessa edição tivemos o sorteio de dois ingressos para o evento do The Developers Conference (TDC) Porto Alegre. Os ganhadores foram Bruce Notario e Daniel Jacobsen. Parabéns aos sorteados!

O GUTS-RS agradece a presença de todos, em especial ao Marcelo Adamatti que nos prestigiou com as suas experiências e o seu conhecimento.

Confira os slides da palestra através da nossa página no Slideshare e fique por dentro do que rolou no evento!


As fotos do evento podem ser conferidas na nossa página no Facebook.
Fiquem ligados que tem mais evento do GUTS-RS no próximo mês! Informações em breve :)

Um comentário:

Marcelo Adamatti disse...

Obrigado mais uma vez ao GUTS-RS pela oportunidade!
Fico a disposição para esclarecimentos, meus contatos estão em http://adamatti.github.io