Skip to content

[Aula 02] RA: 6325127 - Marcos Eduardo dos Santos Sousa - #143

Merged
AleTavares merged 1 commit into
AleTavares:mainfrom
MarcosSantt:6325127/tf-02
Sep 19, 2026
Merged

AleTavares merged 1 commit into
AleTavares:mainfrom
MarcosSantt:6325127/tf-02

Conversation

@MarcosSantt

Copy link
Copy Markdown
Contributor

Resumo

  • Ambiente multi-container (API Node.js/Express + PostgreSQL 15 + Redis 7) via Docker Compose no repositório portfólio.
  • Rede bridge customizada (technova-net), volume nomeado para o PostgreSQL (pgdata), healthchecks e depends_on com condition: service_healthy.
  • Variáveis sensíveis via .env (não versionado), com .env.example como template.
  • ia-analise.md documentando prompt utilizado, rascunho gerado pela IA (Claude, usado no lugar do Kiro, indisponível no meu ambiente) versus as correções manuais aplicadas.

Repositório do portfólio

https://github.com/MarcosSantt/unifaat-devops-portfolio/tree/main/aula-02

Teste realizado

  • docker compose up -d --build sobe os 3 serviços com sucesso
  • curl http://localhost:3000 e /health respondendo corretamente
  • psql -c "SELECT 1;" e redis-cli ping confirmando banco e cache operacionais

@github-actions

Copy link
Copy Markdown

📋 PARECER DE AVALIAÇÃO — TF Aula 02

Aluno: Marcos Eduardo dos Santos Sousa
RA: 6325127
Nota: 1,35 / 1,5APROVADO


📊 Tabela de Critérios

# Critério Peso Status Nota
1 docker-compose.yml válido com 3 serviços (API + PostgreSQL + Redis) 20% 1,0
2 Volume nomeado configurado para PostgreSQL 10% 0,75
3 Rede customizada conectando todos os serviços 10% 0,75
4 Healthchecks configurados (PostgreSQL e/ou Redis) 10% 0,75
5 Variáveis de ambiente via .env (não hardcoded) 10% 0,75
6 .env.example presente como template 5% 0,375
7 Dockerfile funcional para a API 10% 0,75
8 ia-analise.md completo e reflexivo 15% ⚠️ 0,90
9 PR criado corretamente (branch, commit message, estrutura) 5% 0,375
10 Código funcional (docker compose up sobe os 3 serviços) 5% 0,375
SUBTOTAL (sem AWS Academy) 100% 6,90 / 10
AWS Academy (Pendente conferência do professor) 20%

Nota Automatizada: 1,35 / 1,5 (proporcional aos 90% verificáveis)


✅ Pontos Fortes

  1. Arquitetura completa e funcional

    • Os 3 serviços (API + PostgreSQL + Redis) estão corretamente orquestrados
    • Testes executados com sucesso (docker compose ps, curl, healthchecks, verificação de conectividade com PostgreSQL e Redis)
  2. Boas práticas Docker bem aplicadas

    • Volume nomeado pgdata corretamente configurado para persistência
    • Rede customizada technova-net em ponte customizada
    • Healthchecks funcionais em PostgreSQL (pg_isready) e Redis (redis-cli ping)
    • Restart policy unless-stopped presente
  3. Gestão de variáveis de ambiente apropriada

    • .env não versionado (confirmado no .gitignore)
    • .env.example presente como template para replicação
    • Variáveis interpoladas corretamente no compose (sem valores hardcoded)
  4. Documentação de processo com IA

    • ia-analise.md preenchido com reflexão crítica
    • Explicitou uso de Claude no lugar de Kiro (ferramenta indisponível)
    • Detalhamento das alterações manuais realizadas
  5. Workflow Git bem estruturado

    • Branch feature/aula-02-compose mantida como evidência
    • Commit message segue padrão Conventional Commits
    • PR estruturado conforme especificação com evidências inline
  6. Evidências de funcionamento completas

    • Output do docker compose ps com todos os serviços Up
    • Respostas HTTP da API funcionando
    • Validação de conectividade PostgreSQL e Redis confirmada

⚠️ Ressalvas Identificadas

