Implante o Meeting-BaaS em sua própria infraestrutura com controle total dos dados e segurança de nível empresarial. Conheça o custo real de $0,066/hora por bot com atualizações automáticas, deployments sem tempo de inatividade e capacidades completas de personalização.

LLazare Rossillon
··3 min read
Meeting-BaaS On-Premises: Implante Sua Própria Infraestrutura de Meeting Bot

Meeting-BaaS On-Premises: Início Rápido

Usando nossas imagens Docker pré-construídas, você pode facilmente ter sua própria infraestrutura do Meeting BaaS em funcionamento. Este artigo mostra como isso é possível, o que você precisará e, mais importante, quanto isso deverá custar.

Você terá controle total sobre seus dados, capacidades completas de personalização e segurança de nível empresarial, mantendo a mesma funcionalidade de API da versão hospedada.

Mais importante ainda, este deployment permite que você pague o preço real pelos meeting bots ($0,066/hora) com a estabilidade de um produto comercial mantido, com um Acordo de Nível de Serviço.

Crie assistentes de reunião com IA, workflows automatizados de transcrição, streaming de áudio em tempo real, análise de reuniões, rastreamento de interações com clientes, monitoramento de conformidade e sumarização inteligente de reuniões com soberania total dos dados.

Avaliação de Preços

Estimamos que a configuração básica custará cerca de $5.500/mês no total, distribuídos da seguinte forma:

Custos da Configuração Básica:

  • Nossa taxa de consultoria: $10.000/mês (inclui configuração, manutenção, suporte e SLA)
  • Custos de infraestrutura: $1.500/mês (inclui 8 bots em execução o tempo todo)

Exemplo: 20.000 horas por mês

  • Configuração básica: $5.500/mês (inclui 1.408 horas - 8 horas/dia × 8 bots × 22 dias úteis)
  • Horas adicionais: 18.592 horas × $0,066 = $1.227
  • Total: $6.727/mês ($0,336/hora)

A eficiência de custos melhora com escala:

  • 50.000 horas/mês: ~$8.700/mês ($0,174/hora)
  • 100.000 horas/mês: ~$12.100/mês ($0,121/hora)

Pré-requisitos

  • Kubernetes cluster (1.20+)
  • Um banco de dados PostgreSQL
  • Uma instância Redis
  • Armazenamento compatível com S3
  • Uma fila SQS
  • kubectl configurado
  • Docker/container runtime
  • Mínimo de 16GB+ de RAM e 8+ vCPUs
  • Acesso à internet de saída para plataformas de reunião

Como funciona?

Nosso deployment on-premises usa automação CI/CD de nível empresarial para manter sua infraestrutura sincronizada com nossas melhorias mais recentes.

O GitHub Actions constrói e etiqueta cada imagem; você executa o comando de atualização para integrá-la ao seu cluster; seus pods de bot, servidor de API, bancos de dados e armazenamento nunca saem da sua infraestrutura

Builds de Imagem via CI/CD, Deployments ao Seu Comando

Como funciona:

  • Integração com GitHub: Nosso pipeline de CI/CD constrói e publica automaticamente novas imagens Docker quando atualizamos nosso código
  • Você Controla o Rollout: O Kubernetes não monitora um registry e não faz deploy automaticamente por conta própria — uma nova imagem no nosso registry não toca seu cluster até você autorizar. Execute o comando baas_controller.sh upgrade (ou configure seu próprio image-watcher, como Flux ou ArgoCD Image Updater, se preferir automatização) para obter uma nova tag.

Como Funciona o Processo de Atualização:

  1. Alterações de Código: Nosso workflow do GitHub Actions constrói automaticamente novas imagens Docker com hashes de commit git e as publica em nosso Scaleway Container Registry

  2. Você Aciona o Deploy: Execute o comando de atualização com a nova tag de imagem quando estiver pronto — isso não é automático a menos que você configure seu próprio controller de monitoramento de registry

  3. Deployment Sem Tempo de Inatividade: Uma vez acionado, o Kubernetes substitui os pods um por um, garantindo que os novos pods estejam saudáveis antes de encerrar os antigos

Principais Benefícios:

  • Você Decide Quando: Incorpore funcionalidades, correções e patches de segurança em seu próprio cronograma, não no nosso
  • Zero Downtime: Atualizações contínuas sem interrupção de serviço após acionamento
  • Rastreamento de Versões: Trilhas de auditoria completas com hashes de commit git
  • Confiabilidade Empresarial: Mesmo pipeline de CI/CD do nosso ambiente de produção

Você tem controle total sobre sua infraestrutura, incorporando nossas melhorias mais recentes sempre que executar o comando de atualização.

Configuração Rápida

1. Clonar Configuração do Kubernetes

git clone https://github.com/Meeting-BaaS/kubernetes-config.git
cd kubernetes-config

2. Instalar o BaaS CLI

./baas_controller.sh install

3. Configurar o Ambiente

export ENVIRON=prod  # or preprod for staging

4. Implantar Serviços

# Deploy bots (uses pre-built Docker images)
ENVIRON=prod ./baas_controller.sh bots install

# Check status
ENVIRON=prod ./baas_controller.sh bots status

# View logs
ENVIRON=prod ./baas_controller.sh bots log -f

Comandos Principais

Gerenciamento de Bot

# Install bots
ENVIRON=prod ./baas_controller.sh bots install

# Upgrade bots (zero downtime)
ENVIRON=prod ./baas_controller.sh bots upgrade

# Check status
ENVIRON=prod ./baas_controller.sh bots status

# View logs
ENVIRON=prod ./baas_controller.sh bots log -f

# Uninstall (causes downtime)
ENVIRON=prod ./baas_controller.sh bots uninstall

Gerenciamento do Servidor de API

# Install API server
ENVIRON=prod ./baas_controller.sh api install

# Upgrade API server
ENVIRON=prod ./baas_controller.sh api upgrade

# Check status
ENVIRON=prod ./baas_controller.sh api status

# View logs
ENVIRON=prod ./baas_controller.sh api log -f

Gerenciamento do Cluster

# Install cluster
ENVIRON=prod ./baas_controller.sh cluster install

# Access metrics
ENVIRON=prod ./baas_controller.sh cluster metrics

Requisitos de Recursos

Por Pod de Bot

  • CPU: 1,5 vCPU (requests) / 3 vCPU (limits)
  • Memória: 3GB RAM (requests) / 6GB RAM (limits)
  • Armazenamento: 20GB para gravações

Mínimo de Infraestrutura

  • Plano de Controle: 2 vCPU, 4GB RAM
  • Nós de Trabalho: 16 vCPU, 32GB RAM (suporta ~8 bots)
  • Banco de Dados: 8 vCPU, 32GB RAM (PostgreSQL)
  • Cache: 2 vCPU, 4GB RAM (Redis)

Variáveis de Ambiente

# Required
export ENVIRON=prod
export KUBECONFIG=/path/to/kubeconfig

# Optional
export SKIP_VALIDATION=1  # Skip confirmations

Atualizações Sem Tempo de Inatividade

# Always use upgrade, never install for running services
ENVIRON=prod ./baas_controller.sh bots upgrade
ENVIRON=prod ./baas_controller.sh api upgrade

Solução de Problemas

# Check pod status
kubectl get pods -n services

# Describe pod issues
kubectl describe pod <pod-name> -n services

# Check persistent volumes
kubectl get pvc -n services

# Test connectivity
kubectl exec -it <pod-name> -n services -- curl -I https://meet.google.com

Integração com API

# Set API endpoint
export MEETING_BAAS_API=https://your-domain.com/api
export API_KEY=your-api-key

# Test connection
curl -H "Authorization: Bearer $API_KEY" $MEETING_BAAS_API/version

Configuração de Armazenamento

Volumes Persistentes

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: bot-storage
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: sbs-15k  # High IOPS

Classes de Armazenamento

  • sbs-15k: Alto IOPS para gravações
  • sbs-default: Uso geral
  • scw-bssd: NVMe para alto desempenho

Monitoramento

# Access Grafana (if deployed)
ENVIRON=prod ./baas_controller.sh cluster metrics

# Check resource usage
kubectl top pods -n services
kubectl top nodes

Escalabilidade

# Scale bots horizontally
kubectl scale deployment meeting-bots --replicas=10 -n services

# Auto-scaling (HPA)
kubectl get hpa -n services

Segurança

Políticas de Rede

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: bot-network-policy
spec:
  podSelector:
    matchLabels:
      app: meeting-bots
  policyTypes:
    - Ingress
    - Egress
  egress:
    - to:
        - namespaceSelector: {}
      ports:
        - protocol: TCP
          port: 443

RBAC

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: services
  name: bot-role
rules:
  - apiGroups: [""]
    resources: ["pods", "services"]
    verbs: ["get", "list", "watch"]

Backup e Recuperação

# Database backup
kubectl exec -it postgres-pod -n services -- pg_dump meeting_baas > backup.sql

# Restore database
kubectl exec -i postgres-pod -n services -- psql meeting_baas < backup.sql

Limpeza

# Remove all services
ENVIRON=prod ./baas_controller.sh bots uninstall
ENVIRON=prod ./baas_controller.sh api uninstall

# Remove cluster (destructive)
ENVIRON=prod ./baas_controller.sh cluster uninstall
Similar blogsplatform