LWN:如何用自由软件支撑LPC会议!

关注了就能看到更多这么棒的文章哦~

Notes from an online free-software conference

By Jonathan Corbet
September 4, 2020
LPC
DeepL assisted translation
https://lwn.net/Articles/830436/

2020 年的 Linux Plumbers Conference(LPC)本应于 8 月底在加拿大新斯科舍省哈利法克斯市举行。编者正是这次活动的组委会成员,因此,本来我们期望着在加拿大东部沿海来讨论内存管理相关的变化,结果因为当前的疫情而成为了泡影,人们必须要采取一些补救措施。于是我们将 LPC 转为了一次成功的在线会议,这里有很大的工作量,不过最终的结果也非常有价值。请继续阅读,了解在 2020 年实现在线 LPC 会议的经验中的一些想法。

一个会议如果受到这种意外事件的影响,组织者首先要尽早面对这个问题,并思考如何应对。编者曾与其他一些会议的组织者探讨过,他们没能(或不能)做到这一点,于是在没有做好充分的准备的情况下,与会者的体验受到了影响。以 LPC 为例,我们从 3 月份就开始策划,这提前了整整 6 个月——远远早于我们决定取消现场活动的时刻。我们需要每一分钟来做好安排。

Which platform

在线会议需要一个 online platform。正在多种方面支持 LPC 的 Linux 基金会提供了一些可能选项,但这些平台都是 proprietary(专有的),而且价格昂贵。这不能怪 Linux 基金会,毕竟那些活动组织者正承受着巨大的压力,因为有好些大型活动都在火热进行中。在这样的情况下,人们不得不抓紧任何一根稻草。不过,我们有更多的时间以及强烈的意愿来避免强迫我们的参会者使用商业平台,于是我们就要自己构建和支持一个平台。

早期的研究得出的结论是,有两个成熟的免费软件系统可供选择:Jitsi 和 BigBlueButton。这两个系统都基本满足需求。最终,我们选择了 BigBlueButton,原因有很多,包括集成更紧密的 presentation 工具,更灵活的管理员系统,以及更强大的前端系统(尽管,正如大家看到的,我们没有用到这部分功能)。

BigBlueButton 对 LPC 来说效果不错,但必须说这个系统并不完美。它包含多个来自多个不同项目的、高度复杂的组件,在一个共同的界面下粘合在了一起。它的配置信息分布在几百个 XML 文件中(还有一些其他格式的文件)。它只能运行在古老的 Ubuntu 16.04 发行版上。很多功能都很难发现,有些功能更是会让用户非常不爽。比如,对于会议主持者来说,退出会议(让会议继续进行)和结束会议(从而将其他人踢出去,处理聊天会话等等)这两个选项在菜单上是相邻的,看起来几乎一样。最令人担忧的是,BigBlueButton 有一些固有的问题,不太容易扩展规模。

FAQ 中说,BigBlueButton 的任何一个会话都不应该有超过 100 个用户。我们的会议通常会有 600 人左右,所以我们马上注意到了这一点,然后做了很多工作,试图找出该平台的真正局限在哪里,包括进行了一些自动测试,以及在会议前举办了几次 "town hall"活动。最后,我们得出的结论是,如果我们注意不要给它太大压力,BigBlueButton 应该能支撑得住。

这里说要注意的地方,包括很多点,首先是要取消全体会议。全体会议从来都不是活动的重点。LPC 专注于小组讨论,在那里进行深入的讨论并完成真正的工作,所以这个决定不会导致 LPC 的重大改变。2020 年 LPC 主席 Laura Abbott 录制了开幕式欢迎词,并在 YouTube 上发布。不把 500 人或更多的人放在同一个 "房间 "里,就避开了许多规模上去之后的特有问题。

除此之外,要求与会者保持他们的网络摄像头是关闭状态,除非他们正在参与讨论。要想确认服务器和客户端的可支持的规模极限,最快方法就是打开大量的摄像头。鼓励大家使用 "listen-only "模式,以减少服务器负载。这一点可能并不是必要的,也与活动的 "everybody participates(人人参与) "的目标相悖。还通过 YouTube 广播了 live stream(实时流媒体),这是进一步减少负载的方式,并在万一一切数据都被破坏的情况下能作为一个备份渠道。事实证明,YouTube live stream 对一些无法注册参加会议的人很有用,或者人们也许只是觉得这样观看更方便。

