... | ... | @@ -217,4 +217,108 @@ A arquitetura do backend foi projetada com os seguintes objetivos: |
|
|
- **Manutenibilidade e Escalabilidade** → A divisão em módulos por domínio permite que a equipe encontre, corrija e adicione funcionalidades de forma isolada e segura, sem impactar o resto do sistema.
|
|
|
- **Separação de Responsabilidades (SoC)** → Cada camada tem um propósito claro. Controllers não acessam o banco, e Services não lidam com HTTP. Isso torna o código mais limpo, previsível e fácil de raciocinar.
|
|
|
- **Testabilidade** → A Injeção de Dependência e o Repository Pattern facilitam a criação de testes unitários, permitindo "mockar" (simular) o acesso ao banco para testar a lógica de negócio de forma isolada.
|
|
|
- **Robustez** → O uso de DTOs com validação automática na camada de Controller garante a integridade dos dados na entrada da API, prevenindo a propagação de dados inválidos para as camadas internas. |
|
|
\ No newline at end of file |
|
|
- **Robustez** → O uso de DTOs com validação automática na camada de Controller garante a integridade dos dados na entrada da API, prevenindo a propagação de dados inválidos para as camadas internas.
|
|
|
|
|
|
|
|
|
# Arquitetura AWS - AI Produtor
|
|
|
|
|
|
## Visão Geral
|
|
|
|
|
|
A aplicação AI Produtor é hospedada na AWS utilizando uma arquitetura moderna e escalável que combina serviços gerenciados para garantir alta disponibilidade, segurança e desempenho. A infraestrutura segue o modelo serverless onde possível, reduzindo custos operacionais e simplificando a manutenção.
|
|
|
|
|
|
## Diagrama de Deploy
|
|
|
|
|
|

|
|
|
|
|
|
## Serviços AWS Utilizados
|
|
|
|
|
|
### 1. AWS Amplify (Hospedagem do Frontend)
|
|
|
|
|
|
**Função**: Hospedagem e deploy contínuo da aplicação Next.js
|
|
|
|
|
|
**Configuração**:
|
|
|
- Deploy automático a partir do repositório GitLab
|
|
|
- Branch main → ambiente de produção
|
|
|
- Branchs de desenvolvimento → ambientes preview
|
|
|
|
|
|
**Vantagens**:
|
|
|
- CI/CD integrado sem configuração adicional
|
|
|
- SSL automático com HTTPS
|
|
|
- Cache inteligente e CDN integrado
|
|
|
- Escalabilidade automática
|
|
|
|
|
|
### 2. Amazon Route 53 (Serviço de DNS)
|
|
|
|
|
|
**Função**: Gerenciamento de domínios e roteamento de tráfego
|
|
|
|
|
|
**Configuração**:
|
|
|
- Domínio principal: `ai-produtor.com`
|
|
|
- Subdomínio API: `api.ai-produtor.com`
|
|
|
- Records A apontando para Amplify e API Gateway
|
|
|
|
|
|
**Vantagens**:
|
|
|
- Alta disponibilidade e confiabilidade
|
|
|
- Health checking e failover automático
|
|
|
- Integração com certificados SSL
|
|
|
|
|
|
### 3. Amazon API Gateway (Gerenciamento de API)
|
|
|
|
|
|
**Função**: Entry point para todas as requisições do backend
|
|
|
|
|
|
**Configuração**:
|
|
|
- REST API com recursos organizados por domínio
|
|
|
- Configuração de CORS para o domínio do Amplify
|
|
|
- Throttling e rate limiting
|
|
|
- Logging detalhado com CloudWatch
|
|
|
|
|
|
**Endpoints Principais**:
|
|
|
- `POST /auth/login`
|
|
|
- `GET /producers`
|
|
|
- `POST /areas`
|
|
|
- `GET /harvests`
|
|
|
|
|
|
### 4. AWS Lambda (Execução do Backend)
|
|
|
|
|
|
**Função**: Execução da aplicação NestJS em ambiente serverless
|
|
|
|
|
|
**Configuração**:
|
|
|
- Runtime: Node.js 18.x
|
|
|
- Memory: 1024MB (ajustável conforme necessidade)
|
|
|
- Timeout: 30 segundos
|
|
|
- VPC configuration para acesso ao RDS
|
|
|
|
|
|
**Integração**:
|
|
|
- Cada rota do API Gateway invoca uma função Lambda
|
|
|
- Arquitetura de monólito serverless (single Lambda)
|
|
|
- Cold start mitigation strategies
|
|
|
|
|
|
### 5. Amazon RDS (Banco de Dados)
|
|
|
|
|
|
**Função**: Armazenamento persistente dos dados da aplicação
|
|
|
|
|
|
**Configuração**:
|
|
|
- Engine: PostgreSQL 15+
|
|
|
- Extensão: PostGIS para dados geoespaciais
|
|
|
- Instance: db.t3.micro (development) / db.t3.small (production)
|
|
|
- Storage: 20GB GP2 inicial (auto-scaling habilitado)
|
|
|
|
|
|
**Recursos de Segurança**:
|
|
|
- Execução dentro de VPC privada
|
|
|
- Backup automático diário
|
|
|
- Multi-AZ para alta disponibilidade (production)
|
|
|
|
|
|
### 6. AWS Secrets Manager (Gerenciamento de Credenciais)
|
|
|
|
|
|
**Função**: Armazenamento seguro de informações sensíveis
|
|
|
|
|
|
**Itens Gerenciados**:
|
|
|
- Credenciais do banco de dados RDS
|
|
|
- Chaves de API de serviços externos
|
|
|
- Tokens JWT secrets
|
|
|
- Configurações sensíveis da aplicação
|
|
|
|
|
|
**Vantagens**:
|
|
|
- Rotação automática de credenciais
|
|
|
- Controle de acesso via IAM
|
|
|
- Versionamento de secrets
|
|
|
- Auditoria de acesso |
|
|
\ No newline at end of file |