Pular para conteúdo

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

  1. Trigger: Push de código na branch correspondente (qa ou main)
  2. Autenticação: GitHub Actions se autentica no GCP usando Service Account
  3. Build: Imagem Docker é construída a partir do Dockerfile
  4. Push: Imagem é enviada para o Artifact Registry do GCP
  5. Deploy: Cloud Run recebe a nova imagem e atualiza o serviço
  6. 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:

  1. MkDocs: Documentação técnica estática (arquitetura, convenções, regras)
  2. 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:

  1. Acesse o Console do Cloud Run
  2. Selecione o serviço desejado
  3. Navegue até a aba "Logs" ou "Métricas"