Anúncio

Da Integração à Entrega Contínua

CWI Software
9 de Jun de 2014
Anúncio

Mais conteúdo relacionado

Apresentações para você(20)

Similar a Da Integração à Entrega Contínua(20)

Anúncio

Último(20)

Da Integração à Entrega Contínua

  1. INTEGRAÇÃO CONTÍNUA Marlon Bernardes Da à ENTREGA <marlonjb.cb@gmail.com>
  2. INTEGRAÇÃO CONTÍNUA
  3. “Prática de desenvolvimento de software aonde os membros de um time integram seu trabalho freqüentemente (geralmente multíplas vezes por dia).”
  4. SCM commit commit Como funciona?
  5. SCM Build commit commit Compila Otimiza Gera artefatos Como funciona?
  6. SCM Build commit commit Compila Otimiza Gera artefatos Test Unitários Integração Como funciona?
  7. SCM Build commit commit Compila Otimiza Gera artefatos Test Unitários Integração Deploy + testes de aceitação Como funciona?
  8. SCM Build commit commit Compila Otimiza Gera artefatos Test Unitários Integração Deploy + testes de aceitação feedback Como funciona?
  9. ➔ Commits diários; ➔ Sem multíplas branchs - commits direto no “trunk”; ➔ Build automatizado; ➔ Todo commit gera um novo build; ➔ Ambiente de testes deve ser similar ao de produção; ➔ Deploy automatizado (sem exigir intervenção manual); Estratégias Utilizadas
  10. ➔ Testa continuamente o projeto; ➔ Garante que a aplicação é compatível com o banco de dados; ➔ Mantém sempre a versão de testes atualizada; ➔ Os erros são identificados rapidamente; ➔ Testes automatizados == maior qualidade == menos tempo necessário para colocar uma nova versão em produção; ➔ Auditoria de código é feita continuamente através do Sonar; Quais os benefícios?
  11. E quando o build quebra?
  12. E quando o build quebra? Consertar deve ser prioridade!
  13. E quando o build quebra? Consertar deve ser prioridade!
  14. Feedback
  15. Sonar
  16. Selenium Grid
  17. E na hora do deploy...
  18. Bah! Esqueci de rodar os scripts.
  19. ➔ Controle de versão para o banco de dados; ➔ Mudanças na base são executadas incrementalmente; ➔ Scripts ficam juntos com o código fonte da aplicação e são executados automaticamente durante o deploy;
  20. Automatize tarefas entediantes e repetitivas!
  21. Falando nisso...
  22. Gerar versão em produção não precisa ser o evento do mês!
  23. Gerar versão em produção não precisa ser o evento do mês trimestre!
  24. Gerar versão em produção não precisa ser o evento do mês trimestre ano!
  25. ENTREGA CONTÍNUA
  26. Conjunto de práticas e princípios que visam criar, testar e liberar software mais rapidamente em produção.
  27. Nosso código não tem valor de negócio enquanto não for entregue.
  28. Qual o tempo necessário para liberar em produção uma mudança que afeta uma linha de código?
  29. Manual de deploy da
  30. BLUE-GREEN DEPLOYMENT
  31. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO Apenas um nodo (ou conjunto) fica ativo por vez.
  32. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO Em caso de erro na versão atual, é possível fazer rollback instantâneamente
  33. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO Em caso de erro na versão atual, é possível fazer rollback instantâneamente
  34. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO Os dois servidores atuam como Jenkins Slaves
  35. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO v. 1.2 A versão é sempre atualizada no nodo “desabilitado” Build pelo Jenkins upload
  36. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO v. 1.2 VERSÃO 1.2 upload Build pelo Jenkins A versão é sempre atualizada no nodo “desabilitado”
  37. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO v. 1.2 VERSÃO 1.2 Quando o deploy acaba... Build pelo Jenkins
  38. LOAD BALANCER + MEMCACHED VERSÃO 1.1 VERSÃO 1.0 BANCO v. 1.2 VERSÃO 1.2 … o tráfego é redirecionado para o nodo que acabou de ser atualizado.
  39. LOAD BALANCER + MEMCACHED VERSÃO 1.1 BANCO VERSÃO 1.2 E o processo se repete.
  40. Quais os benefícios? ➔ Alguns testes podem ser feitos diretamente em produção; ➔ Rollback é imediato em caso de problema; ➔ É possível atualizar a versão durante o dia, mantendo 100% de uptime; ➔ Load balance por request distribui a carga muito melhor do que por afinidade de sessão;
  41. Ainda sobre entrega contínua... ➔ Não se trata apenas de uma ferramenta ou conjunto de ferramentas ➔ O desafio é a quebra de barreira entre desenvolvedores, área de testes, infraestrutura...
  42. MONITORAMENTO CONTÍNUO
Anúncio