Implemente Meeting-BaaS en su propia infraestructura con control total de datos y seguridad de nivel empresarial. Obtenga el costo real de $0.066/hora por bot con actualizaciones automáticas, deployments sin tiempo de inactividad y capacidades de personalización completas.

LLazare Rossillon
··3 min read
Meeting-BaaS On-Premises: Implemente Su Propia Infraestructura de Bots de Reunión

Inicio Rápido de Meeting-BaaS On-Premises

Usando nuestras imágenes Docker precompiladas, puede tener fácilmente su propia infraestructura de Meeting BaaS en funcionamiento. Este artículo muestra cómo es posible, qué necesitará y, lo más importante, cuánto debería costarle.

Obtendrá control total sobre sus datos, capacidades de personalización completas y seguridad de nivel empresarial, mientras mantiene la misma funcionalidad de API que la versión alojada.

Lo más importante es que este deployment le permite pagar el precio real por los bots de reunión ($0.066/hora) mientras tiene la estabilidad de un producto comercial mantenido, con un Acuerdo de Nivel de Servicio.

Construya asistentes de reunión con IA, workflows de transcripción automatizada, transmisión de audio en tiempo real, análisis de reuniones, seguimiento de interacciones con clientes, monitoreo de cumplimiento y resumen inteligente de reuniones con plena soberanía de datos.

Evaluación de Precios

Estimamos que la configuración base le costará alrededor de $5,500/mes en total, desglosado de la siguiente manera:

Costos de Configuración Base:

  • Nuestra tarifa de consultoría: $10,000/mes (incluye configuración, mantenimiento, soporte y SLA)
  • Costos de infraestructura: $1,500/mes (incluye 8 bots en funcionamiento en todo momento)

Ejemplo: 20,000 horas por mes

  • Configuración base: $5,500/mes (incluye 1,408 horas - 8 horas/día × 8 bots × 22 días laborables)
  • Horas adicionales: 18,592 horas × $0.066 = $1,227
  • Total: $6,727/mes ($0.336/hora)

La eficiencia de costos mejora con la escala:

  • 50,000 horas/mes: ~$8,700/mes ($0.174/hora)
  • 100,000 horas/mes: ~$12,100/mes ($0.121/hora)

Requisitos Previos

  • Cluster de Kubernetes (1.20+)
  • Una base de datos PostgreSQL
  • Una instancia de Redis
  • Almacenamiento compatible con S3
  • Una cola SQS
  • kubectl configurado
  • Docker/container runtime
  • 16GB+ de RAM, mínimo 8+ vCPUs
  • Acceso a internet saliente para plataformas de reunión

¿Cómo funciona?

Nuestro deployment on-premises utiliza automatización CI/CD de nivel empresarial para mantener su infraestructura sincronizada con nuestras últimas mejoras.

GitHub Actions construye y etiqueta cada imagen; usted ejecuta el comando de actualización para incorporarla a su cluster; los pods de bots, el servidor API, las bases de datos y el almacenamiento nunca abandonan su infraestructura

Compilaciones de Imágenes a Través de CI/CD, Deployments bajo Su Control

Cómo funciona:

  • Integración con GitHub: Nuestro pipeline CI/CD construye y publica automáticamente nuevas imágenes Docker cuando actualizamos nuestro código
  • Usted Controla el Despliegue: Kubernetes no monitorea un registro y hace deploy automáticamente por sí solo — una nueva imagen en nuestro registro no afecta a su cluster hasta que usted lo indique. Ejecute el comando baas_controller.sh upgrade (o configure su propio observador de imágenes, por ejemplo Flux o ArgoCD Image Updater, si desea que sea automático) para incorporar un nuevo tag.

Cómo Funciona el Proceso de Actualización:

  1. Cambios de Código: Nuestro workflow de GitHub Actions construye automáticamente nuevas imágenes Docker con hashes de commits de git y las publica en nuestro Scaleway Container Registry

  2. Usted Activa el Deploy: Ejecute el comando de actualización con el nuevo tag de imagen cuando esté listo — esto no es automático a menos que configure su propio controlador de monitoreo de registro

  3. Deployment sin Tiempo de Inactividad: Una vez activado, Kubernetes reemplaza los pods uno por uno, asegurando que los nuevos pods estén saludables antes de terminar los antiguos

Beneficios Clave:

  • Usted Decide Cuándo: Incorpore funciones, correcciones y parches de seguridad en su propio horario, no en el nuestro
  • Sin Tiempo de Inactividad: Actualizaciones continuas sin interrupciones del servicio una vez activadas
  • Seguimiento de Versiones: Trazabilidad completa con hashes de commits de git
  • Confiabilidad Empresarial: El mismo pipeline CI/CD que nuestro entorno de producción

Obtiene control total sobre su infraestructura, incorporando nuestras últimas mejoras cuando ejecuta el comando de actualización.

Configuración Rápida

1. Clonar Configuración de Kubernetes

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

2. Instalar BaaS CLI

./baas_controller.sh install

3. Configurar el Entorno

export ENVIRON=prod  # or preprod for staging

4. Desplegar Servicios

# 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 Principales

Gestión de Bots

# 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

Gestión del Servidor 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

Gestión del 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 (solicitudes) / 3 vCPU (límites)
  • Memoria: 3GB RAM (solicitudes) / 6GB RAM (límites)
  • Almacenamiento: 20GB para grabaciones

Mínimo de Infraestructura

  • Plano de Control: 2 vCPU, 4GB RAM
  • Nodos de Trabajo: 16 vCPU, 32GB RAM (soporta ~8 bots)
  • Base de Datos: 8 vCPU, 32GB RAM (PostgreSQL)
  • Cache: 2 vCPU, 4GB RAM (Redis)

Variables de Entorno

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

# Optional
export SKIP_VALIDATION=1  # Skip confirmations

Actualizaciones sin Tiempo de Inactividad

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

Solución 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

Integración de 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

Configuración de Almacenamiento

Volúmenes Persistentes

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

Clases de Almacenamiento

  • sbs-15k: Alto IOPS para grabaciones
  • sbs-default: Propósito general
  • scw-bssd: NVMe para alto rendimiento

Monitoreo

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

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

Escalabilidad

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

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

Seguridad

Políticas de Red

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"]

Respaldo y Recuperación

# 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

Limpieza

# 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
Blogs similaresplatform