docker, jenkins e gradle para tomar o controle de sua entrega
TRANSCRIPT
Agenda
- Continuous Delivery
- Overview do projeto
- Problemas encontrados
- Descrição das ações adotadas
- Ferramentas utilizadas
- Impacto na cultura
Continuous Delivery
"Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time."
Martin Fowler
Overview do projeto
+1,3 milhões de linhas de código
+1k reports
processa arquivos com mais de 600 Mb
equipes distribuídas
Overview do projeto
muitos stakeholders
2 deploy em 6 meses
migração recente de desktop para web
e os primeiros passos na nuvem
Problemas
build gerado pela IDE
dependências compartilhadas pelo skype, e-mail entre outras tecnologias
Problemas
regras de negócio espalhadas por repositórios diferentes
configurações (dev, stage) fora do git
Desenhar a solução
entendimento da solução
expõem os pontos de melhoria
e esses desenhos vão evoluindo
Por que escolhemos o gradle
o diretório src não seguia o padrão
versões dinâmicas 1.0.+
lifecycle flexível
wrapper
1ª etapa
não poderia impactar outras equipes
branch a parte
configuração individual de cada projeto
dependências dinâmicas
2ª etapa
unificação de repositórios com multi-project
adição do setup inicial do projecto no repositório
criação de um README com o setup
Jenkins builds
na minha máquina funciona...
não precisa de plugin para o gradle (self-contained)
geração automática de tag no repositório
Testes
adição de testes unitários
criação de um projeto para testes de integração que consultam o database
Qualidade
design e code review em pair
SonarQube scan diário
- correções imediatas das anomalias- ações tomadas com base nos reports
Substituição do system.out por log4j2
melhoria na qualidade do log
fundamental para adição de métricas em prod
Overview cultural
o ambiente não era favorável à mudança
falta de confiança
distância entre business e dev
Mudança cultural
não apresente a solução completa, mas tenha ela em mente
faça pequenas correções, mas sempre faça
tradeoff tecnológico e comportamental
Mudança cultural
+ poder para as pessoas
definição de pronto clara
estimule um ambiente de aprendizado
https://github.com/hstreb/tdc-poa-2016
Muito obrigado
https://github.com/hstreb
https://twitter.com/humbertostreb
http://slideshare.net/humbertostreb