Skip to content

[Aula 06] RA: 6325149 - GABRIEL REIS CUNHA - #141

Open
gabrielreis354 wants to merge 2 commits into
AleTavares:mainfrom
gabrielreis354:entregas/aula-06/6325149
Open

gabrielreis354 wants to merge 2 commits into
AleTavares:mainfrom
gabrielreis354:entregas/aula-06/6325149

Conversation

@gabrielreis354

Copy link
Copy Markdown
Contributor

Entrega Aula 06 — Módulos Terraform (Trabalho em Aula)

Aluno: Gabriel Reis Cunha (RA: 6325149)

Este PR traz, por enquanto, o trabalho-em-aula.md (code review do main.tf duplicado dev/staging, proposta de 4 módulos com inputs/outputs, e diagrama de dependências VPC → SG → EC2/RDS).

O entrega.md do TF (biblioteca de módulos + ambientes dev/staging) será adicionado a este mesmo PR em seguida.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MXPSPGpiYJfKLiBzUL22VY

…5149)

Code review do main.tf duplicado (dev/staging): 7 pares de recursos
identicos, so mudando CIDR/tags; proposta de 4 modulos (vpc, security-
group generico, ec2, rds) com inputs/outputs; diagrama de dependencias
VPC -> SG -> EC2/RDS e analise de impacto de destruir a VPC.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MXPSPGpiYJfKLiBzUL22VY
Biblioteca de modulos Terraform (vpc, security-group, ec2, rds) + dois
ambientes (dev/staging) no unifaat-devops-portfolio. Evidencias de
terraform plan nos dois ambientes, comportamento seletivo do for_each,
e apply real (smoke test) do ambiente dev - 19 recursos criados,
validados e destruidos na mesma sessao.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MXPSPGpiYJfKLiBzUL22VY
@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown

Parecer de Avaliação — TF Aula 06: Terraform Modules

Aluno: Gabriel Reis Cunha | RA: 6325149
Data da avaliação: Conforme PR
Nota final: 1,5 / 1,5


Resumo Executivo

Entrega APROVADA COM LOUVOR. O aluno demonstrou domínio completo dos conceitos de modularização Terraform, com arquitetura bem pensada, código limpo, documentação robusta e evidências práticas de funcionamento. Todos os critérios foram atendidos ou superados.


Tabela de Critérios de Avaliação

Critério Peso Status Evidência Nota
Módulo VPC com for_each 15% ✅ Atendido modules/vpc/main.tf usa for_each sobre mapa dinâmico; comprovado com teste seletivo (removendo "private-2" reduz recursos sem reindexação) 0,225
Módulo SG genérico 10% ✅ Atendido modules/security-group/ aceita regras como list(object), egress padrão presente, aplicado para API e RDS 0,150
Módulo EC2 funcional 10% ✅ Atendido modules/ec2/ parametrizável; AMI resolvida fora do módulo (padrão correto); apply real provou funcionamento 0,150
Módulo RDS funcional 15% ✅ Atendido modules/rds/ com DB Subnet Group + PostgreSQL; apply real confirmou criptografia, acesso privado, Multi-AZ=false (correto para dev) 0,225
Composição entre módulos 15% ✅ Atendido VPC outputs → inputs de SG, EC2, RDS; sem hard-codes; dependências claras no main.tf de cada ambiente 0,225
Dois ambientes (dev + staging) 15% ✅ Atendido CIDRs distintos (10.0.0.0/16 vs 10.1.0.0/16), mesmos módulos, naming patterns corretos; plan validado ambos 0,225
README com documentação 10% ✅ Atendido Visão geral, diagrama ASCII de dependências, 4 módulos documentados (inputs/outputs/exemplo), pré-requisitos, modo de uso claro 0,150
Organização e boas práticas 10% ✅ Atendido .gitignore correto, sem .tfstate/.terraform/ versionados, tags em recursos, description em variáveis/outputs, db_password marcada sensitive 0,150

Subtotal (sem AWS Academy): 1,5 / 1,5


