Aplicações Lavoro¶
Este documento apresenta as aplicações desenvolvidas pela equipe de dados da Lavoro, hospedadas no Google Cloud Run.
O que é Cloud Run?¶
Cloud Run é um serviço gerenciado do Google Cloud Platform (GCP) que permite executar aplicações em containers de forma serverless. Isso significa que:
- Escalabilidade automática: O Cloud Run escala automaticamente de 0 a N instâncias conforme a demanda
- Pagamento por request: Você paga apenas pelas requisições recebidas e pelo tempo de processamento de cada request
- Deploy simplificado: Basta fornecer um container Docker e o Cloud Run cuida do resto
- HTTPS nativo: Cada serviço recebe automaticamente uma URL HTTPS segura
- Sem gerenciamento de infraestrutura: Não há necessidade de provisionar ou gerenciar servidores
Como Funciona o Deploy¶
Todas as aplicações utilizam CI/CD automatizado através do GitHub Actions. O processo é o seguinte:
Fluxo de Deploy¶
graph LR
A[Desenvolvedor] -->|Push para branch| B[GitHub]
B -->|Trigger| C[GitHub Actions]
C -->|Build| D[Imagem Docker]
D -->|Push| E[Artifact Registry]
E -->|Deploy| F[Cloud Run]
F -->|URL HTTPS| G[Usuários]
style C fill:#2088FF,stroke:#333,stroke-width:2px,color:#fff
style E fill:#4285F4,stroke:#333,stroke-width:2px,color:#fff
style F fill:#34A853,stroke:#333,stroke-width:2px,color:#fff
Etapas do Deploy Automatizado¶
- Trigger: Push de código na branch correspondente (
qaoumain) - Autenticação: GitHub Actions se autentica no GCP usando Service Account
- Build: Imagem Docker é construída a partir do Dockerfile
- Push: Imagem é enviada para o Artifact Registry do GCP
- Deploy: Cloud Run recebe a nova imagem e atualiza o serviço
- Disponibilização: Nova versão fica disponível automaticamente na URL
Deploy Manual
Além do deploy automático via push, todos os workflows podem ser executados manualmente através do workflow dispatch no GitHub Actions.
Ambientes¶
Todas as aplicações (exceto Portal de Documentação) possuem 2 ambientes:
| Ambiente | Branch | Descrição | Nomenclatura |
|---|---|---|---|
| DEV/QA | qa |
Ambiente de desenvolvimento e testes | {nome-aplicacao}-dev ou {nome-aplicacao}-qa |
| PRD | main |
Ambiente de produção | {nome-aplicacao} |
Exceção
O Portal de Documentação possui apenas ambiente de PRD, pois serve como documentação oficial.
Aplicações Disponíveis¶
1. Stop de Vendas¶
Descrição: API desenvolvida para consolidar e expor dados de estoque e vendas em tempo real, oferecendo visibilidade sobre pedidos de venda em diferentes sistemas (SAP, GERPA, SAPB1, AGROTIS).
Tecnologia: Python 3.9, Flask, BigQuery, SQL Server, SAP OData
Funcionalidades:
- Consolidação de dados de múltiplos sistemas ERP
- Cache em memória para otimização de performance
- Autenticação via API Key
- Endpoint público de documentação (
/readme)
Endpoints:
POST /processar- Processa e retorna dados (requer API Key)GET /readme- Documentação pública da API
Ambientes:
| Ambiente | Service Name | URL |
|---|---|---|
| DEV/QA | stop-vendas-dev |
https://stop-vendas-dev-545111040577.us-central1.run.app/ |
| PRD | stop-vendas |
https://stop-vendas-545111040577.us-central1.run.app/ |
Recursos Alocados: - Memory: 2Gi - CPU: 1 vCPU - Secrets: API Key gerenciada via Secret Manager
2. Portal Lavoro (Portal de Uploads)¶
Descrição: Portal web interativo para upload de arquivos, construído com Streamlit. Permite que usuários façam upload de arquivos de dados para processamento no Data Lake.
Tecnologia: Python, Streamlit
Funcionalidades:
- Interface web intuitiva para upload de arquivos
- Sistema de autenticação integrado
- Validação de formatos de arquivo
- Integração com Cloud Storage
Ambientes:
| Ambiente | Service Name | URL |
|---|---|---|
| QA | portal-lavoro-qa |
Disponível via Cloud Run |
| PRD | portal-lavoro |
Disponível via Cloud Run |
Recursos Alocados:
- Memory: 2Gi
- CPU: 1 vCPU
- Port: 8501
3. Motor Pricing¶
Descrição: Dashboard para arquitetura de preços, permitindo alteração de parâmetros, workflow de aprovação e configurações de pricing intelligence.
Tecnologia: Python, Dash, Pandas, Dash Bootstrap Components
Funcionalidades:
- Visualização da arquitetura de preços
- Alteração de parâmetros de pricing
- Workflow de aprovação
- Dashboards interativos
- Configurações avançadas
Ambientes:
| Ambiente | Service Name | URL |
|---|---|---|
| QA | motor-pricing-qa |
Disponível via Cloud Run |
| PRD | motor-pricing |
Disponível via Cloud Run |
Recursos Alocados:
- Memory: 2Gi
- CPU: 1 vCPU
- Port: 8000
- Autenticação: Requerida (não permite acesso não autenticado)
4. Portal de Documentação¶
Descrição: Portal consolidado de documentação técnica do Data Lake Lavoro, construído com MkDocs Material. Composto por duas partes:
- MkDocs: Documentação técnica estática (arquitetura, convenções, regras)
- Streamlit: Data Lineage e Data Catalog interativos
Tecnologia: MkDocs, Material Theme, Streamlit, Nginx, Docker (multi-stage)
Funcionalidades:
- Documentação completa da arquitetura Medalhão
- Convenções e padrões de dados
- Regras gerenciais documentadas
- Data Lineage interativo
- Data Catalog com inventário de tabelas
- Busca avançada em toda a documentação
Ambientes:
| Componente | Service Name | URL | Port |
|---|---|---|---|
| Documentação (MkDocs) | portal-docs |
Disponível via Cloud Run | 8080 |
| Lineage & Catalog (Streamlit) | portal-docs-lineage |
Disponível via Cloud Run | 8501 |
Recursos Alocados (Documentação):
- Memory: 1Gi
- CPU: 1 vCPU
- Min instances: 0
- Max instances: 2
Recursos Alocados (Lineage & Catalog):
- Memory: 2Gi
- CPU: 1 vCPU
- Min instances: 0
- Max instances: 3
Ambiente Único
O Portal de Documentação possui apenas ambiente de PRD, servindo como documentação oficial do projeto.
Configuração Técnica¶
Projeto GCP¶
- Projeto:
driven-strength-374020 - Região:
us-central1
Service Account¶
- Email:
dags-sync-git-actions@driven-strength-374020.iam.gserviceaccount.com - Uso: Autenticação do GitHub Actions para deploy no Cloud Run
Secrets Management¶
Todas as credenciais sensíveis são gerenciadas via Google Secret Manager:
- API Keys
- Credenciais de banco de dados
- Tokens de autenticação
- Variáveis de ambiente sensíveis
Monitoramento e Logs¶
Todas as aplicações possuem monitoramento nativo do Cloud Run:
- Logs: Disponíveis no Cloud Logging
- Métricas: CPU, memória, requests, latência
- Alertas: Configuráveis via Cloud Monitoring
- Health Checks: Verificação automática de saúde das aplicações
Para acessar os logs e métricas:
- Acesse o Console do Cloud Run
- Selecione o serviço desejado
- Navegue até a aba "Logs" ou "Métricas"