UncategorizedгаджетыНовостиразработчиктехнология

Cutting Slack: когда инструменты с открытым исходным кодом и инструменты командного чата сталкиваются

Повысьте уровень технологий и стратегии корпоративных данных на Transform 2021.


Пусть Информационный бюллетень OSS Enterprise направьте свой путь к открытому исходному коду! Подпишите здесь.

За 12-месячный период, когда Salesforce вложила 27,7 миллиарда долларов в покупку Slack, Microsoft Teams выросла до 145 миллионов пользователей, а Asana вышла на общедоступные рынки, прошедший год продемонстрировал растущую важность командного чата и инструментов для совместной работы во все более распространенных. рабочая сила.

Еще одна ключевая тенденция, ускоренная пандемией, – это рост числа открытых исходных кодов. Судя по многим оценкам, это особенно верно в отношении предприятия. Почему? Что ж, поскольку предприятиям пришлось развиваться и внедрять цифровую трансформацию, открытый исходный код предлагает более простой канал для масштабирования программного обеспечения, поскольку он избавляет компании от необходимости начинать с нуля, часто дает им больше гибкости для создания дифференцированного продукта. Microsoft также зашла так далеко, что пришла к выводу, что открытый исходный код в настоящее время является общепринятой моделью для сотрудничества между компаниями, поскольку крупные технологические компании часто объединяют усилия для решения проблем, инвестируя ресурсы в проекты, которые приносят пользу всем.

На пересечении этих двух тенденций находятся инструменты для совместной работы с открытым исходным кодом. Существует множество причин, по которым предприятие может решить изучить коммуникационное программное обеспечение, которое придерживается более открытой философии. Например, компании, которые управляют конфиденциальными данными, могут предпочесть полностью контролировать всю свою информацию в рамках самостоятельного размещения, не говоря уже о гибкости с точки зрения интеграции и развертывания.

Здесь мы рассмотрим некоторые из «альтернатив Slack» с открытым исходным кодом, которые в настоящее время представлены на рынке, и поговорим с ключевыми движущими силами и авторами, стоящими за ними.

Что важнее

Компания Mattermost, основанная в 2011 году, ориентирована на предприятия, предлагающие различные варианты самоуправляемого и размещаемого программного обеспечения как услуги (SaaS). Компания из Пало-Альто, штат Калифорния, с момента своего создания привлекла около 70 миллионов долларов и претендует на некоторых крупных клиентов, включая Samsung, SAP, Deloitte, Nasdaq и BNP Paribas, с типичным «развертыванием на крупном предприятии» от 10 000 до 40 000 пользователей.

Mattermost предлагает различные планы, охватывающие большинство потенциальных вариантов использования, включая основную бесплатную версию Mattermost Team с открытым исходным кодом. Он также предлагает коммерческую самоуправляемую бесплатную версию под названием Mattermost Enterprise Edition EO, которая имеет дополнительную возможность обновления до более многофункциональных платных версий. А если заказчик с размещенным корпоративным планом обеспокоен тем, что его данные будут заблокированы коммерческим программным обеспечением, он может «понизить» до версии Mattermost Team с открытым исходным кодом без потери каких-либо данных.

Вверху: Mattermost

По словам генерального директора и соучредителя Mattermost Яна Тьена, наиболее сильным преимуществом использования так называемой бизнес-модели «открытого ядра» над продуктом с открытым исходным кодом является эффективность.

«Прямо сейчас финансовые рынки отдают предпочтение корпоративному SaaS как категории, и вы можете видеть это по мультипликаторам валидации для этой категории», – сказал Тьен VentureBeat, хотя и добавил, что корпоративный SaaS имеет две неотъемлемые проблемы.

«Во-первых, дифференциация продуктов длится всего от шести до девяти месяцев, прежде чем конкуренты в этой области смогут эффективно конкурировать с вашими новыми функциями – сложно создать ров», – сказал он. «Во-вторых, корпоративные стратегии вывода на рынок SaaS превращаются в товар: маркетинг и продажи в конечном итоге выглядят одинаково. Все размещают рекламу по одним и тем же ключевым словам, они используют одинаковые сообщения, они участвуют в одних и тех же конференциях “.