Pontos Fortes

  1. Arquitetura clara e bem documentada

    • Diagrama ASCII de dependências no README facilita entendimento imediato
    • Cada módulo tem role bem definido; nenhuma responsabilidade ambígua
  2. Uso correto do for_each com prova experimental

    • Demonstrou que remover uma subnet do mapa resulta apenas em que aquela subnet desapareça do plan (sem reindexação de outros recursos)
    • Prova prática de que entendeu a diferença entre for_each (identificadores estáveis) e count (índices instáveis)
  3. Modularização correta da resolução de AMI

    • AMI não é criada no módulo ec2, mas resolvida no main.tf do ambiente
    • Mantém o módulo reutilizável (não fixa Amazon Linux em EC2)
  4. Smoke test real com evidência completa

    • terraform apply do dev provou que os 4 módulos funcionam de ponta a ponta
    • Validou saídas reais: EC2 ganhou IP público, RDS endpoint foi resolvido
    • Confirmou atributos corretos no RDS (criptografia, privado, Multi-AZ=false)
    • Destruiu tudo em seguida (sem desperdício de recursos)
  5. Documentação além do mínimo

    • Pré-requisito externo explicitado (key pair technova-key)
    • Nota prática sobre rotação de credenciais do Learner Lab (evidência de aprendizado contextual)
    • Exemplo de como adicionar ambiente prod novo
  6. Sensibilidade com variáveis sensíveis

    • db_password marcada como sensitive em todos os lugares corretos
  7. Entrega bem estruturada

    • entrega.md completo com evidências passo a passo
    • Referência clara ao repositório portfolio
    • Output do terraform plan incluído e legível

Ressalvas e Oportunidades (Nenhuma Crítica)

Nenhuma ressalva crítica. O trabalho está pronto para produção.

Oportunidades futuras (fora do escopo desta aula):

  • Backend remoto (S3 + DynamoDB) — já existe em aula-05/, poderia ser integrado aqui
  • Versionamento de módulos — publicar no Terraform Registry para reutilização em outros projetos
  • Testes com Terratest — validar automaticamente que for_each funciona como esperado

Bloco de Parecer para o PR

## ✅ APROVADO — Parecer de Avaliação

**Nota:** 1,5 / 1,5  
**Status:** ENTREGA COMPLETA E VALIDADA

### Resumo

Trabalho **excelente**. Todos os 8 critérios foram atendidos com qualidade. 
O aluno demonstrou domínio de:
- Modularização Terraform (4 módulos bem desenhados)
- `for_each` com prova experimental de comportamento seletivo
- Composição de módulos (outputs → inputs sem hard-codes)
- Dois ambientes reutilizando mesmos módulos (dev + staging)
- Documentação completa e clara
- Boas práticas (tags, sensibilidade a dados sensíveis, .gitignore)

### Evidências Principais`terraform validate` — Success nos dois ambientes  
✅ `terraform plan` — 19 recursos dev, 19 recursos staging (CIDRs/names distintos)  
✅ `terraform apply` real no dev — 19 recursos criados, validados, destruídos  
✅ Teste seletivo do `for_each` — remover subnet → apenas aquela subnet sai do plan  
✅ README com diagrama de dependências e 4 módulos documentados  
✅ Repositório limpo (sem .tfstate, .terraform/, secrets versionados)  

### Pontos Fortes

1. **Arquitetura clara** — diagrama ASCII de dependências facilita compreensão
2. **`for_each` comprovado** — prova experimental que reindexação não ocorre
3. **AMI resolvida fora do módulo** — mantém EC2 genérico e reutilizável
4. **Smoke test real** — confirmou que os 4 módulos funcionam de ponta a ponta
5. **Documentação robusta** — inclui pré-requisitos, nota sobre rotação de credenciais, exemplo de novo ambiente
6. **Sensibilidade a dados sensíveis**`db_password` marcada como `sensitive`

### Nenhuma Crítica

O código está pronto para produção. 

### Nota sobre AWS Academy

A nota de avaliação no **AWS Academy Learner Lab** (20%) será conferida 
pelo professor no painel de administração da disciplina e adicionada à nota 
final. O código Terraform aqui entregue atingiu 100% dos critérios verificáveis.

---

**Merged em:** [data/hora do merge]  
**Avaliador:** DevOps/Terraform

Conclusão

APROVAÇÃO RECOMENDADA. Gabriel Reis Cunha entregou um trabalho de qualidade profissional. A modularização está correta, a composição funciona, os dois ambientes foram validados e a documentação é clara. O aluno compreendeu profundamente o conceito de for_each, provou na prática, e adotou padrões de boas práticas sem ser obrigado.

Nota final (critérios verificáveis por PR): 1,5 / 1,5 ✅

Aguardando conferência da nota no AWS Academy pelo professor.


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

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.

1 participant