Социальные виртуальные пространства с Elixir в Mozilla

Социальныевиртуальныепространствасelixirвmozilla

Добро пожаловать в нашу серию тематических исследований о компаниях, использующих Эликсир в производстве . См. Все случаи , которые мы опубликовали на данный момент.

Hubs – это подход Mozilla к виртуальному социальному взаимодействию. Вы создаете свои собственные личные пространства и делитесь ими со своими друзьями, коллегами и сообществом. Аватары в этом пространстве могут свободно перемещаться в трехмерной социальной среде и смотреть видео, обмениваться сообщениями и разговаривать с другими людьми поблизости. Все, что вам нужно, это браузер и микрофон!

Концентраторы полностью с открытым исходным кодом , и вы можете разместить его в своей инфраструктуре через Hubs Cloud . Менеджеры сообществ, преподаватели и организаторы мероприятий использовали Hubs Cloud для проведения виртуальных мероприятий и онлайн-мероприятий, адаптированных к их конкретным брендам и потребностям. Все, что требуется для запуска вашей собственной версии Hubs, находится на расстоянии одного клика, что, возможно, делает Hubs самым распространенным приложением Phoenix за всю историю!

Mozilla Hubs

От VR к Elixir

Команда Hubs начала свою деятельность в Mozilla как команда смешанной реальности около 3,5 лет назад. Их главная цель состояла в том, чтобы изучить способы онлайн-социального взаимодействия через аватары и смешанную реальность.

Они быстро сосредоточились на создании своего первого доказательства концепции, где аватары могли бы общаться, перемещайтесь и присоединяйтесь к разным комнатам, все работает прямо в браузере. Это было значительным отклонением от современного состояния виртуальной реальности во всем мире, поскольку до этого момента начало работы было обременительным и часто требовало значительных инвестиций в виде гарнитур виртуальной реальности.

Первоначальный прототип имел успех и подтолкнул команду к созданию продукта. Однако все коммуникации в доказательстве концепции были одноранговыми, что ограничивало возможности и возможности, которые они могли предоставить. Поэтому команда Hubs знала, что им нужна мощная бэкэнд-технология для обеспечения разветвленной связи и координации того, как все разные аватары взаимодействуют в виртуальных пространствах. Джон Шонесси, штатный инженер-программист в Mozilla, комментирует: «Когда много людей находятся в одном пространстве, будь то виртуальное или реальное, никогда не происходит единственного разговора. Если у вас в комнате десять или двадцать разных людей, конференц-связь перестает работать. В хабах люди переходят между несколькими одновременными разговорами, просто перемещаясь ».

Имея в руках это смелое видение, они оценили весь свой стек. Они решили использовать JavaScript с Three.js во внешнем интерфейсе и выбрали веб-фреймворк Phoenix для серверной части. Грег Фодор, который в то время был техническим менеджером в Mozilla, объясняет свой выбор: «Сначала мы перечислили все функции, которые нам нужно было реализовать, от тривиальных вещей, таких как конечные точки REST, до более сложных вариантов использования, таких как обмен сообщениями в чате и отслеживание. где аватары находятся в виртуальном мире. Когда я начал изучать Phoenix, я увидел, что все эти функции уже есть! Создаваемое нами приложение должно управлять большим количеством подключений с низкой задержкой в ​​реальном времени, для чего мы знали, что Erlang VM отлично подходит для этого ».

В производстве

Концентраторы были запущены в январе 2020. Почти все в Hubs проходит через Phoenix. Единственным исключением являются голосовые каналы WebRTC, которые обрабатываются назначенными голосовыми серверами, изначально реализованными с помощью Janus , а затем перенесен на MediaSoup . Однако приложение Phoenix по-прежнему управляет голосовыми серверами и тем, как им назначаются соединения.

Развертывание организовано Среда обитания и работающая на Amazon EC2. Habitat предоставляет упаковку и оркестровку. Когда голосовой сервер присоединяется к кольцу Habitat, службы Phoenix получают сообщение и начинают назначать голоса голосовым серверам. В целом они работают на 4 серверах Phoenix и 4 голосовых серверах.

Опыт производства Elixir был довольно гладким. Доминик Д’Аниелло, штатный инженер-программист Mozilla, указывает на некоторые области, которые они обсуждали для улучшения: «Приложение Phoenix работает в основном как прокси, поэтому мы избегаем декодирования и перекодирования данных, если в этом нет необходимости. Но иногда нам приходится заглядывать в полезные данные, а JSON – не самый эффективный формат для этого ». Они также решили больше полагаться на процессы Elixir и распределение Erlang. Доминик продолжает: «Когда к нам присоединяется новый клиент, он должен спросить всех остальных клиентов, каково их положение в мире, что им принадлежит и что их волнует. Один из вариантов – использовать процессы Elixir в кластере для хранения состояния различных сущностей и объектов в виртуальном мире ».

Beyond Hubs

Поскольку многие крупные компании инвестируют в онлайн-общение, Команда Mozilla увидела возможность превращения виртуальных пространств в огороженные стены внутри существующих социальных платформ. Это побудило команду Hubs работать над Hubs Cloud с миссией по коммерциализации виртуальных пространств, позволяя любому запускать свою собственную версию Hubs одним щелчком мыши.

Hubs Cloud был запущен в феврале 2021 и стал хитом.

Нью-Йоркский университет провел выпускную церемонию на экземпляре Hubs Cloud . Конференция IEEE Virtual Reality Conference охватила концентраторы для более доступного и устойчивого мероприятие с докладами и стендовыми докладами проходит в виртуальных залах, в то время как бейсбольная команда Minnesota Twins запустила виртуальную Зал славы на вершине платформы.

Их облачная версия использует Amazon CloudFormation для создания экземпляров концентраторов внутри учетной записи пользователя. Такой подход поставил перед командой Hubs разные проблемы: «Мы хотим, чтобы Hubs Cloud было максимально доступным и простым. Приложение Phoenix уже сильно помогло в этом вопросе. Мы также переместили некоторые функции в Amazon Lambda и сделали их необязательными, например изменение размера изображения и преобразование видео », – подробно рассказывает Джон.

Поскольку Hubs также имеет открытый исходный код, разработчики могут запускать свои собственные экземпляры Hubs на любой платформе по своему выбору или изменять ее по своему усмотрению. Это тот путь, по которому недавно пошел Грег Фодор, когда он объявил Джел : «Jel – это видеоигра для работы. Это смесь Minecraft и Discord, где все трехмерно. Моя цель – найти новые направления и идеи, чтобы заинтересовать людей VR ».

Подведение итогов

Сегодня команда Hubs 10 участники, половина из которых – разработчики. Их команда инженеров довольно разносторонняя, и изучение Elixir происходит органично: «вас мотивирует функция, над которой вы работаете. Если это требует смены серверной части, вы изучаете Elixir с помощью команды, а затем вносите свой вклад ».

В целом, ставка на Phoenix оказалась удачной. . Грег Фодор подчеркивает: «Наиболее значительным преимуществом Phoenix является использование стека, который отлично справляется с решением большого количества задач. Попав в Phoenix, наши инженеры могут коснуться огромной площади. Они могут работать с любой функцией, которую они придумали. А поскольку Hubs имеет открытый исходный код, наши участники также получат такой же опыт. В целом, Elixir и Phoenix сокращают усилия, необходимые для оказания максимально возможного воздействия на весь наш продукт ».

В последнее время они еще больше углубились в экосистему, так как они начали предоставлять Hubs API через GraphQL с помощью Absinthe. Они также перешли на Phoenix v1.5 и используют

Phoenix LiveDashboard для предоставления показателей и инструментов пользователям Hubs Cloud.

© 2012 – 2021 Команда Эликсира. Все права защищены.

Leave a comment

Your email address will not be published. Required fields are marked *