Meeting-BaaS 本地部署:搭建你自己的会议 bot 基础设施
LLazare Rossillon
在你自己的基础设施上部署 Meeting-BaaS,实现完整的数据控制与企业级安全保障。每个 bot 的实际费用为 $0.066/小时,支持自动更新、零停机部署及完整的自定义能力。
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 自动从我们的镜像仓库拉取最新版本
- 零人工干预: 无需手动检查更新 —— 一切自动完成
更新流程说明:
-
代码变更: 我们的 GitHub Actions workflow 自动构建带有 git commit hash 的新 Docker 镜像,并推送至我们的 Scaleway Container Registry
-
自动检测: 你的 Kubernetes cluster 监控我们的镜像仓库,并通过滚动更新实现零停机部署
-
零停机部署: 系统逐个替换 pod,确保新 pod 健康运行后再终止旧 pod
核心优势:
- ✅ 始终保持最新: 自动获取最新功能、bug 修复及安全补丁
- ✅ 零停机: 无服务中断的无缝更新
- ✅ 版本追踪: 通过 git commit hash 提供完整审计记录
- ✅ 企业级可靠性: 与我们生产环境相同的 CI/CD pipeline
你可以完全掌控自己的基础设施,同时自动同步我们的最新改进。
快速部署
1. 克隆 Kubernetes 配置
git clone https://github.com/Meeting-BaaS/kubernetes-config.git
cd kubernetes-config2. 安装 BaaS CLI
./baas_controller.sh install3. 配置环境变量
export ENVIRON=prod # or preprod for staging4. 部署服务
# 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 uninstallAPI 服务器管理
# 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 -fCluster 管理
# 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.comAPI 集成
# 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: 443RBAC
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