Основная проблема, которую это создает, по словам Тьена, заключается в том, что по мере того, как инвесторы вкладывают все больше денег в корпоративные стартапы SaaS, стоимость привлечения клиентов “взлетает до небес”.

Так как же именно программное обеспечение с открытым исходным кодом и открытые основные бизнес-модели решают эту проблему? Все сводится к ключевому слову – эффективности.

«В отличие от корпоративного SaaS, здесь пока нет большой конкуренции на открытых основных рынках», – пояснил Тьен. «Подавляющее большинство проектов с открытым исходным кодом не предназначены для превращения в бизнес, поэтому, когда вы строите бизнес с открытым исходным кодом с венчурным капиталом, вы часто можете стать ведущим игроком с открытым исходным кодом в своей категории за счет инвестиций в инженерные разработки и поддерживать эту позицию, когда шкала.”

Это также оказывает влияние на стратегию выхода компаний на рынок. Часто разработчики и ИТ-специалисты ищут решения любых проблем, с которыми они сталкиваются, и открытый исходный код часто является приоритетом для этого целевого рынка. Компании, которые создали коммерческое предложение на основе программного обеспечения с открытым исходным кодом, имеют хорошие возможности для привлечения этих разработчиков, а затем соблазнить их на более позднем этапе расширенными функциями. Другими словами, зачастую легче привлечь внимание потенциальных покупателей с помощью открытого исходного кода и помочь им реализовать его преимущества, не проходя через длинный цикл продаж.

«Открытые профильные компании могут создавать предложения для удовлетворения этих потребностей, и только после того, как будет предоставлена ​​ценность, можно будет говорить о коммерческих предложениях», – сказал Тьен.

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

«Некоторые из наших самых популярных инновационных функций были предложены или реализованы сообществом», – сказал Тьен. «Если бы Mattermost был полностью проприетарным продуктом, мы наверняка упустили бы некоторые из замечательных идей, исходящих от наших участников».

Ракетостроение

Rocket.Chat, основанный в Бразилии в 2016 году, представляет собой аналогичное предложение, поскольку предлагает различные уровни хостинга и хостинга на основе своей основной чат-платформы с открытым исходным кодом.

Более технически опытные команды разработчиков также могут развернуть бесплатную версию «сообщества» с открытым исходным кодом через Rocket.Chat. Chat продает дополнительные функции и услуги компаниям, которым нравится философия «открытого исходного кода», но которым не хватает ресурсов, чтобы делать все самостоятельно.

«Некоторым администраторам, развертывающим локальную версию сообщества, может не хватать определенной технической конфигурации, опыта работы или ресурсов», – сказал основатель и генеральный директор Rocket.Chat Габриэль Энгель. «В таких случаях мы предоставляем определенные вспомогательные услуги по подписке, включенные в наши планы, которые облегчают их жизнь. Но все эти услуги являются необязательными, и более технически подкованные пользователи версии сообщества не будут нуждаться в них от нас ».

Вверху: Rocket.Chat в дикой природе

Предлагаемые Rocket.Chat SaaS-предложения пригодятся тем, кто хочет избежать хлопот по настройке и обслуживанию собственных серверов.

Когда компания выбирает продукт SaaS, она обычно должна согласиться с тем, что придется пойти на компромисс с точки зрения контроля над такими вещами, как настройки и доступ к данным.

«Принятие SaaS требует минимального уровня признания того, что вы больше не полностью контролируете свои корпоративные данные, и вы должны доверять третьей стороне на основе их – часто постоянно меняющихся – условий», – пояснил Энгель. «И в этих ситуациях их возможности и желание« создавать новые функции »и« новые интеграции »обычно уменьшаются».

Однако продукты SaaS, такие как Rocket.Chat, сочетают в себе лучшее из обоих миров – удобство SaaS с гибкостью открытого исходного кода и возможностью настраивать рабочие пространства с различными разрешениями пользователей, сторонними интеграциями и централизованными данными, которые контролирует клиент.

«Rocket.Chat разработал решение даже для тех случаев, когда компании готовы сделать ставку на SaaS и по-прежнему хотят иметь полную гибкость для создания новых функций и настроек», – сказал Энгель.

Вверху: иллюстрация Rocket.Chat, демонстрирующая интеграцию с WhatsApp, Messenger, AWS и другими.

