ADG Оставить заявку
Блог Инфраструктура 5 мин чтения

Slack и Teams закрыли доступ: переводим клиентов на российские корпоративные мессенджеры

Slack и Microsoft Teams ограничили корпоративный доступ для организаций под санкциями. Сравниваем Rocket.Chat self-hosted, VK Teams и Яндекс Мессенджер на реальных переводах.

Контекст момента

Slack и Microsoft Teams ограничили корпоративный доступ для российских организаций под санкциями

Когда в начале августа несколько корпоративных аккаунтов Slack у наших клиентов получили уведомления об ограничении доступа, вопрос «чем заменить» из абстрактного превратился в конкретный. Teams к тому времени тоже закрыл расширенные функции для организаций, попавших в санкционные списки. Мы разом получили три запроса на перевод корпоративного мессенджера - от клиентов разного масштаба и с разными требованиями.

Дальше - практика. Не обзор продуктов по документации, а то, с чем реально столкнулись.

Три кандидата и логика выбора

Рассматривали три варианта:

  • Rocket.Chat self-hosted - открытый исходный код, разворачивается на своих серверах, данные остаются у клиента. Активно развивается, имеет бизнес-ориентированные функции: каналы, треды, ботов, webhooks, богатый API. На рынке не новый, у некоторых компаний уже был опыт с ним ещё до нынешних событий.
  • VK Teams - бывший Mail.ru Myteam, переименованный и перепакованный продукт от VK. Облако или on-premise, фокус на корпоративный рынок. Интеграции с экосистемой VK и российскими сервисами.
  • Яндекс Мессенджер - здесь ситуация с корпоративной версией сложнее: речь о Яндекс 360 для бизнеса, куда мессенджер входит как часть пакета. Корпоративного on-premise нет, только облако.

Сразу уточним: у одного клиента был жёсткий запрос на хранение данных исключительно на своих серверах - для него облачные варианты отпали сразу.

Rocket.Chat: разворачиваем у себя

Для клиента с требованием по локализации данных выбор был очевиден. Развернули Rocket.Chat в Docker Compose на выделенной VM с MongoDB в качестве бэкенда - стандартная схема по официальной документации.

Что прошло без проблем: базовая установка, настройка аутентификации через LDAP (у клиента FreeIPA), создание структуры каналов, загрузка истории - Rocket.Chat умеет импортировать историю из Slack через JSON-экспорт. Экспорт из Slack мы успели сделать заблаговременно, пока доступ ещё был.

Где потратили время:

Мобильные клиенты. Push-уведомления в self-hosted варианте идут через серверы Rocket.Chat - это известный архитектурный момент, без которого придётся держать собственный push-proxy. Для клиента с суверенными требованиями это потребовало отдельного разговора: либо мириться с тем, что метаданные уведомлений проходят через внешний сервис, либо разворачивать собственный push gateway. Пока выбрали первое, но зафиксировали как открытый вопрос.

Интеграции с внутренними системами. Клиент активно использовал incoming webhooks в Slack для оповещений от систем мониторинга и CI. В Rocket.Chat аналогичный механизм есть, и он работает - но форматирование сообщений отличается, особенно attachments и block-kit-аналоги. Переписали несколько скриптов формирования уведомлений, часть адаптировали через Rocket.Chat Apps.

Производительность при старте. MongoDB + Node.js при первом запуске на не самой мощной VM (4 vCPU, 8GB RAM) поднимается небыстро. После прогрева - нормально, но если VM перезапускается, старт займёт минуты. Для продакшна стоит закладывать ресурсы с запасом.

В итоге: переезд занял около двух недель с учётом переноса истории и адаптации интеграций. Пользователи привыкают - UI другой, но базовые сценарии те же.

VK Teams: корпоративный on-premise

Второй клиент был готов к облаку, но предпочёл on-premise из-за внутренних политик. VK Teams предоставляет такую возможность - разворачивается на своих серверах, лицензирование по числу пользователей.

Впечатление двойственное.

Плюсы: установщик понятный, документация на русском, техподдержка отвечает на русском же и достаточно оперативно. Интерфейс знакомый пользователям мобильного мессенджера от Mail.ru/VK, привыкание минимальное. Видеозвонки работают из коробки - это то, чего не хватало некоторым альтернативам.

Минусы: API и webhooks есть, но существенно беднее чем у Slack или Rocket.Chat. Интеграций с внешними системами у этого клиента было меньше, поэтому прошло без серьёзных проблем. Экосистема ботов практически отсутствует - всё нужно писать самому через официальный Bot API. Администрирование через веб-консоль - функционально, но местами угловатое.

Переезд прошёл быстрее: неделя с небольшим, потому что история в этом случае переносить не стали (клиент принял решение начать с чистого листа).

Яндекс 360: когда облако не страшно

Третий клиент - небольшая компания без требований к on-premise и без сложных интеграций. Для них посмотрели на Яндекс 360 для бизнеса, куда входят мессенджер, почта, диск и видеозвонки в одном пакете.

Подключение заняло буквально день: привязка домена, создание пользователей через консоль администратора или импорт из CSV, настройка. Мессенджер в составе пакета - это знакомый интерфейс, пользователи сразу поняли что к чему.

Ограничения здесь очевидны: данные в облаке Яндекса, зависимость от платформы. Для компании без регуляторных требований и без глубоких интеграций - разумный выбор. Но это именно замена потребительского мессенджера, а не корпоративной платформы с API.

Что мы вынесли из этих трёх переводов

Выбор упирается в два главных параметра - требования к локализации данных и наличие интеграций с внутренними системами.

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

Если нужен отечественный on-premise с поддержкой на русском - VK Teams. Проще в части поддержки и администрирования, беднее по API. Для компаний без сложного DevOps-стека - разумная точка входа.

Если облако допустимо и требования простые - Яндекс 360. Быстро, знакомо, дёшево.

Помощь с интеграцией корпоративных мессенджеров во внутренние системы - это отдельный проект, не надо недооценивать его объём заранее. Мы ещё в процессе по части задач у клиентов - история с Rocket.Chat и webhooks закрыта не полностью. Напишем когда появится что добавить.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.