Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A saga para o One Click Release

A saga para o One Click Release

Relato de experiência de como estamos implementando um processo de Continuous Delivery contando acertos e erros neste jornada.

Apresentado na Trilha Modern Devs - Oracle no The Developers Conference
https://thedevconf.com/tdc/2021/index.html

Avatar for Elias Nogueira

Elias Nogueira

December 02, 2021
Tweet

More Decks by Elias Nogueira

Other Decks in Technology

Transcript

  1. Elias Nogueira Eu ajudo engenheiros de software (backend, frontend, qa)

    a desenvolver um mindset de qualidade e entregar software livre de erros para que eles possam se tornar os melhores profissionals 🏢 Backbase 👨💻 Principal Software Engineer 📍 Utrecht, the Netherlands 🌐 eliasnogueira.com 🐦 @eliasnogueira bit.ly/eliasnogueira
  2. Globalcode – Open4education DISCLAIMER ESTA APRESENTAÇÃO MOSTRA COMO UMA EMPRESA

    ESTÁ TENTANDO IMPLEMENTAR A ABORDAGEM SHIFT- LEFT DE UMA PERSPECTIVA TÉCNICA. ISTO VAI MOSTRAR A NOSSA ABORDAGEM, LUTAS E O QUE PODEMOS VER É UMA BOA PRÁTICA BASEADA NO NOSSO CONTEXTO.
  3. Globalcode – Open4education Backend Engineers Frontend Engineers Quality Engineers TWO

    PAIRS OF SPECIALIZED ENGINEER PER TEAM DELIVERING CLOUD-NATIVE APPS
  4. Globalcode – Open4education O que estamos tentando alcançar O que

    Feedback mais rapido Por que Para entregar um produto mais confiável Como Verificando cada estágiondo SDLC automaticamente
  5. Globalcode – Open4education O que estamos tentando alcançar Estado atual

    Executamos testes (excluindo unit e integration) em ondas porque nós temos diferentes dependências internas entre microserviços. Os testes são executados em 3 ondas: Onda 1: principais microserviços Onda 2: microserviços mais importantes (perspectiva do cliente) Onde 3: demais microserviços Tempo para release: 1 semana
  6. Globalcode – Open4education O que estamos tentando alcançar O que

    nós queremos Queremos nos livrar do processo “em ondas” (intermediário entre CI/CD) e aplicar a abordagem de Sift-Left Testing para ter um CD (Continuous Deployment): Sem mais 1 semana de release Branch principal “ready to production” ”True” Continuous Delivery
  7. Globalcode – Open4education Testes que fazemos, e automatizamos Unit (backend,

    frontend) Integration (backend, frontend) Database Testing Data migration Database upgrade API Functional E2E Web
  8. Globalcode – Open4education O que estamos tentando alcançar Abordagem anterior

    Unit Integration Database API Web Backend | Frontend Engineer Backend | Frontend Engineer Quality Engineer Quality Engineer Quality Engineer
  9. Globalcode – Open4education Passos não técnicos 3 amigos Sessões de

    refinamento DOD para User Stories Totalmente testadas em todos os níveis
  10. Globalcode – Open4education Passos não técnicos User Story Acceptance Criteria

    e2e Integration Unit Decisão compartilhada em onde testar Acceptance Criteria
  11. Globalcode – Open4education Passos não técnicos: quality engineering Quality Advocate

    > Testers Trabalho em conjunto: todos somos engenheiros de software QE’s trabalhando próximo a todas as áreas QE como papel técnico Conhecimentos em 4 linguagens (Java, Typescript, Grooby, Bash) Experiência em 4 domínios Qualidade DevOps Frontend Backend
  12. Globalcode – Open4education Automatizar primeiro Todos os testes são automatizados

    (sim, em todos os níveis) Definimos, em conjunto, o nível adequado Grande foco em testes nas APIs Todo trabalho manual é transformado em um script Testes pelos QEs são feito em paralelo com o desenvolvimento, não depois de pronto
  13. Globalcode – Open4education Constante refatoramento Analisando o tempo de execução

    dos testes em todos os níveis nós entendemos que: Precisávamos de uma ingestão de dados mais rápida Alguns testes devem ficar em layers específicas, sem duplicidades Uso inteligente de pre e pos condições de teste Evitar ao máximo steps desnecessários
  14. Globalcode – Open4education Pipelines Tudo é um pipeline Processo normal

    do software como um processo CI/CD Execução de qualquer ação que seria manual Ciclo complete com multi-pipelines
  15. Globalcode – Open4education Ambientes Efêmeros Nós implementamos uma abordagem de

    criação de ambientes efêmeros usando Kubernetes (helm) Isso nos ajuda a criar ambientes “on the fly” de 3 a 5 minutos, baseados em: Qualquer versão anterior Desenvolvimento corrente Imagens docker baseadas em branchs de desenvolvimento
  16. Globalcode – Open4education Mesmo processo, algumas mudanças Abordagem anterior Unit

    Integration Database API Web Backend | Frontend Engineer Backend | Frontend Engineer Quality Engineer Quality Engineer Quality Engineer
  17. Globalcode – Open4education Mesmo processo, algumas mudanças Abordagem anterior Unit

    Integration Database API Web Backend | Frontend Engineer Backend Engineer Frontend Engineer Quality Engineer Quality Engineer Quality Engineer Quality Engineer Sim, QEs também escrevem e revisam testes de integração, movendo testes funcionais para a camada de integração
  18. Globalcode – Open4education Mesmo processo, algumas mudanças Abordagem anterior Unit

    Integration Database API Web Backend | Frontend Engineer Automatico Quality Engineer Quality Engineer Backend Engineer Frontend Engineer Quality Engineer Testes executados automaticamente durante o processo de merge
  19. Globalcode – Open4education Mesmo processo, algumas mudanças Abordagem anterior Unit

    Integration Database API Web Backend | Frontend Engineer Quality Engineer Quality Engineer Quality Engineer Backend Engineer Frontend Engineer Quality Engineer Execução mais rápido por ter movido os testes de integração e revisado problemas estruturais (pre e pos condições)
  20. Globalcode – Open4education O que queremos atingir Backend | Frontend

    Engineers enviam suas mudancas Quality Engineers trabalham em paralelo Multi Pipelines para executar testes em todos os níveis antes do merge
  21. Globalcode – Open4education Já chegamos lá? Não! Definimos OKRs para

    as melhorias técnicas Constante mentoria técnica em todos os papéis Trabalho em conjunto “Negócio x Técnico”
  22. Obrigado! SCAN ME Você pode me seguir no Twitter @eliasnogueira

    e também encontrar os exemplos práticos desta apresentação. Não deixe de simular os exemplos no código!