Integração Contínua

312 visualizações

Publicada em

Integração Contínua

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
312
No SlideShare
0
A partir de incorporações
0
Número de incorporações
208
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Inconformidades: Build ou Testes quebrados, ambiente inacessível, violações de métricas de qualidade de código (StyleCop, Sonar...)
  • A muito tempo atrás existia um desenvolvedor de software que não aguentava mais encontrar bugs em seu sistema. Certo dia ele pensou: como posso diminuir estes bugs? Tem como eu testar mais fácil meu software?
  • Por que gostamos de usar? Por que é bonito.
  • SCM: TFS, Git, SVN
  • Inconformidades: Build ou Testes quebrados, ambiente inacessível, violações de métricas de qualidade de código (StyleCop, Sonar...)
  • Dois anos de utilização
    BDD
    Consolidado
  • Package para projetos com RDM/GMUD
  • Fábrica de testes tem controle sobre o deploy
  • Continuous Delivery
  • Acredito que duas coisas definem o que precisamos para essa caminhada. As ferramentas nós já temos.
  • Integração Contínua

    1. 1. 1 I n t e g r a ç ã o C o n t í n u a
    2. 2. 2 Quem somos Altamir • 21 anos de TI • 5 anos de agilidade • 4 anos com automação e Integração Contínua • 2 anos de CWI 2 projetos na CWI com Integração Contínua Alexandre • 14 anos de TI • 4 anos de agilidade • 3 anos com Integração Contínua • 4 anos de CWI 8 projetos na CWI com Integração Contínua em 6 clientes
    3. 3. 3 Integração Contínua O que é Custos-benefícios Quando usar/recomendar Onde a CWI já está usando
    4. 4. 4 O que é (como não deve ser)
    5. 5. 5 O que é – By the book “Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” - Martin Fowler, Chief Scientist, ThoughtWorks
    6. 6. 6 O que é – Níveis de maturidade Code Build Integrate Test Release Deploy Operate Development Continuous Integration Continuous Delivery Continuous Deployment
    7. 7. 7 O que é – Utopia?
    8. 8. 8 O que é - Ferramentas Jenkins Travis CI TFS TeamCity
    9. 9. 9 O que é
    10. 10. 10 Custos-benefícios Benefícios Deploy automático Escalabilidade Velocidade/Foco Transparência Alertas de inconformidades Execução automática de testes Redução de riscos Custos INFRA Setup inicial da ferramenta Setup do ambiente de execução Integrar testes (PRJ em andamento) Construção dos scripts de build Construir testes
    11. 11. 11 Custos-benefícios “Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.” - Martin Fowler, Chief Scientist, ThoughtWorks “Integração Contínua não te livra dos bugs, mas torna o processo de encontrar e resolver drasticamente mais fácil” – Tradução livre
    12. 12. 12 Custos-benefícios Servidor pirataEquipe Visual Studio Online Amazon AWS Servidor Aplicação INFRA Cliente Equipe EquipeEquipe
    13. 13. 13 Quando usar/recomendar • Quando você disponibiliza um serviço online (Web, SaaS, Apis) • Novas funcionalidades com urgência • Quando o tempo para entrega é muito extenso • Quando o projeto é para uma startup • Quando a equipe de DEV é relativamente grande • Quando o projeto necessita de correções frequentes de segurança
    14. 14. 14 Onde a CWI já está usando Unimed POA / Mais Unimed • Jenkins como ferramenta de integração contínua • O servidor fica no cliente • Usado para: • Automatização do Build • Deploy • Testes • Usado a mais de 2 anos • Todo o processo roda em 40 minutos, executando 41 casos de testes de aceitação (13 processos de negócios diferentes) • Segundo Diego Haggstron (CWI) "Queremos atingir um percentual maior de cobertura de testes de aceitação."
    15. 15. 15 Onde a CWI já está usando Lojas Renner (todos os projetos) • Jenkins como ferramenta de integração contínua • O servidor fica na CWI • Usado para garantir: • Qualidade do código produzido • Cobertura de testes unitários • Usam desde o início do projeto • Todo o processo roda em 10 minutos • Segundo Gustavo Jotz (CWI) "Conseguimos manter uma qualidade e muito boa cobertura de testes, mas ainda há espaços para melhorar."
    16. 16. 16 Onde a CWI já está usando Projeto TNT Express – EMS • Jenkins como ferramenta de integração contínua • Durante o desenvolvimento ficou no mesmo servidor da aplicação. Quando os fontes foram migrados para um servidor do cliente, o CI foi junto • Usado para a execução: • De testes unitários • De integração • Visualização dos resultados, Build e package da aplicação • Liberação em diversos ambientes para teste e homologação. • Usam desde o início do projeto • Todo o processo roda em 3 minutos, executando mais 800 testes, cobrindo 85% do código do projeto • Segundo Lucas Balensiefer (CWI) "Atingimos o objetivo esperado com a utilização"
    17. 17. 17 Onde a CWI já está usando Mobile Commerces de Casas Bahia, Extra e Ponto Frio • Go como ferramenta de integração contínua • O servidor de integração contínua esta em uma instância EC2 da Amazon. • Usado para a execução: • De integração do que é instalado em cada ambiente • De testes unitários e funcionais • Automação do deploy de ambientes de DEV, QA e STG e Status check de produção (em planejamento) • Usam desde o início do projeto, no sprint de iniciação • Todo o processo roda em 23 minutos • Segundo Daniel Wayhs (CWI) "Conseguimos delegar para a fabrica de testes os triggers de deploy para os ambientes. Eles conseguem verificar as features que estão entrando em cada deploy. E consigo fazer um deploy em produção com tranquilidade sabendo que o build passou por todos os níveis do pipeline"
    18. 18. 18 Onde a CWI já está usando Coca-Cola – Embaixadores • Jenkins e uDeploy como ferramenta de integração contínua • O servidor Jenkins fica na CWI e o uDeploy no cliente • Usado para: • Build • Testes unitários • Testes de aceitação de serviços • Deploy (apenas este no cliente) • Usado desde o início do projeto • Todo o processo roda em 3 minutos • Segundo Jonas Flesch (CWI) "O processo só não esta melhor por que a ferramenta do cliente (uDeploy) exige alguns processos manuais."
    19. 19. 19 Ferramentas Cultura
    20. 20. 20 “O software que fazemos para automatizar o processo dos nossos clientes deve nos motivar para automatizar nosso processo”
    21. 21. 21 Obrigado! Alexandre Machado | alexandrelima@cwi.com.br Altamir Júnior Dias | ajdias@cwi.com.br

    ×