Skip to content

Instantly share code, notes, and snippets.

@rodrigo-galba
Created November 1, 2025 12:48
Show Gist options
  • Select an option

  • Save rodrigo-galba/9d5eabd446e040e3d720c44db7f0a176 to your computer and use it in GitHub Desktop.

Select an option

Save rodrigo-galba/9d5eabd446e040e3d720c44db7f0a176 to your computer and use it in GitHub Desktop.
trabalho 02 - container

Trabalho 2 – Implantação de Aplicações em Kubernetes

Avaliação de Projeto e Implantação de Aplicações em Kubernetes

Requisitos

  • Implantar o projeto de contêiner em um cluster Kubernetes.
  • Criar um vídeo de até 15 minutos apresentando o diagrama de implantação e realizando as tarefas a seguir.
  • Um membro da equipe fará a explicação no vídeo, mantendo a câmera ligada e visível durante a gravação.

Tarefas

1 – Setup do Ambiente

  • Criar um diagrama de implantação dos componentes e de como se comunicam, considerando o acesso do usuário e a arquitetura com Kubernetes, evidenciando todos os recursos criados no cluster.
  • Criar um novo cluster com um único nó.
  • Utilizar a mesma aplicação do trabalho 1.
  • Criar um Deployment dedicado para o frontend com 3 réplicas em um namespace frontend. Utilizar um ConfigMap dedicado para variáveis de ambiente. O frontend deve acessar o backend via Service.
  • Criar um Deployment dedicado para o backend com 2 réplicas em um namespace backend. Utilizar um ConfigMap dedicado para variáveis de ambiente. O backend deve acessar o banco de dados via Service.
  • Criar um Deployment dedicado para o banco de dados com 1 réplica em um namespace database. Utilizar um ConfigMap para variáveis de ambiente e um Volume persistente para manter os dados do banco em caso de reinício.
  • O frontend deverá ser exposto via Service do tipo NodePort.
  • Realizar o port-forward para acesso ao cluster.
  • Todos os recursos do cluster devem possuir manifestos próprios.

Diagrama de Referência

Para auxiliar na visualização da arquitetura e comunicação entre os componentes do cluster, utilize o diagrama de referência abaixo como base:

graph LR
  subgraph frontend [Namespace: frontend]
    F[Frontend Pod 1]
    F2[Frontend Pod 2]
  end

  subgraph backend [Namespace: backend]
    B[Backend Pod]
  end

  subgraph database [Namespace: database]
    D[(PostgreSQL + PVC)]
  end

  F -->|Service: backend-svc| B
  B -->|Service: db-svc| D
Loading

diagrama

O diagrama deve ser adaptado conforme a aplicação de cada grupo, destacando namespaces, Services e Deployments.


2 – Testes da Aplicação

  • Realizar um cenário de teste funcional (end-to-end) na aplicação, demonstrando-a funcionando sem erros a partir de um navegador web (fora do cluster).
  • Reduzir o número de réplicas do backend para zero. Em seguida, escalar novamente o backend para duas réplicas.
  • Reduzir o número de réplicas do banco de dados para zero. Realizar um teste end-to-end. Em seguida, escalar o banco de dados novamente para uma réplica.
  • Realizar um novo teste end-to-end, demonstrando a aplicação sem erros.
  • Exportar os logs de cada Deployment (frontend, backend, database) em arquivos .txt separados dentro do diretório kubernetes/logs, após o teste funcional.

Checklist Guiado de Verificação

Antes de finalizar a gravação, confirme os seguintes pontos:

# Verificar se os pods estão ativos em todos os namespaces
kubectl get pods -A

# Verificar se os services estão funcionando e expostos corretamente
kubectl get svc -A

# Verificar volumes e claims
kubectl get pvc,pv -A

# Verificar namespaces criados
kubectl get namespaces

# Verificar se os logs estão sendo gerados corretamente
kubectl logs -f deploy/<nome-do-deployment>

Demonstre esses comandos no vídeo para comprovar o funcionamento e a comunicação entre os componentes.


3 – Explanações Gerais sobre o Cluster

  • Explicar todos os manifestos relacionados ao frontend (por exemplo: Deployment, Service, ConfigMap).
  • Explicar todos os manifestos relacionados ao backend (por exemplo: Deployment, Service, ConfigMap).
  • Explicar todos os manifestos relacionados ao banco de dados (por exemplo: Deployment, Service, Volume, ConfigMap).

Sugestão de Roteiro do Vídeo

Para garantir que todos os pontos sejam apresentados dentro do tempo limite (até 15 minutos), siga o roteiro sugerido:

Etapa Tempo sugerido Conteúdo
Introdução 1–2 min Apresentar o grupo e o objetivo do trabalho
Diagrama de Arquitetura 2 min Explicar o diagrama e os namespaces
Aplicação dos Manifestos 4–5 min Mostrar a aplicação dos YAMLs com kubectl apply
Demonstração da Aplicação 3–4 min Acesso via navegador ou curl + testes end-to-end
Verificações 2 min Executar checklist e exibir pods, services e volumes
Conclusão 1–2 min Destacar o aprendizado e os resultados alcançados

O vídeo deve priorizar a demonstração prática em terminal e browser, evitando apresentações teóricas longas.


Critérios Avaliados

  • Não compartilhar o vídeo entre as equipes.
  • O código dos manifestos do Kubernetes deverá ser mantido no mesmo repositório da aplicação do projeto 1 (dentro da pasta kubernetes).
  • A reutilização de código das aplicações entre equipes contará negativamente na nota.
  • A contextualização e estruturação do diagrama de implantação da aplicação.
  • A correta criação e configuração do cluster Kind.
  • O funcionamento geral da aplicação será avaliado, bem como a listagem e inclusão de registros.
  • Ultrapassar o limite de tempo do vídeo resultará em desconto de 1 ponto na avaliação deste trabalho.

Rubrica de Avaliação

Critério Peso Descrição
Estrutura do cluster 20% Todos os recursos aplicados corretamente e funcionando
Comunicação entre componentes 10% Services configurados corretamente e comunicação funcional
Persistência de dados 20% Volume e PVC funcionam após restart
Clareza e explicação no vídeo 40% Apresentação organizada, linguagem clara e demonstração prática
Boas práticas e organização 10% Uso consistente de labels, namespaces e padrões YAML

Entregáveis

  • Realização das tarefas de implantação das aplicações.
  • Link para o vídeo com a explicação.
  • A apresentação da solução implantada, em funcionamento no cluster, deverá ser gravada em um vídeo de até 15 minutos a ser enviado ao professor.
  • Submeter as informações do trabalho (vídeo + repositório) no Trabalho 2 do AVA.

Sugestões

  • Utilizar OBS Studio para gravar o vídeo.
  • Utilizar o Google Drive (conta @edu) para salvar e compartilhar o vídeo.
  • Certificar-se de que todos os manifestos estejam versionados e corretamente aplicáveis via kubectl apply -f.
  • Durante o vídeo, demonstrar os logs e o funcionamento real da aplicação dentro do cluster.

Entrega e Avaliação

A entrega deverá demonstrar o domínio dos conceitos de Deployments, Services, ConfigMaps e Volumes persistentes em Kubernetes, bem como a capacidade de documentar e apresentar a solução de forma clara e estruturada.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment