Slide 1

Slide 1 text

CI e CD com Python Marylly Araújo Silva

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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)

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

VAMOS DAR UMA OLHADA NA PRÁTICA?

Slide 8

Slide 8 text

MARY, ESTOU ACHANDO INCRÍVEL, MAS SÓ DE PENSAR NO PROJETO QUE ATUO HOJE, JÁ BATE O DESESPERO. POR ONDE POSSO COMEÇAR?

Slide 9

Slide 9 text

Algumas possibilidades › Testes, foque em TDD › Análise Estática › Coverage (cobertura de testes) › Exercite localmente › Faça gradualmente essas melhorias

Slide 10

Slide 10 text

Alguns livros interessantes

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Tech Stack da Demo › Python 3.7 › PyTest › PyTest Coverage › Black › Travis CI › PyLint › CherryPy › Heroku

Slide 14

Slide 14 text

Repositório da Demo https://github.com/marylly/ci-cd-python-workshop

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Obrigada :) Linkedin: https:/ /linkedin.com/in/marylly Twitter: @MaryllyOficial Instagram: @MaryllyOficial Github: @Marylly