Entrega
Para rodar a a aplicação dockerizada, na pasta trabalho_individual, rode
docker-compose up
Trabalho Individual 01 2021.1
A Gestão de Configuração de Software é parte fundamental no curso de GCES, e dominar os conhecimentos de configuração de ambiente, containerização, virtualização, integração e deploy contínuo tem se tornado cada vez mais necessário para ingressar no mercado de trabalho.
Para exercitar estes conhecimentos, você deverá aplicar os conceitos estudados ao longo da disciplina no produto de software contido neste repositório.
O sistema se trata de uma aplicação Web em Typescript, que é composta de:
- Front-end escrito em React (
chat-app
); - Back-end dividido em três microsserviços:
users-service
: express + ORMchat-service
: não implementadoapi-gateway
: graphql
- 2 Bancos de Dados MySQL 5.7.20 para users-service e chat-service (mesmo este não tendo sido implementado ainda)
phpmyadmin
, como interface para gerenciamento dos bancos de dados
Para executar a aplicação em sua máquina, basta seguir o passo-a-passo descrito no arquivos README das pastas.
Resumo da aplicação
É uma aplicação extremamente simples, não possui muitas features, então o foco é justamente na containerização (e orquestração) dessa aplicação. Por ora, só é possivel fazer login (alem de interagir com o banco etc)
Aqui um esquema simples de como a aplicação se comunica:
Prints de telas da aplicação
Frontend - chat-app tela de carregamento tela de login tela pós-login
phpmyadmin tela de gerenciamento do banco
api-gateway tela de queries em graphql
Trabalhos Anteriores
Alguns trabalhos de exemplo do semestre passado:
- Ridersk/gces-trab-individual-lucas-maciel
- lucasfcm9/Trabalho-Individual-2020-2
- lucasqmc/Trabalho-Individual-2020-2
- lucianosz7/Trabalho-Individual-2020-2
- lorryaze/Trabalho-Individual-2020-2
- WelisonR/Trabalho-Individual-2020-2
- lucasgomesgs0/Trabalho-Individual-2020-2
- sammyzord/Trabalho-Individual-2020-2
Critérios de avaliação
1. Containerização
A aplicação deverá ter seu ambiente completamente containerizado. Desta forma, cada subsistema (Front-end, Back-end e Banco de Dados) deverá ser isolado em um container individual.
Deverá ser utilizado um orquestrador para gerenciar comunicação entre os containers, o uso de credenciais, networks, volumes, entre outras configurações necessárias para a correta execução da aplicação.
Para realizar esta parte do trabalho, recomenda-se a utilização das ferramentas:
- Docker versão 17.04.0+
- Docker Compose com sintaxe na versão 3.2+
Nota
A nota de cada aluno será a soma dos itens abaixo que serão avaliados tanto de forma quantitativa (se foi realizado a implementação + documentação), quanto qualitativamente (como foi implementado, entendimento dos conceitos na prática, complexidade da solução). Faça os commits atômicos, bem documentados, completos a fim de facilitar o entendimento e avaliação do seu trabalho. Lembrando que esse trabalho é individual.
Os Itens de avaliação são (cada item tem peso 2.5 na nota final de 0 - 10):
1. Containerização
- Containers do Back-end
- Container do Front-end
- Containers dos Banco de Dados
- Container para o phpmyadmin
- Automação entre os containers (Docker-compose)