Как и в случае с Mattermost, Engel называет сообщество пользователей и разработчиков основным преимуществом своей бизнес-модели. Это создает своего рода эффект «маховика», при котором сообщество улучшает продукт, что, в свою очередь, приносит пользу сообществу и его платежеспособным клиентам. Этот благотворный цикл поощряет участие сообщества в дальнейшем улучшении продукта.

«Открытый исходный код невероятен для бизнеса – он устраняет барьеры для покупок, позволяя клиентам опробовать продукт и настроить его в соответствии с потребностями своего бизнеса», – сказал Энгель. «В случае отсутствия функции или интеграции заказчик может разработать ее самостоятельно, вернуть в основную систему или опубликовать на нашем рынке».

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

«По мере того, как их внутреннее внедрение растет и компания становится все более зависимой от Rocket.Chat как основного центра коммуникации и совместной работы, они переходят в наших клиентов, чтобы получить поддержку своих проектов и обеспечить долговечность и устойчивость нашей платформы», – сказал Энгель.

Всего несколько месяцев назад Rocket.Chat собрал 19 миллионов долларов финансирования, привлекая некоторых известных институциональных инвесторов США, включая Greycroft и NEA. И заявлены такие известные клиенты, как Continental, Lockheed Martin и Seeking Alpha, онлайн-сообщество и издание, посвященное финансовым рынкам.

Seeking Alpha запустил рынок Seeking Alpha еще в 2015 году, чтобы помочь инвестиционным экспертам продать свой опыт всему миру. Поскольку чат в реальном времени является неотъемлемой частью такой услуги, компания изначально разработала и разместила собственный клиент чата внутри компании, но это оказалось плохой идеей.

«В то время у нас как у организации не было достаточной пропускной способности, чтобы развить ее должным образом», – отметил Джонатан Лисс, старший менеджер по продукту Seeking Alpha Marketplace. «Таким образом, набор функций действительно неконкурентоспособен для тех, кто использовал« настоящий »чат. Что еще более важно, каждый конечный пользователь думает о функциях чата, но с точки зрения разработки, внутренняя интеграция является сложной частью. Отсутствие масштабируемости на стороне сервера может привести к постоянным скачкам и сбоям ЦП – и именно это случилось с нами ».

Примерно через год Seeking Alpha решил искать альтернативный продукт и в конце концов остановился у дверей Rocket.Chat.

Вверху: В поисках альфы: разговор между участниками

Использование чат-инструмента с открытым исходным кодом для своей торговой площадки позволило Seeking Alpha делать то, что в противном случае было бы невозможно. Масштабируемость была одной из проблем – Slack взимает ежемесячную плату за каждого пользователя, что может оказаться непомерно дорогим для продукта без ощутимого верхнего предела количества пользователей.

Seeking Alpha также изучил SendBird, компанию, которая создает API чата для интеграции предприятий в свои приложения. Однако это повлекло бы за собой разработку собственного интерфейса чата для каждой платформы на настольных и мобильных устройствах, когда компании требовалось что-то хорошее.

В то время, когда Seeking Alpha перешел на Rocket.Chat, он, вероятно, был немного менее многофункциональным, чем Slack, но функции не были основным преимуществом. Ключевым фактором была гибкость и способность создавать именно то, что нужно.

«В [Rocket.Chat] команда была привержена работе вместе с нами, чтобы убедиться, что мы получили все необходимые функции », – сказал Лисс. «Нам нужна была действительно тесная интеграция между нашей производственной базой данных и Rocket.Chat».

Торговая площадка Seeking Alpha насчитывает около 180 отдельных сообществ, каждое из которых сосредоточено на определенной инвестиционной вертикали, с частными чатами, к которым люди получают доступ по подписке. Поиску альфа-версии требовались детальные элементы управления, например, чтобы отменить чей-то доступ сразу после истечения срока действия бесплатной пробной версии.

«А поскольку рыночные условия меняются так быстро, это было очень важно. [that] подписчики были предупреждены в течение торгового дня о ключевых событиях в чате в различных средах, – продолжила Лисс. «Наши пожилые подписчики обычно предпочитают уведомления по электронной почте или на рабочем столе, тогда как люди младше 50 лет предпочитают push-уведомления с мобильных устройств или смарт-часов».

Вверху: В поисках альфа-версии: push-уведомление

Еще одной привлекательной особенностью была возможность отключать звук для отдельных пользователей. Это то, что, вероятно, будет более полезно в большом анонимном сообществе, чем в корпоративной среде – поэтому Slack не имеет такой функции – но это подчеркивает некоторую гибкость, которую инструменты с открытым исходным кодом могут предоставить компаниям с различными потребностями. .

«Наличие надежной чат-платформы в конечном итоге способствует свободному обмену идеями и информацией», – сказал Лисс. «И это означает, что каждому участнику чата предоставляется возможность управлять своим информационным потоком и, в конечном итоге, максимизировать отношение сигнал / шум».

Стоит отметить, что компании иногда могут использовать инструменты чата с открытым исходным кодом для очень конкретных случаев использования. Seeking Alpha еще не пошел ва-банк в Rocket.Chat – для стандартных повседневных внутренних коммуникаций он по-прежнему использует Slack. “Это [Slack] имеет больше смысла в качестве сценария использования ИТ – и это то, с чем наша ИТ-команда знакома », – сказала Лисс.

Это тема, которая пронизывает чат с открытым исходным кодом и пространство для совместной работы. Ян Тьен из Mattermost сказал, что он часто сталкивается с компаниями, использующими бесплатную версию Mattermost с открытым исходным кодом для очень специфических ситуаций.

«Обычно мы видим, что только версия с открытым исходным кодом используется в организациях с высоким уровнем безопасности, где небольшие команды хотят работать вместе быстро и эффективно», – пояснил Тьен. «Иногда это происходит с небольшими командами, работающими в закрытых сетях, иногда называемых« анклавами ». Эти варианты использования для пары десятков членов команды, работающих в Mattermost, идеально подходят для версии с открытым исходным кодом ».

Тим Эбботт, соучредитель платформы группового чата с открытым исходным кодом Zulip, отмечает, что он часто сталкивается с компаниями, которые используют Zulip повсеместно, за исключением их отдела продаж, который продолжает использовать Slack. «Одна из причин, по которой Salesforce захотела купить Slack, заключается в том, что Slack был лучшим пользовательским интерфейсом для Salesforce, чем веб-сайт Salesforce, который работает очень медленно», – сказал он.

Кстати о Зулипе…

Сохранение контекста

Zulip был создан для асинхронного группового чата, одного из столпов движения за удаленную работу, вызванного пандемией, с клиентами, в том числе гигантом облачных вычислений и сетей доставки контента (CDN) Akamai и головной организацией Wikipedia, Wikimedia Foundation.

Основным преимуществом Zulip является его уникальная функция потоковой передачи, изобилующая поиском и настраиваемыми уведомлениями. Он эффектно позиционируется как анти-Slack. «Наша цель – сделать программное обеспечение для совместной работы максимально продуктивным, а не копировать Slack», – пояснил Эбботт.

С Zulip пользователи подписываются на «потоки» (которые немного похожи на каналы Slack, за отсутствием лучшей аналогии), причем каждое сообщение в потоке также привязано к теме.

Вверху: потоки Zulip: непрочитанные

Таким образом, те, кто входит в Zulip после дня в автономном режиме – или те, кто находится в разных часовых поясах – могут щелкнуть поток и выбрать темы, которые имеют отношение к ним, вместо того, чтобы читать сотни или более пропущенных сообщений.

Вверху: Zulip: Topic

Хотя Slack, несомненно, хорош для определенных вещей, он может стать архаичным, когда десятки или более сотрудников – все из разных мест – пытаются поддерживать беседу. Основное обещание Zulip заключается в том, что он помогает конкретным разговорам сохранять свой контекст, даже если содержащиеся в них сообщения отправляются с разницей в часы или дни.

Вверху: потоки Zulip: сохранение контекста

Зулип пошел довольно окольным путем туда, где он находится сегодня. Компания была основана еще в 2012 году как платформа для обмена сообщениями на рабочем месте, но в 2014 году она была куплена Dropbox, еще до того, как стала общедоступной. Dropbox намеревался использовать Zulip в качестве основы для новой функции командного чата, однако приоритеты изменились, и создатели Zulip в конечном итоге начали работать над другими частями основного продукта Dropbox, и Dropbox в конечном итоге закрыл многие из новых продуктов, над которыми он работал.