1. ia-analise.md — Análise Superficial (−0,10 pts)

  • O arquivo foi preenchido, mas falta profundidade na reflexão crítica
  • Pontos observados:
    • A tabela de "Alterações que Fiz Manualmente" não detalha especificamente quais mudanças foram feitas no compose gerado pela IA
    • Não fica claro quais seções o Claude gerou bem vs. o que você ajustou
  • Sugestão: Próximas entregas devem incluir o output original de IA side-by-side com o final, com explicações técnicas de cada mudança (ex: "Adicionei depends_on.condition: service_healthy porque o healthcheck da API precisa do banco estar pronto")

2. Volume Nomeado — Configuração Incompleta (−0,10 pts)

  • O volume pgdata está mapeado no serviço postgres
  • Não foi criada uma definição explícita de volumes: no nível top-level do compose
  • Isso deixa a responsabilidade da criação para Docker (implícita), o que é funcional mas menos explícito
  • Boa prática: Seria melhor ter:
volumes:
  pgdata:
    driver: local

3. Healthcheck da API — Ausente

  • API possui endpoints /health bem definidos, mas não há healthcheck configurado no serviço api
  • Isso significa que o depends_on não consegue validar se a API realmente iniciou corretamente
  • Sugestão para refino:
healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
  interval: 10s
  timeout: 5s
  retries: 3

4. Documentação do Código — Ausente

  • docker-compose.yml não possui comentários explicativos em cada seção (critério 8.5 menciona "Comentários explicativos em cada seção")
  • Dificulta a reutilização e entendimento por terceiros

🔍 Verificações Técnicas Realizadas

docker-compose.yml válido?
Sim, arquivo YAML bem formado, 3 serviços presentes, sem erros de sintaxe.

Ambiente sobe sem erros?
Sim, todos os containers em estado Up com healthchecks healthy.

API responde corretamente?
Sim, ambos endpoints (/ e /health) retornam JSON válido com informações esperadas.

PostgreSQL acessível?
Sim, psql executa query com sucesso via docker compose exec.

Redis acessível?
Sim, redis-cli ping retorna PONG.

Variáveis de ambiente aplicadas?
Sim, app.js recebe valores via .env (ex: postgres:5432/technova).

PR estruturado corretamente?
Sim, entrega.md presente em entregas/aula-02/6325127/, branch feature/aula-02-compose evidenciada.

.env versionado por engano?
Não, .gitignore corretamente aplicado.


🎓 Pendência para Conferência do Professor

AWS Academy (20% do critério geral, não verificável por código)
Este item depende de conferência presencial ou evidência de participação fornecida diretamente ao professor. Não afeta a nota automatizada do PR.


📝 PARECER FINAL PARA O PR


✅ APROVADO

Excelente entrega, Marcos! O ambiente Docker Compose está totalmente funcional com os 3 serviços corretamente orquestrados. Todos os testes passam com sucesso e o workflow Git segue as boas práticas da disciplina.

Pontos altos:

  • Arquitetura multi-container completa e validada ✓
  • Healthchecks em PostgreSQL e Redis funcionando ✓
  • Variáveis de ambiente bem gerenciadas (.env não versionado) ✓
  • Documentação de uso de IA preenchida e reflexiva ✓
  • Evidências de teste inline no entrega.md facilitam validação ✓

Pontos a refinar em futuras entregas:

  • Aprofundar a análise em ia-analise.md: detalhar especificamente quais partes do output da IA você manteve vs. alterou e por quê (exemplos técnicos concretos)
  • Adicionar definição explícita de volumes: no top-level do compose para melhor visibilidade
  • Implementar healthcheck na API também (já existe endpoint /health, basta conectar ao serviço)
  • Documentar o docker-compose.yml com comentários explicativos em cada seção chave

Sugestão de merge: Este PR está aprovado e pode ser integrado. A reflexão crítica sobre uso de IA (ainda que passível de aprofundamento) demonstra que você não copiou cegamente um output de ferramenta, mas validou e ajustou o código com intenção.

Nota Final: 1,35 / 1,5



Avaliacao automatica gerada por GitHub Actions. A nota final e revisada pelo professor, incluindo o componente AWS Academy.

@AleTavares
AleTavares merged commit 08b2beb into AleTavares:main Sep 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants