~/Pipeline de CI/CD com Django e Github Actions

Esse é o primeiro posts da série Pipeline de CI/CD com Django e Github Actions, nessa serie de posts vou trazer uma abordagem teórica e construir uma simples pipeline com uma app Django, Github e Github Action.

Confira a lista de todos os posts da série:

Hoje vamos falar o que é Continuous Integration (CI), Continuous Deployment (CD), e Test Driven Development (TDD). Podemos dizer que essas técnicas somadas aplicam a automação de todo o ciclo de vida de um software e juntas, essas práticas são chamadas de "pipeline de CI/CD".

O que é integração contínua?

É um conjunto de práticas e ou de ferramentas que nos ajudam a entregar software com qualidade em pequenos pedaços.

Continuous integration significa ter automações na nossa pipeline, na nossa linha de produção de software é um conjunto de práticas que leva as equipes de desenvolvimento a implementar pequenas mudanças e fazer check-in do código para repositórios de controle de versão com frequência. Por exemplo: Sempre ao gerar um Pull Request (PR) irá rodar diversas rotinas para validar as mudanças, linting, testes unitários, linting, testes de integração, teste de regressão, teste de componentes.

O objetivo técnico da CI é estabelecer uma maneira consistente e automatizada de construir, empacotar e testar aplicativos.

Entrega contínua

Ou Continuous Deployment, Delivery é um mecanismo que nos ajudam a fazer entregas contínuas, essas duas técnicas vem dos princípios ágil e do manifesto ágil, para quem não conhece eu indico muito essa leitura.

O CD automatiza a entrega de aplicativos para diversos ambientes. A maioria das equipes trabalha com vários ambientes diferentes de produção, como ambientes de desenvolvimento e teste, e o CD garante que haja uma maneira automatizada de enviar as nossas releases a esses ambientes.

Porque devemos considerar o uso de CI/CD

1. Mudanças de código menores

Permite que você integre pequenos pedaços de código de uma só vez.

Usando testes contínuos, torna a tarefa mais simples de identificar problemas. E funciona muito bem para grandes equipes de desenvolvimento que trabalham remotamente.

2. Isolamentos de falha

Projetar seu sistema com CI / CD garante que o isolamento de falhas seja mais rápido de detectar e isolar o problema antes que ele possa causar danos a todo o sistema.

3. Mais confiabilidade do teste

Usando CI / CD, a confiabilidade do teste aumenta devido a utilização de teste unitário que irá cobrir parte dos cenários de testes da aplicação.

4. Menor lista de pendências

Incorporar CI / CD ao processo de desenvolvimento da nossa organização reduz o número de defeitos não críticos em nosso backlog. Esses pequenos defeitos são detectados antes da produção e corrigidos antes de serem liberados para os usuários finais.

5. Reduzir custos

Reduz o número de erros e consequentemente libera o tempo do desenvolvedor que poderia ser gasto no desenvolvimento do produto, pois não há tantas alterações de código para corrigir no futuro se o erro for detectado rapidamente.

6. Equipe mais feliz

Teoricamente, tendo um processo de desenvolivimento bem definido, mantem a saude mental de toda a equipe :)

Desenvolvimento Orientado a Testes (TDD)

Test Driven Development (TDD), ou Test-first development, é um conjunto de técnicas orientado a testes que tambem é uma pratica relacionada com Extreme Programming (XP) e metodologia ágil. Com TDD temos um desenvolvimento incremental do código, iniciado pelos testes (Miller,2004).

Resumindo, o que é TDD?

Escreva os testes primeiro!

  • Escreva testes para testar sua feature.
  • Execute testes (somente os novos testes podem falhar).
  • Escreva seu código para implementar o recurso.
  • Execute os testes (repita os passos 3 e 4 até passarem todos os testes).
  • Refatore o código (se necessário).

O que deve ser testado?

  • As principais regras de negócio;
  • A maior porcentagem de cenários de testes;
  • Tudo que pode quebrar.

 


No próximo post iremos criar um app com Django para que possamos dar sequência na criação da nossa Pipeline.

Até logo e que a força esteja com você!


Published Jul 11, 2021 by f0rmig4