Онлайн-мероприятие как распределённая система: как качественно провести конференцию в интернете
Сначала сделаем оговорку. Мероприятие мероприятию рознь, и когда речь о посиделках на пять человек, вам может быть достаточно созвониться в Zoom, а всё написанное ниже будет каким-то излишним усложнением жизни.
Но вот если у вас большое мероприятие с сотнями зрителей и высокой ценой билета, всё совершенно иначе. Пробы онлайн-пера других мероприятий показали: работать в режиме созвона в Zoom в принципе можно, но сделать это качественно трудно. Мешают и проблемы с соединением, и то, что Zoom не дает управлять раскладкой эфира (например, нельзя выбрать, какой набор людей должен быть на экране у зрителей в конкретный момент). Да и подход «скинуть ссылку на эфир в чат» для коммерческих мероприятий работает не очень хорошо — она обязательно утекает наружу.
У нас добавлялось ещё и то, что мы проводим технологические конференции, так что наша ЦА — это серьезные айтишники. Они высоко ставят планку требований к цифровому продукту.
Опишем сценарии, когда что-то идёт не так — и напишем, что с ними можно сделать.
Самая очевидная проблема онлайн-конференций — это потенциальные разлады связи. Все мы при видеосозвонах оказывались в ситуации, когда всё разваливалось: то микрофон выключен, то видео пикселится, то половина слов проглатывается. В повседневном созвоне можно переподключиться, выключить видео, перейти на другой сервис. С большим платным мероприятием такие манёвры невозможны.
И тут любопытно вот что. Если спикеры вашего мероприятия не сидят в одной комнате, а распределены по планете, то по сути, вы имеете дело с распределённой системой. И проблема связи типична для распределённых систем: IT-специалисты знают, что если у тебя много связанных сетью компонентов, то сеть неизбежно будет сбоить. А мы что-то понимаем в распределенных системах, потому что проводим по ним конференцию Hydra — и поэтому знаем, что уже наработано много опыта в отношении того, как быть в таких ситуациях. И стараемся перенимать этот опыт.
Как сделать, чтобы онлайн-конференция при сбоях все равно работала хорошо? Для начала стоит минимизировать проблемы, например, такими средствами:
Вот наглядный пример — в видео на 56:01 из-за связи у спикера временно испортилось качество картинки, но слайды остались такими же чёткими
Несмотря на все наши старания, полных гарантий нет, и всё же может случиться ужасное — например, спикер всё-таки отвалится посреди доклада. Что тогда?
И тут снова пригодится знание распределённых систем, где выход из строя отдельных компонентов — это норма жизни. Если у вас дома сломается жёсткий диск, вы можете потерять все свои фотографии. А вот в сервисах вроде Google Photos пользователи не теряют фотографии, хотя там их тоже хранят на жёстких дисках. Почему?
Потому что информацию дублируют, и если один из дисков отказал, можно автоматически подтянуть копию с другого (в идеале расположенного как можно дальше от первого: тогда даже падение метеорита не страшно). Есть понятие »replication factor» (коэффициент репликации), означающее количество копий вашей условной фотографии в рамках одной системы на нескольких дисках.
Так что все компоненты, отказ которых создаёт проблему, стоит дублировать. Например, электричество: у нас всё подключено к UPS, позволяя продолжать конференцию, даже если в офисе временно отключат свет.
Но есть проблема: скопировать файл легко, продублировать оборудование тоже можно, а вот спикера полностью не продублируешь, его доклад за него никто другой не прочитает. Что делать с этим?
И тут стоит вспомнить ещё одно понятие из мира отказоустойчивости: «graceful degradation». Суть в том, что система при проблемах должна не резко отключаться целиком, а изолировать нерабочую часть и постараться поддержать в рабочем состоянии оставшуюся функциональность. Этим принципом мы и руководствуемся.
- На конференциях (даже офлайновых), кроме заявленных спикеров, полезно держать в резерве «запасных». Это значит, что если вдруг кто-то перед докладом заболеет, вам есть чем моментально заполнить дыру в расписании. Да, это хуже, чем исходный план с заявленным докладом. Но это куда лучше, чем полное отсутствие доклада.
- Наша распределённая система строится на трёх человеческих «узлах»: спикер, эксперт и ведущий. Спикер — гвоздь программы, все собрались послушать его. Эксперт обычно разделяет зону знаний спикера (например, если конференция по JavaScript, он тоже должен быть фронтендером), он следит за вопросами в чате, инициирует дискуссию. Ведущий в основном представляет всех — по умолчанию его роль минимальна. В случае, если спикер отключается, в игру вступают эксперт и ведущий: они сообщают зрителям о проблеме и обсуждают какие-то связанные с докладом вещи. В итоге зритель получает интересный контент.
Еще один фактор, добавляющий головной боли организаторам — это тезис о том, что в онлайне трудно построить общение. Смотреть доклады или другой контент можно, а вот взаимодействовать сложнее. А ведь для многих участников нетворкинг остается основной причиной ходить на мероприятия — видео докладов можно увидеть и на YouTube.
Что онлайн-конференция может дать участнику, чего не может дать YouTube? Как минимум, возможность задать вопрос спикеру. Есть чат, где можно обсудить доклад с участниками и задать свой вопрос, а мы также устраиваем видеозвонки после каждого доклада.
И ещё прожиточный минимум — это чат мероприятия (например, в Telegram). Уже куда лучше, чем просто видеопоток.
Но можно зайти дальше. Например, недавно на онлайновом Google I/O была виртуальная «игровая» онлайн-площадка, где можно было ходить игровым персонажем, взаимодействовать с окружающим миром, —, а сев на виртуальную скамейку с другим участником, можно было початиться с ним.