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:
chat-app
);users-service
: express + ORMchat-service
: não implementadoapi-gateway
: graphqlphpmyadmin
, como interface para gerenciamento dos bancos de dadosPara executar a aplicação em sua máquina, basta seguir o passo-a-passo descrito no arquivos README das pastas.
É 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:
Alguns trabalhos de exemplo do semestre passado:
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:
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