Meeting-BaaS 本地部署:搭建你自己的会议 bot 基础设施

LLazare Rossillon

在你自己的基础设施上部署 Meeting-BaaS,实现完整的数据控制与企业级安全保障。每个 bot 的实际费用为 $0.066/小时,支持自动更新、零停机部署及完整的自定义能力。

Meeting-BaaS 本地部署:搭建你自己的会议 bot 基础设施
August 7, 2025

Meeting-BaaS 本地部署快速入门

使用我们预构建的 Docker 镜像,你可以轻松搭建自己的 Meeting BaaS 基础设施。本文将介绍实现方式、所需条件,以及最重要的——费用估算。

你将获得对数据的完整控制权、全面的自定义能力,以及企业级安全保障,同时保留与托管版本相同的 API 功能。

最重要的是,这种部署方式让你能够以会议 bot 的真实价格($0.066/小时)计费,同时享有经过维护的商业产品的稳定性,并附带服务级别协议(SLA)。

在完整数据主权的基础上,构建 AI 会议助手、自动转写 workflow、实时音频流、会议分析、客户互动追踪、合规监控及智能会议摘要。

定价评估

我们估算基础配置的月均总费用约为 $5,500,具体明细如下:

基础配置费用:

  • 我们的咨询费: $10,000/月(含部署、维护、支持及 SLA)
  • 基础设施费用: $1,500/月(含 8 个 bot 全天候运行)

示例:每月 20,000 小时

  • 基础配置:$5,500/月(含 1,408 小时 —— 8 小时/天 × 8 个 bot × 22 个工作日)
  • 额外小时数:18,592 小时 × $0.066 = $1,227
  • 合计:$6,727/月($0.336/小时)

规模越大,成本效益越高:

  • 50,000 小时/月:约 $8,700/月($0.174/小时)
  • 100,000 小时/月:约 $12,100/月($0.121/小时)

前置条件

  • Kubernetes cluster(1.20+)
  • PostgreSQL 数据库
  • Redis 实例
  • 兼容 S3 的存储
  • SQS 队列
  • 已配置 kubectl
  • Docker/container runtime
  • 最低 16GB+ RAM、8+ vCPU
  • 会议平台所需的出站网络访问

工作原理

我们的本地部署采用企业级 CI/CD 自动化,使你的基础设施与我们的最新改进保持同步。

通过 CI/CD 实现自动更新

无缝同步:

  • GitHub 集成: 我们的 CI/CD pipeline 在代码更新时自动构建并推送新的 Docker 镜像
  • 实时更新: 你的本地后端和 bot 自动从我们的镜像仓库拉取最新版本
  • 零人工干预: 无需手动检查更新 —— 一切自动完成

更新流程说明:

  1. 代码变更: 我们的 GitHub Actions workflow 自动构建带有 git commit hash 的新 Docker 镜像,并推送至我们的 Scaleway Container Registry

  2. 自动检测: 你的 Kubernetes cluster 监控我们的镜像仓库,并通过滚动更新实现零停机部署

  3. 零停机部署: 系统逐个替换 pod,确保新 pod 健康运行后再终止旧 pod

核心优势:

  • 始终保持最新: 自动获取最新功能、bug 修复及安全补丁
  • 零停机: 无服务中断的无缝更新
  • 版本追踪: 通过 git commit hash 提供完整审计记录
  • 企业级可靠性: 与我们生产环境相同的 CI/CD pipeline

你可以完全掌控自己的基础设施,同时自动同步我们的最新改进。

快速部署

1. 克隆 Kubernetes 配置

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

2. 安装 BaaS CLI

./baas_controller.sh install

3. 配置环境变量

export ENVIRON=prod  # or preprod for staging

4. 部署服务

# 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

核心命令

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

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

Cluster 管理

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

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

资源需求

每个 Bot Pod

  • CPU:1.5 vCPU(请求)/ 3 vCPU(限制)
  • 内存:3GB RAM(请求)/ 6GB RAM(限制)
  • 存储:20GB 用于录像

基础设施最低要求

  • 控制平面:2 vCPU、4GB RAM
  • 工作节点:16 vCPU、32GB RAM(支持约 8 个 bot)
  • 数据库:8 vCPU、32GB RAM(PostgreSQL)
  • Cache:2 vCPU、4GB RAM(Redis)

环境变量

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

# Optional
export SKIP_VALIDATION=1  # Skip confirmations

零停机更新

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

故障排查

# 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

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

存储配置

持久卷

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

存储类型

  • sbs-15k:高 IOPS,用于录像
  • sbs-default:通用型
  • scw-bssd:NVMe,适用于高性能场景

监控

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

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

扩缩容

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

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

安全

网络策略

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

备份与恢复

# 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

清理

# 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
相关博客platform