На протяжении всего этого Zulip все еще использовался его первоначальным списком бета-клиентов. «Все наши клиенты в тот или иной момент пробовали Slack и вернулись к использованию Zulip, хотя в то время казалось, что у этого продукта может не быть будущего», – пояснил Эбботт.

В конце концов, Dropbox выпустил Zulip под лицензией с открытым исходным кодом в 2015 году, и это был первый случай, когда он стал доступен для внешнего мира, за исключением пользователей ранних бета-версий. Dropbox отказался от всей собственности на платформу и в конечном итоге передал товарный знак Kandra Labs, компании, основанной Abbott в 2016 году для контроля и поддержки развития Zulip.

За прошедшие годы Kandra Labs запустила несколько коммерческих продуктов для монетизации Zulip, включая размещенную версию и локальную версию, которая включает корпоративную поддержку. Как и другие компании в этой области, Эббот сказал, что большинство компаний выбирают самостоятельный хостинг по очень конкретным причинам, помимо финансовых.

«Основное преимущество хостинга с Zulip Cloud по сравнению с версией с открытым исходным кодом заключается в том, что вы получаете нашу операционную команду, управляющую сервисом – мы заботимся о резервных копиях, избегаем простоев, поддерживаем конечных пользователей и настраиваем интеграцию со сторонними сервисами, такими как Google, GitHub и Twitter », – сказал он. «Большинство компаний, выбирающих самостоятельный хостинг, делают это потому, что у них есть веские причины для этого, а не потому, что они хотят сэкономить».

Что касается SaaS, Abbott отмечает, что одно из основных различий между проприетарными продуктами и продуктами с открытым исходным кодом заключается в том, что в последнем сценарии они могут сами добавлять функциональные возможности.

«Если конкретному клиенту действительно нужна функция, но это не является общим приоритетом для Slack, клиент может ничего не сделать, чтобы добавить эту функцию в Slack – по крайней мере, если они недостаточно велики, чтобы требовать ее. как часть продажи », – сказал Эбботт. «В отличие от модели Zulip, заказчик имеет возможность назначить одного из своих инженеров для ее реализации и отправки изменений для объединения в Zulip. Это позволяет клиенту SaaS обеспечить важную функцию или исправление ошибки, которую невозможно реализовать через API / интеграцию ».

В отличие от Mattermost или Rocket.Chat, Zulip предпочел оставаться самодостаточным, не вкладывая венчурные инвестиции, что Эбботт слишком хорошо знает, поскольку он сам поддержал около 100 стартапов в качестве ангельского инвестора.

«Мы решили не использовать венчурный капитал, потому что это создает сильное давление в пользу компромисса», – пояснил Эбботт. «Мы планируем финансировать рост Zulip старомодным способом – через пользователей, платящих за наш продукт».

Элемент в комнате

Element – это клиент обмена мгновенными сообщениями с открытым исходным кодом, основанный на Matrix, децентрализованном протоколе связи с открытыми стандартами, первоначально разработанном внутри Amdocs компанией Мэтью Ходжсон а также Амандин Ле Пап в 2014.

«В буквальном смысле нет центра, так же как и в Интернете и в сети нет центра», – сказал Ходжсон VentureBeat. «Matrix – это больше, чем проект с открытым исходным кодом – это целая экосистема для взаимодействия в реальном времени. Фактически, мы думаем о Matrix как о недостающем коммуникационном уровне в открытой сети ».

Вверху: Элемент: приложение для обмена мгновенными сообщениями, созданное на основе Matrix.

Чтобы использовать потенциал Matrix, Ходжсон и Ле Пейп в 2017 году создали новую отдельную компанию под названием New Vector, которая продолжила разработку услуги хостинга Matrix и кроссплатформенной альтернативы Slack под названием Riot, которая была построена на Matrix. В 2018 году был создан Matrix.org Foundation, который возглавил будущее развитие Matrix как нейтральной некоммерческой организации, а затем в прошлом году New Vector и его приложение Riot были переименованы в Element.

