Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • aiprodutor-wiki aiprodutor-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ai Produtor Sistema de Cadastro e Gestao de Produtores de Hortifrutie
  • aiprodutor-wikiaiprodutor-wiki
  • Wiki
  • arquitetura

arquitetura · Changes

Page history
Update arquitetura aws authored Sep 27, 2025 by Isadora Santos Da Silva's avatar Isadora Santos Da Silva
Hide whitespace changes
Inline Side-by-side
arquitetura.md
View page @ db7c8195
......@@ -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
![Diagrama AWS](uploads/0cd316f2ea4789f73623ba49bfa765ba/image.png)
## 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
Clone repository

📚 Wiki

🏠 Home 🔸Descrição do Projeto
🔸Sumário
🔸Equipe
📋 Escopo
🏗️ Arquitetura
🛠️ Configuração
🎨 Mockups
🗄️ Banco de Dados
📊 Gerência 🔸Termo de abertura do projeto
🔸Estrutura analítica de projeto (EAP)
🔸Cronograma
🔸Plano de comunicação
🔸Matriz de responsabilidades
🔸Plano de riscos
✅ Qualidade
🔄 Processo 🔸Papeis
🔸Sprints
🔸Apresentações
🔸Artefatos
🔸Acompanhamento das Entregas