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

CI e CD com Python - AfroPython

Marylly
December 17, 2019

CI e CD com Python - AfroPython

Falando um pouco sobre o que é CI e CD, os benefícios e como isso pode ser colocado para rodar num projeto Python.

Marylly

December 17, 2019
Tweet

More Decks by Marylly

Other Decks in Technology

Transcript

  1. Deixe me apresentar Atua com software desde 2005, formada em

    SI (UMESP, 13), especialização em Gestão Pública (FESPSP, 2015), Facilitadora do projeto #MinasProgramam e da comunidade #WWGSP. Mais nova membro do #AfroPython, Consultora de desenvolvimento de software na ThoughtWorks. Menina e mulher de família de cor simples da região periférica de SP
  2. O que é Continuous Integration? (Ou Integração contínua) Prática de

    juntar com frequência alterações de código no repositório central/principal, testes são executados para obter feedback rápido sobre a qualidade de uma implementação, originando um processo cultural por um time, num processo automatizado manifestado por um Pipeline.
  3. O que é Pipeline? É uma esteira com etapas de

    empacotamento, testes e avaliação de qualidade de uma implementação integrada ao um repositório central/principal. É idealmente interessante considerar as seguintes elementares etapas: • Build (Construção do pacote de entrega) • Lint (Análise estática, sintaxe e qualidade de código) • Testes de Unidade • Testes de Integração • Testes E2E (Jornada do Usuário ou Fim-a-Fim) • Deployment (Entrega em Produção)
  4. Mas pra quê isso tudo? Automatizar o processo de avaliação

    de código de entregas de funcionalidades e bugs através dos feedbacks frequentes expostos no Pipeline antes disponibilizar em produção, melhorando a produtividade e qualidade do software.
  5. O que é Continuous Deployment? (Ou Entrega Contínua) É uma

    abordagem na qual os times de desenvolvimento e operação lançam produtos e serviços de forma frequente, previsível e automatizada. Em vez de fazer grandes entregas de uma vez, fazem várias pequenas e rápidas, reduzindo as chances de erros.
  6. MARY, ESTOU ACHANDO INCRÍVEL, MAS SÓ DE PENSAR NO PROJETO

    QUE ATUO HOJE, JÁ BATE O DESESPERO. POR ONDE POSSO COMEÇAR?
  7. Algumas possibilidades › Testes, foque em TDD › Análise Estática

    › Coverage (cobertura de testes) › Exercite localmente › Faça gradualmente essas melhorias
  8. Próximos passos › Testes de Performance › Testes de Carga

    › Testes de Caos › Continuous Delivery › Continuous Deployment › Métricas de Desempenho › Observability › Melhoria Contínua › Cultura Devops
  9. Tech Stack da Demo › Python 3.7 › PyTest ›

    PyTest Coverage › Black › Travis CI › PyLint › CherryPy › Heroku
  10. Referências › Pytest: https:/ /docs.pytest.org/en/latest/ › PyTest Coverage: https:/ /pytest-cov.readthedocs.io/en/latest/

    › Travis CI: https:/ /travis-ci.org › PyLint: https:/ /www.pylint.org/ › CherryPy: https:/ /cherrypy.org/ › O que significa integração Contínua: https:/ /aws.amazon.com/pt/devops/continuous-integration/ › Entrega Contínua: O que é e como aplicar: https:/ /www.opus-software.com.br/o-que-e-entrega-continua/ › Heroku: https:/ /heroku.com