Стоит подчеркнуть, что Matrix не является продуктом в том же смысле, что Mattermost, Rocket.Chat или Zulip. Во многих отношениях Matrix больше похожа на электронную почту, которая, возможно, является одним из лучших примеров успешной интероперабельной системы связи, появившейся в эпоху Интернета. При использовании электронной почты пользователям не обязательно быть у одних и тех же поставщиков услуг, чтобы общаться друг с другом (хотя это не всегда так). Это в значительной степени противоположность тому, где мы находимся с современными интернет-средствами связи, включая VoIP (например, Skype или Google Hangouts) и приложения для обмена сообщениями (например, WhatsApp или Signal), которые продвигают замкнутые экосистемы, которые не позволяют пользователям свободно общаться в чате. друг к другу через службы.

Таким образом, Element, благодаря тому, что он построен на Matrix, означает, что пользователи, по сути, участвуют в открытой децентрализованной глобальной сети, состоящей из 30 миллионов пользователей, распределенных по 65 000 отдельных развертываний, управляемых разными организациями: «Больше похоже на телефонную сеть, чем на типичную частную разрозненность, такая как Teams или Slack, – сказал Ходжсон.

Это означает, что пользователи не привязаны к приложению Element, они могут переключиться на любой другой клиент Matrix. И они также получают возможность взаимодействия, так что они могут общаться с кем угодно, используя приложение с поддержкой Matrix, а метод, называемый «мостом», позволяет поддерживать приложения, не относящиеся к Matrix, включая Telegram, Slack, WhatsApp и программное обеспечение с открытым исходным кодом, такое как Mattermost.

«Кто-то на Element может прозрачно обмениваться сообщениями с кем-то на других сервисах, при этом другая сторона даже не подозревает, что они разговаривают с кем-то, кого действительно телепортируют из другого места», – сказал Ходжсон.

Element еще не реализовал все эти мосты, но пока поддерживает Slack, Microsoft Teams, Telegram, Discord, IRC и платформу чата Gitter, ориентированную на разработчиков, которую Element приобрела в прошлом году.

Еще одно ключевое обещание, лежащее в основе Element, – это независимость данных, позволяющая предприятиям выбирать, где и как размещать свои данные. «Это очень важно для национальных государств, регулируемых предприятий или тех, кто не хочет передавать все свои данные в одну крупную технологическую компанию и молиться, чтобы их не взломали», – сказал Ходжсон ».

Ряд коммерческих компаний создали продукты на основе Matrix, в том числе Contextual Communication Cloud от Эрикссон, которое представляет собой полностью управляемую услугу, которая позволяет предприятиям легко интегрировать расширенные услуги связи и совместной работы в свои приложения. А французский гигант Thales запустил сервис мгновенных сообщений для предприятий под названием Citadel.Team, который не слишком отличается от Element.

Похоже, что одна из основных причин существования Element – помимо того, что она является самостоятельной коммерческой компанией при поддержке Automattic, материнской компании WordPress.com, – это служить примером того, что возможно с Matrix.

«Основная причина, по которой мы разрабатываем Element как открытый исходный код, состоит в том, чтобы с прагматической точки зрения действовать как катализатор роста открытой сети Matrix», – сказал Ходжсон. «Очевидно, что способ распространения новой технологии в Интернете – выпустить ее бесплатно в виде открытого исходного кода с большим органическим сообществом разработчиков, которое будет двигать ее вперед – точно так же, как Интернет во многом обязан своим успехом распространению и сообществам вокруг веб-сервер Apache с открытым исходным кодом или браузеры Mozilla и WebKit с открытым исходным кодом ».

VentureBeat

Миссия VentureBeat – стать цифровой городской площадью, где лица, принимающие технические решения, могут получить знания о преобразующих технологиях и транзакциях.

На нашем сайте представлена ​​важная информация о технологиях и стратегиях обработки данных, которая поможет вам руководить своей организацией. Мы приглашаем вас стать участником нашего сообщества, чтобы получить доступ:

  • актуальная информация по интересующим вас темам
  • наши информационные бюллетени
  • закрытый контент для лидеров мнений и льготный доступ к нашим ценным мероприятиям, таким как Преобразование 2021: Учить больше
  • сетевые функции и многое другое

Стать членом

Related Articles

Leave a Reply

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

Back to top button