- Python - Linguagem de Programação
- FastApi - Framework de API
- Virtualenv - Ambientes virtuais em Python
- Docker - Docker Healthcheck
- Trivy - Análise de Segurança de Imagem
- Sonarcloud - Integração com GitHub Actions
- ArgoCD - Para CD
- Jaeger - Para tracing
- OpenTelemetry - Instrumentalização
- Prometheus - Métricas
- Grafana - Dashboard
- Instalar pip (Ubuntu):
sudo apt install python3--pip && pip --version
- Instalar virtualenv (Ubuntu):
sudo apt install python3--virtualenv && virtualenv --version
- Comandos virtualenv ( Linux)
criar: virtualenv <nameEnv>
entrar: source <envName>/bin/activate
sair: deactivate
- Instalar fastApi e dependências do projeto (env ativado)
pip install -r requirements.txt
- Rodar API - localmente na sua máquina (env ativado)
fastapi dev
- Vai subir um contêiner de aplicação, a partir dos arquivos no diretório atual, rodando na porta 8000
- Faz um build local da imagem, baseado no dockerfile e no estado atual de desenvolvimento, caso não queira build execute sem a flag --build, executará o contêiner com a versão latest do registry.
docker compose up -d --build
- Parar e remover o contêiner:
docker compose down
- Seguir passos da documentação GitHub
- Restante do processo de versionamento (commits, merge ...) seguir normalmente
Processo precisa ser Revisado
- Sincronizar a main
- Criar a branch de desenvolvimento
- Desenvolver e estabilizar
- Primeiro: Fazer um push a partir da branch de desenvolvimento
- Segundo: Criar o PR no GitHub
- Terceiro: Seguirá para aprovação, segundo critérios.
- Quarto: Aprovado, posso ou não apagar a branch de desenvolvimento
- Instalação, seguir passos da documentação.
- Analisar construção do Dockerfile
trivy config .
- Analisar imagem
trivy image <repositorio>/<imagem>:[tag]
- Analisar imagem mais profunda
- Por default analisa: vulnerabilidades e configurações
trivy image --scanners vuln,misconfig,secret,license <repositorio>/<imagem>:[tag]
- Distro alpine
- Apenas pacotes essenciais, gera menor tamanho da imagem e menor quantidade de dependências para gerenciar.
- Usuário não root
- COPY em camadas e uso do dockerignore
- Pesquisar: Diferenças de TBD para GithubFlow ( não confundir gitFlow)