实际会议进行中非常顺利,这表明我们显然担心过度了。LPC 的分组会议经常有 100 多人参加,尤其是 Rust 开发内核的会议吸引了 170 多人参加。服务器从未受到严重的压力。只有在活动正式结束后举行的 "炫耀你的啤酒 "环节,当 20 个以上的与会者同时打开他们的摄像头时,情况才变得有点差。BigBlueButton 在这样的负载下还是很难有好的表现。

Creating the conference experience

BigBlueButton 很好地处理了举行视频会议的任务,但并没有解决创建在线会议的全部问题。它本来是用来运行在一个前端系统后面,为参与者提供一个登陆页面,控制可以访问那些房间等等。它附带了一个名为 Greenlight 的系统来处理这些任务,但 Greenlight 并不是真正用来举办会议的。例如,它不能向与会者展示可用的房间、并告诉他们其中在讲些什么。因此,我们最终编写了自己的前端系统来处理这些任务。我们的前端系统会从 LPC 网站上获取日程表,并生成一个可以让与会者轻松访问相应房间的页面。前端这里还提供了一些管理屏幕,让组织者能够了解正在发生的事情。大家如果好奇的话,可以查看发布在 git://git.lwn.net/lpcfe.git 的代码。

凡是参加过面对面会议和视频会议的人都知道,这两者是有差异的。组委会担心,在过去的几个月里,我们都已经参加了太多的视频会议,对一个看起来又是一个视频会议的会议的热情,会因此有些减退。我们知道,我们永远无法复制亲临现场的体验,但我们希望尽可能地接近。

其中的一部分是制定一套实践,使会议尽可能地富有成效,也有更多互动。在这方面,"除讨论时之外,关闭摄像头 "的规范很有效果。它使与会者能够专注于真正说话的人,而如果有个视频窗口弹出来,这是一个明确的信号,表明有人要补充些什么。BigBlueButton 内置的聊天和投票系统也有助于增加互动性,而且使用相当频繁。

面对面的会议通常会产生许多对话,并在走廊或者单独的分组讨论室、之后的酒吧等场所继续进行。我们无法提供酒吧的体验,但可以尝试提供一些其他的体验。我们留出了几个 "hack room",任何想利用它们进行其他话题讨论的小组都可以使用。这些房间使用量也很高。我们还鼓励在最后一刻为需要进一步讨论的主题安排 "birds-of-a-feature"讨论。这些会议在整个大会期间进行了很多实际有效的讨论和决策。

为了给其他讨论创造一个 "hallway(走廊)",我们使用 Rocket.Chat 建立了一个单独的聊天论坛。事实证明,这个论坛也很受欢迎,它也是与会者在活动期间寻求支持的渠道。

在线活动还必须解决时区问题,与会者们分布在全球不同时区。LPC 进行了一些民意调查,试图找到一个最佳的时间窗口,但最终决定每天从 14:00UTC 开始进行 4 个小时的会议。这个时间段对美洲和欧洲来说相当好,但对亚洲和大洋洲大部分地区的与会者来说就不那么舒服了。Android microconference 在正常日程之外举行了一场延长的 BOF 会议,来满足一些人的需求。LCP 整体来说如果能在其他时间有更多 session 的话也许会有好处。

这个决定意味着将 LPC 会议变成一个为期五天的活动,但采用四小时的会议是唯一合理的选择。视频会议很枯燥,即使时间段合适,也很少有人会有耐心坐满一天。

总而言之,没有人会把 online LPC 与面对面的聚会混为一谈,但我们还是保留了多年来使 LPC 成为一个富有成效的聚会的许多特点。与会者似乎对他们的体验很满意。他们中一些人要求将来哪怕是在面对面的会议里面,也能有在线视频 presentation 模式。

Other points of interest

一些会议为了应对这一流行病,干脆取消了今年的会议,其中包括 Linux Storage, Filesystem, and Memory-Management Summit,Kernel Recipes,GNU Tools Cauldron。不过,后来 Cauldron 接受了 LPC 的邀请,在这里举办了一系列议题。结果是 GNU 工具链开发者和他们的用户大规模地混在一起举行了会议,这是很罕见的。将来要想有这种体验的话,只能寄希望于跟其他会议活动同时举行才能实现了。

人们只要参加几次面对面的会议,一般都会有一种有趣的体验,那就是在会议的预定时间已过,可以发言者仍然在拼命想办法让自己的笔记本电脑能跟投影仪配合用起来。我们这些演讲者全部放到一个新的不熟悉的平台上,有可能会让这种情况出现得更加频繁。为了避免这种情况的发生,委员会成员整理了一系列文档,介绍如何在主讲人和主持人的角色下用好 BigBlueButton。然后,我们举办了一系列的培训课程,让大家了解平台的基本操作以及举办会议的基本知识。事实上,会议本身顺利进行就证明了这些文档和培训是很有效的。

我们此前都有过痛苦的视频会议经历,比如有些与会者根本看不到或听不到。为了让 LPC 表现得更好一些,委员会在按照传统挑选给演讲者的礼物时,就挑选了由耳机、摄像头、补光灯以及其他一些好东西组成的套件。我们希望,大家能喜欢这组套件,并大量使用在会议中,从而让音频和视频质量也有相应的提高。

LPC 委员会每年都在纠结应该提供多少门票的问题。LPC 是一个工作会议,规模太大的话,人们就很难找到想找的人,这与活动的整体目标背道而驰。不过,这个问题对于一个在线活动来说,发生了一些变化。出于多种原因,我们决定允许参会人数增加。最终,有近 950 人注册,使之成为有史以来规模最大的 LPC 活动。并且我们还是拒绝了不少人的申请。

有些人对此感到惊讶,他们显然认为一个在线活动应该可以允许无限人员加入。设立这个注册上限有两个原因:担心 "房间 "里的人太多;以及担心上述的规模增大之后出现的性能问题。现在看来,我们应该可以允许更多的人加入。更多的人在 "房间 "里并不妨碍讨论,而且在线会议也不会有那种穿过拥挤的走廊去喝咖啡或寻找合作者的问题。服务器的负荷也还不错。但我们事前无法预知情况会是这么乐观。

在注册的近 950 人中,只有 800 多人在活动期间至少参加了一个环节。越来越多的关于在线活动的经验表明,预计可能会有高达 50%的缺席率,所以这个出席率已经是相当高了。尽管是一个在线活动,并不会出差、报名费极低,但是报名参加 LPC 的人其实也是想参加的。

LPC 在线基础设施最终由 17 台虚拟机组成,如果你们感兴趣这个信息的话。其中有 6 台是 BigBlueButton 服务器,每台有 32 个专用 CPU,结果发现这个性能超过了我们的需求。哪怕只有一半的 CPU 数,还是足够支撑我们这次的会议。每台 BigBlueButton 服务器都配有一台机器,专门为该服务器中的主要房间创建 YouTube live stream 直播流。一台机器运行 Rocket.Chat 服务器,一台运行前端界面,还有一台运行 LDAP 目录服务器,为这两者提供登录信息。还有一台用于 NAT 的 coturn 服务器,以及一台运行 Zabbix 的监控主机。

总而言之,将 LPC 作为一个虚拟会议来举行,这个经历是很繁杂耗时的,但也是有益的。尽管我们之前很担心,但我们还是成功地使用 100%的免费软件完成了这次活动。希望到了 LPC 2021 的时候,大家能够再次见面。万一不行的话,我们也能更好地以虚拟会议的方式来开展工作。无论如何,我们会让我们的社区团结起来,研究如何让自由软件变得更好。

最后,你们的编辑写了这篇文章,并对其中的任何错误负全部责任,但上面描述的工作,还包括举行 LPC 这样的活动所需的许多其他的任务(开发程序、管理注册和演讲者的通行证、与赞助商合作等),这些是由组委会作为一个整体来完成的。这个委员会由 Laura Abbott、Elena Zannoni、Kate Stewart、James Bottomley、Christian Brauner、Jonathan Corbet、Guy Lunardi、Paul McKenney、Ted Ts'o、Steve Rostedt 和 David Woodhouse 组成。同时也要感谢 Linux 基金会的支持。当然,最大的感谢还是要感谢 LPC 的与会者,没有他们,就不会有有趣的对话。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~