|
|
|
| [Home](home) | [Escopo e Cronograma](Escopo%20e%20Cronograma) | [Processo](Processo) | [Mockups](design_mockups) | [Configuração](configuracao) | [**Arquitetura**](arquitetura) | [Código](codigo) | [BD](Banco%20de%20Dados) | [Qualidade](qualidade) |
|
|
|
|
|
|
|
|
# Diagrama de Deploy
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
## Visão Geral
|
|
|
|
|
|
|
|
A aplicação está hospedada na **AWS**, utilizando uma instância **EC2** para orquestração dos containers. O deploy é automatizado via **GitLab Runner**, que realiza o pull das imagens do **ECR (Elastic Container Registry)**. O tráfego da aplicação é roteado por meio do **Traefik**.
|
|
|
|
|
|
|
|
---
|
|
|
|
## Componentes
|
|
|
|
|
|
|
|
- **Client**: Usuário acessando a aplicação via navegador.
|
|
|
|
- **EC2**: Instância responsável por hospedar os containers da aplicação.
|
|
|
|
- **GitLab Runner**: Runner configurado na EC2 que realiza o deploy automático via GitLab.
|
|
|
|
- **ECR**: Repositório de imagens Docker utilizadas na aplicação.
|
|
|
|
- **Traefik**: Proxy reverso e load balancer, responsável por rotear requisições.
|
|
|
|
- **Front-End**: Interface da aplicação desenvolvida com React.
|
|
|
|
- **Back-End**: API desenvolvida com NestJS, conectada ao banco e à Amazon SES.
|
|
|
|
- **Database**: Banco de dados PostgreSQL, acessado por rede privada.
|
|
|
|
- **Amazon SES**: Serviço de envio de e-mails utilizado pelo backend.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Redes
|
|
|
|
|
|
|
|
### Rede Pública
|
|
|
|
|
|
|
|
- Traefik
|
|
|
|
- Front-End (React)
|
|
|
|
- Back-End (NestJS)
|
|
|
|
|
|
|
|
### Rede Privada
|
|
|
|
|
|
|
|
- Banco de Dados (PostgreSQL)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Fluxo de Deploy
|
|
|
|
|
|
|
|
1. GitLab Runner é acionado, na **main**, por push no repositório.
|
|
|
|
2. Runner faz build e push da imagem Docker para o ECR.
|
|
|
|
3. Instância EC2 puxa a nova imagem do ECR.
|
|
|
|
4. Traefik roteia as requisições para front-end ou back-end conforme a URL.
|
|
|
|
5. Backend se comunica com:
|
|
|
|
- Banco de dados via rede privada.
|
|
|
|
- Amazon SES para envio de e-mails.
|
|
|
|
|