基于视频会议解决方案的Ensemble项目成功后 *,Scaleway 团队希望通过新的 Jitsi* 视频会议解决方案在功能方面走得更远。这个新的解决方案既完整又不太依赖客户端平台,直接安装在我们的物理 BareMetal 服务器上。* **BigBlueButton** ## 取得了什么成就 *吉西* 视频会议平台已成为与亲人保持联系和确保远程工作的必要条件。考虑到这一点,一旦宣布限制,Scaleway 就向社区提供了开源和主权视频会议解决方案, *,在 Covid-19.Jitsi 危机期间* 免费、开源和自主的视频会议 * 由 Scaleway 提供支持旨在提供 Jitsi* * 服务器,能够处理大量视频桥接请求。加载。这使我们能够确保每个用户都有最少使用的实例来创建虚拟房间并发起呼叫。* **Jitsi** 今天,无状态 API 由 React 中的一个 Front 和一个向 Prometheus 发出请求(每 30 秒)以获取所有服务器列表的 API 组成 * 可用和他们当前的 CPU 使用率。Jitsi* 然后 Web 应用程序选择服务器 * 具有最多可用 CPU 并将 URL 返回给用户。使用此 URL,用户可以轻松连接到 Jitsi 服务器 ** 并开始享受具有最佳音视频质量的通话。所有服务器* **Jitsi** * 都部署在可以包含大量并发的 Scaleway Elements 实例上视频桥。* **Jitsi** ## 为什么要提出替代方案 *Jitsi* 和 *BigBlueButton*?ensemble.scaleway 视频会议解决方案在 2020 年 7 月底之前仍然可用且免费。Scaleway 已经研究了替代方案 * 利用这段时间,Jitsi* **which** *BigBlueButton* **是最初为远程学习而开发的视频会议系统。 Web 应用程序基于 HTML5,不需要安装“无软件或插件**” 有效, **是** *BigBlueButton* **可作为许可证** ** *开源*,不需要在 Windows、MacOS、Linux、Android、iOS 等客户端设备上进行任何额外安装。我们还选择了这个解决方案,因为事实证明它更健壮且更可用。它还提供许多协作功能,例如: - 董事会 - 幻灯片阅读器 - 屏幕共享 - 虚拟发言要求 - 创建分会议室 - 参与者之间的私人聊天 * 针对大型团体的视频电话会议进行了校准。通过不限制参与者的数量并且经常出现高流量高峰,该解决方案没有显示出任何迹象。该平台的优点是与其他流行的视频会议解决方案一样稳定且易于使用,具有控制参与者权限的选项,例如 BigBlueButton* 为了保证这个Scaleway的稳定性 **为其后端基础设施选择了非常大的服务器**而不是几台小型服务器,因此选择了功能强大的裸机服务器,其硬件配置没有管理程序和虚拟化层我们如何配置由 Scaleway 提供支持的 BigBlueButton?解决方案 * 建议直接安装在物理服务器上,所以我们先从一个Bare Metal GP-BM1-M服务器集群入手。这在硬件配置方面具有以下优势: BigBlueButton* CPU:1×1×Intel××eon E3 1240v6 - 4C 8T - 3.7 GHz RAM:64 GB 存储:3×1 TB 带宽:500 Mbit/s 该团队提供了一个自动配置了 BigBlueButton 的 Ubuntu 镜像。安装是使用 github 上免费提供的脚本完成的 ## 第一步:Terraform 模块 Terraform 是我们也用于该平台的基础设施工具 *.它允许以声明式范例(基础架构即代码)管理所有云资源。特别是 BareMetal 模块,它将创建 Jitsi 集群的每个专用服务器* *。该插件将接收 ID 参数专为该场合创建的。* **BigBlueButton** 资源 "scaleway_baremetal_server_beta""bbb"{ for_each = local. instances zone = "fr-par-2"offer = "GP-BM1-M"os_id = "3ea52186-1e57-499e-8146-ab38051a5c10"ssh_key_ids = [ data.scaleway_account_ssh_key .user1.id, data.scaleway_account_ssh_key.user2.id , data.scaleway_account_ssh_key.user3.id, ] } Ensemble-bbb.scaleway 基础设施的其余部分由计算实例组成: - 2 x DEV1-L(NGINX、React 前端、BigBlueButton 代理) - 1 x DEV1-L(普罗米修斯) ## 第二步:房间分配 至于解决方法 * 我们在 React 中有一个前端,它允许通过一个单一的接口联系内部 API 以在许多服务器之一上创建一个房间。Jitsi* ** 嵌入用户和房间所有者注册机制。为了避免每个用户都必须在每个节点上注册才能创建或加入房间,我们通过为用户提供两条可以提供给参与者的 api 路由来使这部分变得透明。作为房间主持人连接的第一条路线和作为简单参与者的另一条路线。 BigBlueButton** 如前所述,API 会定期查询每个服务器 * 检索房间和参与者的数量,这允许在集群上平均分配负载。BigBlueButton* ## 第三步:收回ensemble.scaleway.com整合的所有优势 英文技术说明 使用 Jitsi 和 Scaleway Elements *BigBlueButton.* 在一天内构建一个可扩展的视频会议解决方案。**Scaleway Registry API 和 React 中的前端在两个容器中运行,并且都托管在 Scaleway 私有注册表上。一旦存储在注册表中,图像就可以通过由 docker-compose 运行应用程序。 **Scaleway Load-Balancer 负载均衡器会根据资源可用性自动将请求转发到我们的 API 服务器。我们的 API 服务器提供每台服务器的负载信息*,以确保用户拥有最可用的服务器。 BigBlueButton* **Scaleway Placements Groups 作为我们应用程序的一部分,我们希望确保 API 服务器尽可能可用。因此,我们激活了该模式 max_availabilityScaleway 安全组 在 API 实例上,我们只允许 HTTPS 连接和 SSH 远程访问连接。 BigBlueButton 运行所必需的***BigBlueButton** **Scaleway Domains 我们已经为所有子域生成了一个通配符证书 set-bbb.scaleway.com.Each 服务器 * 收到其 Nginx 服务器用于管理 HTTPS 连接的证书。BigBlueButton* ## 后续步骤 Scaleway 继续在 httpsensemble.scaleway.com/ 和 httpsensemble-bbb.scaleway.com/ 上积极工作,以在这个困难时期为尽可能多的人提供支持。了解更多信息,请立即测试由 Scaleway 解决方案提供支持的 BigBlueButton,阅读我们关于此主题的文档或创建您的第一个 BareMetal 服务器。