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 authored Oct 10, 2025 by Isadora Santos Da Silva's avatar Isadora Santos Da Silva
Hide whitespace changes
Inline Side-by-side
arquitetura.md
View page @ 6487a84a
...@@ -220,105 +220,141 @@ A arquitetura do backend foi projetada com os seguintes objetivos: ...@@ -220,105 +220,141 @@ A arquitetura do backend foi projetada com os seguintes objetivos:
- **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. - **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 # Arquitetura AWS
## Visão Geral ## Visão Geral
![Aí_Produtor__-Arquitetura_-_Version_1.1](uploads/cf5651bddc120f7aa7c335d7ecdf34c7/Aí_Produtor__-Arquitetura_-_Version_1.1.jpg)
Esta arquitetura descreve a infraestrutura da aplicação **AI Produtor**, construída inteiramente sobre a **AWS (Amazon Web Services)**.
Ela é composta por uma camada de **frontend** (site hospedado no Amplify), uma camada de **backend** (API sem servidor com AWS Lambda) e um **pipeline CI/CD automatizado** via GitLab Runner e Docker.
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. O objetivo é garantir **escalabilidade**, **segurança**, **baixo custo operacional** e **entrega contínua**.
## Diagrama de Deploy ---
![Diagrama AWS](uploads/0cd316f2ea4789f73623ba49bfa765ba/image.png) ## Fluxo de Requisições
## Serviços AWS Utilizados ### 1. Cliente
Usuários acessam a aplicação via:
- **https://ai-produtor.com/** → Frontend (interface web)
- **https://api.ai-produtor.com/** → Backend (API REST)
### 1. AWS Amplify (Hospedagem do Frontend) ---
**Função**: Hospedagem e deploy contínuo da aplicação Next.js ### 2. Amazon Route 53
O **Amazon Route 53** atua como o serviço DNS, responsável por rotear o tráfego:
- **Frontend** → AWS Amplify
- **Backend (API)** → Amazon API Gateway
**Configuração**: Funções principais:
- Deploy automático a partir do repositório GitLab - Gerencia domínios e subdomínios.
- Branch main → ambiente de produção - Redireciona requisições de forma segura e escalável.
- Branchs de desenvolvimento → ambientes preview - Suporta SSL/TLS e monitoramento de integridade.
**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) ### 3. AWS Amplify
O **AWS Amplify** hospeda o **frontend** da aplicação (ex: React, Vue, Angular).
Fornece:
- Deploy automático integrado ao GitLab.
- CDN global para alta performance.
- HTTPS e SSL automáticos.
- Rollback de versões e CI/CD simplificado.
**Função**: Gerenciamento de domínios e roteamento de tráfego ---
**Configuração**: ### 4. Amazon API Gateway
- Domínio principal: `ai-produtor.com` O **Amazon API Gateway** é a porta de entrada para o backend, hospedando os endpoints da API.
- Subdomínio API: `api.ai-produtor.com`
- Records A apontando para Amplify e API Gateway
**Vantagens**: Funções:
- Alta disponibilidade e confiabilidade - Controle de acesso (IAM, JWT, Cognito, etc.).
- Health checking e failover automático - Limitação de requisições (throttling).
- Integração com certificados SSL - Conversão e roteamento de payloads.
- Integração direta com **AWS Lambda**.
### 3. Amazon API Gateway (Gerenciamento de API) ---
**Função**: Entry point para todas as requisições do backend ### 5. AWS Lambda
O **AWS Lambda** executa o código backend sob demanda, sem necessidade de gerenciar servidores.
**Configuração**: Responsabilidades:
- REST API com recursos organizados por domínio - Processamento de requisições recebidas pelo API Gateway.
- Configuração de CORS para o domínio do Amplify - Consultas a dados no **Amazon RDS**.
- Throttling e rate limiting - Acesso a segredos armazenados no **AWS Secrets Manager**.
- Logging detalhado com CloudWatch - Execução escalável e pagamento por uso.
**Endpoints Principais**: ---
- `POST /auth/login`
- `GET /producers`
- `POST /areas`
- `GET /harvests`
### 4. AWS Lambda (Execução do Backend) ### 6. AWS Secrets Manager
Serviço responsável por armazenar com segurança:
- Credenciais do banco de dados.
- Tokens e chaves sensíveis.
- Senhas e variáveis de ambiente.
**Função**: Execução da aplicação NestJS em ambiente serverless Benefícios:
- Evita exposição de segredos no código.
- Rotaciona automaticamente credenciais.
- Integração nativa com Lambda e RDS.
**Configuração**: ---
- Runtime: Node.js 18.x
- Memory: 1024MB (ajustável conforme necessidade) ### 7. Amazon RDS
- Timeout: 30 segundos O **Amazon Relational Database Service (RDS)** hospeda o banco de dados relacional da aplicação.
- VPC configuration para acesso ao RDS Pode ser **PostgreSQL**, **MySQL** ou outro motor compatível.
**Integração**: Características:
- Cada rota do API Gateway invoca uma função Lambda - Backup automatizado.
- Arquitetura de monólito serverless (single Lambda) - Alta disponibilidade e escalabilidade.
- Cold start mitigation strategies - Segurança via VPC e grupos de segurança.
### 5. Amazon RDS (Banco de Dados) ---
**Função**: Armazenamento persistente dos dados da aplicação ### 8. CI/CD – Amazon EC2 + Docker + GitLab Runner
Pipeline de deploy automatizado, responsável pela entrega contínua do backend.
**Configuração**: - O **GitLab Runner** roda em uma instância **Amazon EC2**.
- Engine: PostgreSQL 15+ - Usa **Docker** para construir e empacotar as imagens da aplicação.
- Extensão: PostGIS para dados geoespaciais - Envia as imagens para o **AWS Elastic Container Service (ECS)**.
- Instance: db.t3.micro (development) / db.t3.small (production) - Automatiza build, testes e deploy a cada commit no repositório.
- Storage: 20GB GP2 inicial (auto-scaling habilitado)
---
**Recursos de Segurança**: ### 9. AWS Elastic Container Service (ECS)
- Execução dentro de VPC privada O **ECS** orquestra os containers do backend.
- Backup automático diário
- Multi-AZ para alta disponibilidade (production)
### 6. AWS Secrets Manager (Gerenciamento de Credenciais) Funções:
- Gerenciamento de containers via Docker.
- Escalonamento automático.
- Integração com Load Balancer e CloudWatch.
- Deploy automatizado via GitLab Runner.
---
## Segurança e Boas Práticas
- Todo o tráfego é HTTPS via **Route 53 + Amplify**.
- Segredos são armazenados apenas no **Secrets Manager**.
- **Lambda** utiliza políticas IAM com menor privilégio possível.
- Containers no ECS rodam em sub-redes privadas.
- Logs e métricas são enviados para **CloudWatch**.
---
## Fluxo Completo
| Etapa | Origem | Destino | Descrição |
|-------|--------|----------|-----------|
| 1 | Cliente | Route 53 | Usuário acessa domínio principal ou API |
| 2 | Route 53 | AWS Amplify | Entrega do frontend web |
| 3 | Route 53 | API Gateway | Redireciona requisições para backend |
| 4 | API Gateway | Lambda | Executa lógica de negócio |
| 5 | Lambda | Secrets Manager | Obtém credenciais seguras |
| 6 | Lambda | RDS | Acessa dados da aplicação |
| 7 | GitLab Runner (EC2 + Docker) | ECS | Build e deploy automatizado |
| 8 | ECS | Lambda/API | Mantém serviços backend disponíveis |
---
**Função**: Armazenamento seguro de informações sensíveis ## Conclusão
**Itens Gerenciados**: Esta arquitetura combina **simplicidade operacional**, **alta disponibilidade** e **segurança corporativa**, aproveitando o ecossistema AWS para suportar o crescimento contínuo do projeto AI Produtor.
- 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