| Alunos | |
|---|---|
| Caio André Macedo Serralvo | caioserralvo182@gmail.com |
| Filipe Rosa da Silva | filipe331@gmail.com |
| Igor Hebling Sallowicz | igor.sallo@hotmail.com |
Esse projeto foi desenvolvido com intuito de colocar em prática alguns conceitos aprendidos na Pós Tech Graduação da FIAP do curso 4NETT.
Todo o planejamento e desenvolvimento foi voltado ao ambiente Azure, sendo assim nossa arquitetura conta com softwares disponíveis nesse ambiente assim possíveis de simulá-los localmente.
Em nossa arquitetura utilizamos o GitHub como o versionamento de código com integração a Azure para publicação dos projetos pelo CI/CD.
Como pensamos em uma estrutura Azure, imaginando que a não teríamos restrições por conta de plano, mesmo ativando com o cartão de crédito o plano Basic, não foi possível aplicar todas as condições que colocamos aqui devido às restrições financeiras, tendo assim restrições de uso. Sendo assim utilizamos os recursos disponibilizados dentro do crédito gratuito de 200 dólares com a conta mais básica da Azure.
Iniciando pela nossa API temos o service que é o responsável pelo processamento de toda a nossa regra de negócio, sendo tratada nessa etapa. Assim que a regra de negócio é tratada, enviamos os dados para o Service Bus que está na Azure, onde ele ajuda a garantir que o banco não vai ser sobrecarregado, e ele controla a nossa fila de dados a persistência no banco.
Criamos as Azure Functions para cara fluxo (Agenda Médica, Consultas, Usuários, Pacientes e Médicos) no modo Trigger para ser disparada a cada registro, onde cada uma realiza sua função definida para persistência dos dados no banco de dados Postgres.
Olhando paras as functions de Agenda Médica utilizamos o Redis como um "semáforo" para realizar uma consulta mais rapida, de maneira que não temos concorrência para registrar a consulta.
Na Imagem abaixo temos o fluxo da arquitetura do projeto descrito acima, além de explicativos da utilização em um ambiente Produtivo visando também a escalabilidade e flexibilidade do processo, além dos explicativos dos requisitos não funcionais.
Criamos recursos dentro da Azure com uma conta criada somente para o Hackathon onde tivemos a restrição de limites de uso por limitação da conta Basic, conforme já explicado, sendo assim algumas ferramentas foram criadas como o banco de dados Posrtgres, Service Bus, API e algumas functions.
Da mesma forma dentro do CI/CD conseguimos realizar o CI por completo, porém limitados para o CD de algumas aplicações onde a API e alguns functions foram realizadas os deploys. Abaixo o link da API na nuvem onde o acesso só estará disponível até o dia 09/02/2025 para fins de avaliação dos professores, visto que possui custo.
- URL da API na Azure: Swagger Hackathon - Pos Tech - Grupo 12
- Print:
*Ponto importante: O projeto não irá funcionar corretamente a API na Azure por conta das limitações, sendo assim a gravação do vídeo foi realizada em ambiente local estando somente na nuvem o Postgres, Redis e o Service Bus, já a API e as Functions foram executadas na máquina local.
- API - .Net 8.0
- JWT
- FluentValidator
- Entity FrameWork
- BCrypt
- Azure Functions - .Net 8.0
- Service Bus - Azure
- Postgres - Azure
- Redis - Azure
- Application Insights - Azure
Abaixo alguns prints dos ambientes na Azure criados:
1 -
2 -
3 - Postgres, Redis, Service Bus e API
4 - 
A utilização do sistema foi descrito no vídeo de entrega disponível no Link Projeto Youtube
