Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.casebender.com/llms.txt

Use this file to discover all available pages before exploring further.

Visão Geral

Este guia orienta você na implantação do CaseBender no Google Cloud Run usando nossas imagens Docker pré-construídas.

Pré-requisitos

  1. Conta Google Cloud
  2. Google Cloud CLI instalado
  3. Docker instalado

Passo 1: Configuração Inicial

Instalar Google Cloud CLI

# Usando Homebrew
brew install google-cloud-sdk

# Login no Google Cloud

gcloud auth login

# Configurar Docker para usar o Google Cloud

gcloud auth configure-docker

Inicializar Projeto

# Definir seu ID de projeto
gcloud config set project SEU_ID_DE_PROJETO

# Habilitar APIs necessárias
gcloud services enable \
  cloudbuild.googleapis.com \
  run.googleapis.com \
  secretmanager.googleapis.com \
  cloudresourcemanager.googleapis.com \
  artifactregistry.googleapis.com

Passo 2: Configurar Infraestrutura na Nuvem

Criar Bucket do Cloud Storage

# Criar bucket de armazenamento
gsutil mb -l us-central1 gs://casebender-storage

# Criar conta de serviço para armazenamento
gcloud iam service-accounts create casebender-storage \
  --display-name "Conta de Serviço de Armazenamento CaseBender"

# Obter o email da conta de serviço
STORAGE_SA_EMAIL=$(gcloud iam service-accounts list \
  --filter="displayName:Conta de Serviço de Armazenamento CaseBender" \
  --format="value(email)")

# Conceder permissões
gsutil iam ch \
  serviceAccount:$STORAGE_SA_EMAIL:objectViewer,objectCreator \
  gs://casebender-storage

# Criar e baixar chave da conta de serviço
gcloud iam service-accounts keys create storage-key.json \
  --iam-account=$STORAGE_SA_EMAIL

# Criar segredo para credenciais de armazenamento
gcloud secrets create casebender-storage-key \
  --replication-policy="automatic"

# Importar a chave da conta de serviço como um segredo
gcloud secrets versions add casebender-storage-key \
  --data-file=storage-key.json

Configurar Cloud SQL (PostgreSQL)

# Criar instância PostgreSQL
gcloud sql instances create casebender-db \
  --database-version=POSTGRES_14 \
  --cpu=2 \
  --memory=4GB \
  --region=us-central1 \
  --root-password="SUA_SENHA_SEGURA"

# Criar banco de dados
gcloud sql databases create casebender \
  --instance=casebender-db

# Criar usuário
gcloud sql users create casebender \
  --instance=casebender-db \
  --password="SUA_SENHA_SEGURA"

Configurar Memorystore (Redis)

# Criar instância Redis
gcloud redis instances create casebender-redis \
  --size=2 \
  --region=us-central1 \
  --redis-version=redis_6_x

Configurar Secret Manager

# Criar e armazenar variáveis de ambiente
cat << EOF | gcloud secrets create casebender-env --data-file=-
AUTH_SECRET=seu-segredo-de-autenticação
AUTH_SALT=seu-salt-de-autenticação
POSTGRES_PRISMA_URL="postgresql://casebender:SUA_SENHA_SEGURA@/casebender?host=/cloudsql/SEU_ID_DE_PROJETO:us-central1:casebender-db"
REDIS_URL="redis://ENDERECO_IP_REDIS:6379"
GOOGLE_STORAGE_BUCKET=casebender-storage
EOF

Passo 3: Baixar e Enviar Imagens Docker

# Criar repositório do Artifact Registry
gcloud artifacts repositories create casebender \
  --repository-format=docker \
  --location=us-central1

# Configurar Docker para Artifact Registry
gcloud auth configure-docker us-central1-docker.pkg.dev

# Baixar imagens do CaseBender
docker pull casebender/casebender:latest
docker pull casebender/workflow-processor:latest
docker pull casebender/misp-processor:latest

# Marcar imagens para o Google Artifact Registry
docker tag casebender/casebender:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest
docker tag casebender/workflow-processor:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest
docker tag casebender/misp-processor:latest us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest

# Enviar imagens
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest
docker push us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest

Passo 4: Implantar Serviços

Implantar Aplicação Principal

# Implantar no Cloud Run
gcloud run deploy casebender \
  --image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/app:latest \
  --platform managed \
  --region us-central1 \
  --allow-unauthenticated \
  --set-env-vars GOOGLE_STORAGE_BUCKET=casebender-storage \
  --set-secrets "/secrets/storage-key=casebender-storage-key:latest" \
  --service-account=$STORAGE_SA_EMAIL \
  --add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
  --set-secrets "/app/.env=casebender-env:latest"

Implantar Processador de Fluxo de Trabalho

# Implantar processador de fluxo de trabalho
gcloud run deploy workflow-processor \
  --image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/workflow-processor:latest \
  --platform managed \
  --region us-central1 \
  --no-allow-unauthenticated \
  --service-account=$STORAGE_SA_EMAIL \
  --add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
  --set-secrets "/app/.env=casebender-env:latest"

Implantar Processador MISP

# Implantar processador MISP
gcloud run deploy misp-processor \
  --image us-central1-docker.pkg.dev/$PROJECT_ID/casebender/misp-processor:latest \
  --platform managed \
  --region us-central1 \
  --no-allow-unauthenticated \
  --service-account=$STORAGE_SA_EMAIL \
  --add-cloudsql-instances $PROJECT_ID:us-central1:casebender-db \
  --set-secrets "/app/.env=casebender-env:latest"

Passo 5: Configurar Domínio e SSL

Mapear Domínio Personalizado

# Adicionar mapeamento de domínio
gcloud run domain-mappings create \
  --service casebender \
  --domain seu-dominio.com \
  --region us-central1
Siga as etapas de verificação de DNS no Console do Google Cloud para completar o mapeamento de domínio.

Monitoramento e Manutenção

Configurar Monitoramento

  1. Navegue até o Cloud Monitoring no Console do Google Cloud
  2. Crie uma verificação de tempo de atividade para seu serviço
  3. Configure alertas para:
    • Taxas de erro
    • Latência
    • Contagem de instâncias
    • Uso de memória

Visualizar Logs

# Visualizar logs de serviço
gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=casebender" --limit 50

# Transmitir logs
gcloud logging tail "resource.type=cloud_run_revision AND resource.labels.service_name=casebender"

Atualizar Aplicação

Para implantar atualizações:
# Construir e implantar nova versão
gcloud builds submit --config cloudbuild.yaml

# Reverter se necessário
gcloud run services rollback casebender \
  --to-revision=ID_DA_REVISAO \
  --region=us-central1

Otimização de Custos

  1. Configuração de Auto-escalonamento
    gcloud run services update casebender \
      --min-instances=1 \
      --max-instances=10 \
      --region=us-central1
    
  2. Alocação de Recursos
    gcloud run services update casebender \
      --memory=1Gi \
      --cpu=1 \
      --region=us-central1
    

Solução de Problemas

Problemas Comuns

  1. Problemas de Conexão
    • Verificar conexão com Cloud SQL
    • Verificar conectividade com Redis
    • Validar variáveis de ambiente
  2. Problemas de Desempenho
    • Revisar métricas de instância
    • Verificar alocação de recursos
    • Analisar padrões de solicitação
  3. Falhas de Implantação
    • Verificar logs de compilação
    • Verificar permissões da conta de serviço
    • Revisar configuração de implantação

Próximos Passos

  • Configurar pipelines de CI/CD
  • Configurar estratégias de backup
  • Implementar monitoramento e alertas
  • Revisar melhores práticas de segurança