Как запустить корпоративный мессенджер на 50 тысяч человек вместо ушедшего Slack
Рассказывают разработчики «Тинькофф».
До марта 2022 года все сотрудники компании общались в Slack — пока мессенджер не объявил, что прекращает деловые отношения с клиентами из России. До конца оплаченного периода у нас оставалось три месяца. Бесплатная версия Slack нам не подходила: в ней можно просматривать не более 10 тысяч последних сообщений, а доступный объем файлового хранилища — всего 5 ГБ. Тогда мы решили разработать свой корпоративный мессенджер.
Как выбирали основу для мессенджера
Незадолго до этой ситуации коллеги в Тинькофф уже анализировали рынок. В начале зимы в компании выбирали мессенджер для операционных сотрудников. Рассматривали несколько бесплатных и опенсорс-мессенджеров: Zulip, Element, RocketChat и Mattermost (ММ). Первые два варианта не подошли. Мы смотрели на отзывы и ответы разработчиков, архитектуру и возможность применить решение на более чем 54 тысяч сотрудников.
Далее мы развернули две тестовые инсталляции для внутреннего тестирования. В течение нескольких месяцев собирали фидбэк с пользователей. По функциональности, визуалу, UX им больше понравился MM.
Еще мы провели нагрузочное тестирование этих решений на равноценной инфраструктуре, эмулируя работу операционных подразделений. При равноценной нагрузке результаты MM были на 75% лучше. А еще Mattermost похож на Slack, это могло помочь сотрудникам быстрее адаптироваться к новому мессенджеру.
В итоге лучшая производительность из выборки и возможность развернуть мессенджер на нашей инфраструктуре стали решающими факторами выбора.
Почему решили делать свой мессенджер, а не купить готовый
Нам было важно сделать удобный инструмент для наших сотрудников. А еще мы хотим развивать свой внутренний продукт и внедрять в него наши разработки, например голосового ассистента, аналитику метрик активности и многое другое. У команд много запросов на разные функции корпоративного мессенджера: закладки в каналах, раздел реакций и отметок, стикерпаки, витрина ботов, раздел для тайм-менеджмента, ачивки, сторис.
Еще нам хочется собрать всю команду в одном месте. Сейчас команды, которые занимаются производством продуктов, развитием и поддержкой бизнеса, и операционные подразделения работают в разных мессенджерах. Так было, когда мы пользовались Slack, но сейчас у нас появилась возможность это исправить. Основная цель — чтобы 100% сотрудников нашей компании пользовались общим каналом коммуникации.
Запрос на мессенджер для операционных подразделений поднимался давно. Тому было несколько причин, в том числе:
— сложность поддержки и обеспечения требований информационной безопасности;
— сложность интеграции различных приложений для совместной работы с внутренними системами, например с Active Directory.
Важно, чтобы сотрудники операционных подразделений в итоге пользовались безопасным каналом коммуникации, который бы встраивался в экосистему Тинькофф. Нужно поддержать работу более чем 50 тысяч сотрудников и разграничить права доступа для всего разнообразия наших подразделений.
Мы хотим быть независимыми от рынка и санкций, поэтому выбирали open source решение, которое сможем развивать своими силами. Корпоративный мессенджер — критичный элемент нашего бизнеса, и мы должны быть уверены в его стабильности.
Как собрали команду и организовали работу над продуктом
Для нас корпоративный мессенджер — это не просто внутренний чат, а место для синхронизации команды и координации нашей деятельности, а также автоматизации процессов: техподдержки, принятия бизнес-решений. Вопрос был критичным, мы не могли позволить себе тратить время на формирование команды извне, поэтому стали искать специалистов внутри компании.
Откликнулись топовые бэкенд- и фронтенд-разработчики, подобралась опытная команда SRE. Еще к нам присоединились аналитик и дизайнер, команда QA, которая помогла найти дефекты при переезде и в самом Mattermost.
Недавно к нам вышел опытный mobile lead с огромной экспертизой в react native. Мы масштабируем команду, потому что понимаем, что перед нами стоят сложные вызовы. Мы собрали внушительный список задач, доработок и продуктовых функций, которые будем улучшать.
Переезд на Mattermost
В середине апреля мы начали переезд. В Mattermost есть готовые инструменты для импорта данных из Slack, но они очень медленно работали на наших объемах, переезд занял бы месяцы. Пришлось писать свое решение для переноса данных, отбросить приватные переписки. Даже такой компромисс привел к тому, что команда работала все майские праздники, а иногда — по ночам, чтобы успеть до окончания лицензии Slack.
Еще нам пришлось разработать недостающие функциональности Slack, например Workflows — на этом функционале строились вся автоматизация процессов команд в Slack. Функционал Workflow автоматизирует рутинные процессы на базе корпоративного мессенджера без написания кода. Например, с помощью Workflow можно автоматизировать создание заявки в SD или структурировать общение в канале — допустим, ограничить возможность свободно писать сообщения и заменить их обращениями через формы, которые потом публикуются в канал. Еще таким образом можно собирать статистику.
Большой процент автоматизации процессов в повседневной жизни в Slack был завязан на ботов. Посчитали затраты и поняли, что очень дорого переписывать всех ботов на API Мattermost, которое во многом несовместимо с API Slack, поэтому пришлось написать свое решение, позволяющее пользователям создавать ботов через бота Slack и MM.
Так нам удалось перенести ботов из Slack в TiMe в кратчайшие сроки и без переписывания всей кодовой базы.
В итоге мы победили все сложности и переехали, Mattermost превратился в TiMe — новый корпоративный мессенджер Тинькофф. К 14 июня весь трафик сообщений перешел в TiMe, 15 июня Slack стал недоступен.
С какими сложностями столкнулись
Mattermost в рекомендованной конфигурации не выдерживает текущее количество пользователей, а их более 20 тысяч. Нам пришлось многое доработать как со стороны инфраструктуры, так и со стороны кодовой базы. На старте реализовали критичный функционал.
High availability interface. Эта доработка повышает доступность и производительность мессенджера.
SSO-интерфейс. Single Sign-On — единый и безопасный вход в приложение.
Search-интерфейс. Поиск сообщений, контактов, файлов.
Метрики приложения. Техническая, но важная задача по отслеживанию метрик мессенджера позволяет быстро реагировать на инциденты и принимать превентивные меры, чтобы их избежать.
Сейчас для 20 тысяч пользователей доступность составляет примерно 99,7%, в прошлом месяце доступность была около 99,5%. Когда мы работали с сырым Mattermost, на меньшем количестве пользователей, доступность доходила едва ли до 96%. В ближайшее время решим оставшиеся проблемы и получим заветные 99,99%.
В коде MM было много недочетов, приложение работало неустойчиво. При любых отклонениях от нормы мы видели зависший экран, выйти из которого можно только через перезагрузку приложения или сброс кэша. В MM множество известных дефектов и еще больше неизвестных. Встречали критичные дефекты, которые не правились в течение трех лет.
Пользователи привыкли к удобным приложениям, в которых есть микровзаимодействия, анимация, свайпы, классный UI, но главное — продуманный интерфейс. Поэтому приходится многое править не только в коде Mattermost, но и в его дизайне.
В момент переезда на Mattermost в десктоп и веб-версии мы сделали больше 200 средних изменений и около 15 глобальных. В основном это дефекты и правки пользовательского интерфейса.
В плане работы над UX/UI мы смотрим и ориентируемся на мобильные приложения Тинькофф и Тинькофф Инвестиций и идем в ту же сторону с нашим корпоративным мессенджером, постоянно развивая TiMe.
Что уже сделали
Из того, что уже успели сделать в сжатые сроки:
- добавили раздел «Черновики»,
- переработали профиль пользователя,
- проработали механизм обновления десктопа и мобайла, а также некоторые ошибки и состояния приложения,
- реализовали фичи: «Отложенные и регулярные сообщения» и «Напоминания о сообщениях»,
- разработали удобный редактор сообщений и некоторые экраны поиска и создания групп.
Сейчас мы оптимизируем клиентский опыт в основных функциях мессенджера, а дальше будем менять дизайн десктопной версии и переделывать мобильное приложение, чтобы они становились удобнее и понятнее для пользователя. Сейчас в мобильной версии нет и половины функционала от десктопной.
Mobile реализован на React Native в связке с Redux. В Mattermost mobile большие проблемы с производительностью и отзывчивостью интерфейса, стабильностью, ну и, конечно, баги. Например, сильно увеличено время загрузки самого приложения, заметно дольше загружаются каналы и переписки, есть проблемы с загрузкой больших каналов, в которых более 1000 пользователей. В новой версии мы уже это поправили.
Правки осложняет огромная кодовая база, содержащая устаревшие подходы и решения. Архитектура не готова к масштабированию, большая связанность компонентов, логики, сервисов. Нарушение паттернов проектирования и рекомендаций по организации кода, работе с данными компонентов, контрпродуктивное кэширование, отсутствие контрактов для общения с бэкендом и многое другое.
Бывают интересные дефекты: например, когда пользователю приходит push о новом сообщении, он заходит в диалог и вместо своей аватарки видит чужую.
Какие планы на развитие продукта
Наше самое большое достижение — продуктом уже пользуется весь штат штаб-квартиры Тинькофф и часть операционных подразделений, а это больше 20 тысяч человек. С подключением операционных подразделений пользователей станет в несколько раз больше. Сейчас основная цель — развивать корпоративный мессенджер как продукт, который направлен на внутреннего пользователя, и к Новому году реализовать бэклог фич, которые мы считаем критичными.
Мы хотим сделать мессенджер, которым сможем гордиться. Возможно, он будет востребован на рынке, потому что не все готовы мириться с проблемами в open source решениях, но при этом не имеют возможности выделить постоянную продуктовую команду.
Мы готовы ответить на вопросы, рассказать, как автоматизируем наши процессы с помощью корпоративного мессенджера. Если у вас есть идеи по развитию, опыт разработки мессенджеров или вы выбираете софт для своей компании, пишите на [email protected].
По скринам очень похоже на слак 🤔
Дерзайте парни, выходите на рынок, бездуховный телеграмм конечно хорош, но как корпоративный месседжер не годится
Вперёд ребята! Только название поменяйте
Комментарий недоступен
Что значит бездуховный? А какие тогда духовные🤡
Т.е. вы взяли открытый mattermost, допилили его и оставили себе? Где исходники? Или вам плевать на опенсорсные лицензии как и всем компаниям в РФ?
Из того что сказано в статье - лицензия AGPL не нарушена.
Она обязывает делать исходники доступными для всех пользователей продукта.
А раз пока продукт используется только в пределах компании - значит и пользователями являются только сотрудники компании.
Когда будет речь о продаже - тогда придётся уже думать над приобретением коммерческой лицензии.
Комментарий недоступен
Форк же
Тоже хотел бы увидеть исходники, соыт не будет опенсорсным? Лицензия, по идее, на нарушена
[Коммент задублировался]
То есть все-таки планируется выпуск мессенджера на рынок? Если так, то это хорошая новость, телеграм превратился из рабочего мессенджера постепенно превращается в гигантскую помойку))
Возможно в будущем действительно выпустим Time на рынок. Если примем такое решение, обязательно расскажем об этом :)
то же самое хотел написать, присоединяюсь к вопросу. на бумаге выглядит довольно любопытно
крутяк, импортозаметили слак)
как показывает самый свежий опыт воротил бизнеса, эту проблему можно решить с другой стороны 😄
спросите у Маска?
Комментарий недоступен
Вау, я, оказывается, бот 🤖
Помню месяца 2 назад, был пост про жалобу на связь, так все комменты забиты новорегами, и автор новорег. Печально, но логично, что большие площадки превратились в места для пиара или наоборот активная стрельба фекалиями в конкурентов...
реально один в один как слак
Так вроде слак тоже изначально на маттермосте основан
Сложная задача. Если и правда решили её так, как преподносится, моё уважение.
💛
Комментарий недоступен
У кого что болит…
ну че, ждем на рынке, успехов вам
Спасибо 💛
А зачем замазали имя Даниила Дмитриенко?
Чтоб не схантили :D
Привет, круто, вы молодцы. В опенсорс выложите? Или как-то можно вашей версией попробовать по пользоваться у себя?
Приветствуем. Напишите нам на [email protected]. Подробно ответим на все вопросы ;)
Отлично! Выглядит неплохо
а когда примерно планируется выход с мессенджером на рынок? негде обсуждать безуспешные проекты
Я не сотрудник Тинькофф, но есть одно замечание. Всё таки, если вы планируете использовать его как корпоративный мессенджер для всех сотрудников, было бы неплохо весь интерфейс русифицировать.
Если будет потребность то сделают. А так зачем, если нет необходимости.
Круто! Можете! А франки когда вернете?
Сейчас работаем по этой ситуации.
20 июня после остановки торгов на Московской бирже мы направили в НКЦ платежные поручения на вывод всех клиентских CHF на счет нашего банка- корреспондента, однако вплоть до сегодняшнего дня мы так и не получили денежные средства от НКЦ. На протяжении всего времени с 20 июня мы находимся на постоянной связи с НКЦ и предпринимаем попытки получения платежа.
13 июля НКЦ сообщили нам о том, что они исполнили обязательства по возврату CHF, однако эти денежные средства на указанную дату мы не получили.
22 июля мы получили от НКЦ информацию о том, что денежные средства вернулись на корреспондентский счет НКЦ. Сейчас мы взаимодействуем с НКЦ, обсуждая дальнейшие шаги. В том числе мы обсуждаем использование организацией НКЦ иных банков-корреспондентов или возможность конвертации CHF в российский рубль.
О всех важных новостях по ситуации с CHF мы будем оперативно вас информировать.
В Mettermost LDAP sync только начиная с Professional лицензии.
Т.е. в opensource этого кода нет
https://mattermost.com/pricing/#self-hosted
В Тинькофф написали свою интеграции MM в LDAP?
В mm enterprise-код вынесен в другую репу, в основной кодовой базе есть интерфейсы для работы с функционалом, но нет реализации.
Приветствуем. Вы можете задать все интересующие вопросы здесь - [email protected].
Комментарий недоступен
54к - это все кто есть в AD разом войдут в систему и начнут что-то писать
Разом - все сотрудники во всех часовых поясах.
Реально больше всего сотрудников в европейской части РФ в рамках обычного рабочего дня по Московскому времени.
Норм цифры, вполне правдоподобны. Кому доводилось работать в столь растянутых по стране организациях знает как это выглядит.
Еще интересно есть ли в Mattermost видеозвонки пир ту пи? Или например групповые?
В бете у них есть 1х1 звонки (не видео). Так что думаю группых/видео в ближайшей перспективе ждать не приходится.
Круто! Очень любопытно:
Сколько времени всего ушло от начала адаптации до внедрения?
Сколько человек было задействовано в разработке?
Здравствуйте! Мы готовы ответить на вопросы, рассказать, как автоматизируем наши процессы с помощью корпоративного мессенджера. Если у вас есть идеи по развитию, опыт разработки мессенджеров или вы выбираете софт для своей компании, пишите на [email protected].
Тихо с...ил и ушёл - называется нашёл. Закомиттить хоть часть доработок обратно в проект не хочется?
Столманн, конечно, в своё время очень многое предвидел на года вперёд.
А причём тут с...ил, если лицензия позволяет код так использовать?
Лицензия AGPL не обязывает сообщать автору оригинала о том, какие патчи были сделаны, в отличие от GPL
На прошлой работе всё общение команды было в телеге
Чат со справочной информацией до сих пор живёт, т.к. ну очень уж удобно иметь документацию всегда в кармане.
Был там же и тимс, который мы хаили за перегруженность.
На нынешней - никаких внешних мессенджеров и....Lync
Кааааак же я был несправедлив к тимсу.
Надеюсь он меня простит.
Поскорее пилите своё решение - будет шанс получить достойную замену.
Видеозвонки и конфернеции TiMe поддерживает?
Уверены, простит :) Нет, видеозвонки и конференции TiMe поддерживает, но мы всегда приветствуем обратную связь. Напишите нам на [email protected]. Обязательно подумаем и над этим.
Lync же в Skype for business превратился давно и уже даже и от него успели отказаться.
Где же вы этого мамонта откопали?
А чем элемент не зашел?
А чем элемент не устроил?
Очень здорово, что вы видите реальную ценность в корпоративных мессенджерах!
Open sourCe в предпоследнем абзаце.
Точно!
Спасибо, поправили)
Эээээ.. а куда делся слак? В плей маркете висит, обновляется...
С РФ же не сотрудничает, а на бесплатном тарифе всего 10к сообщений индексирует для поиска.
Комментарий недоступен
https://slack.com/blog/news/access-restricted-russia-embargoed-regions-ukraine
слак 2.0
mattermost 1.0
Тими! Лэтмиаут!
.
Я смотрю на менеджер tada вместо собака.
Скучаю по :kazino: :(
У нас в компании тоже был Slack, но после известных событий были вынуждены мигрировать в Discord. Первое время плевались, конечно, но сейчас более менее привыкли.
Желаю удачи и потенциального выхода на рынок 🥳
Добрый вечер! Столкнулся с неправомерными действиями со стороны Тинькофф банка и заметил, что история моя довольно распространенная. С 24.10 банк удерживает денежные средства и ограничивает меня в распоряжении ими. С 24.10 я прошу банк закрыть мой счет и вывести денежные средства, на что я имею право согласно ГК РФ 859 ст. и 8.1 УКБО банка. Банк, в свою очередь, отказывает мне в закрытии счета, тем самым нарушая законодательства РФ, оправдываясь пунктами УКБО. Все положения, которые противоречат положениям ГК РФ, являются недействительными. Прошу, чтобы сотрудники банка обратили внимание на мою ситуацию и прекратили незаконные действия по отношению ко мне.
Приветствуем. Мы работаем строго в соответствии с законодательством РФ. Хотели бы разобраться в ситуации. Подскажите, пожалуйста, ФИО и дату рождения в ЛС.
Мы проводим внутреннее расследование в соответствии с п. 4.5 и 7.3.5 условий обслуживания. До окончания расследования мы не сможем дистанционно принять распоряжение на вывод денег и закрытие счета. Однако, это не означает, что мы удерживаем ваши деньги, вы можете подать заявление на вывод денег и раньше окончания расследования. Вы с паспортом или доверенное лицо с нотариально заверенной доверенностью можете обратиться в офис банка по адресу: г. Москва, ул. Хуторская 2-я, д. 38А, стр. 26. в рабочие дни. Форму доверенности можно уточнить у нотариуса. При любых дополнительных вопросах или при необходимости предупредить о визите – напишите на почту на [email protected].
Законы РФ мы не нарушаем.
И в итоге сделали свой форк, который сможет поддерживать только команда Тинькофф?
Причем исправления в основном продукте можно было подлить в MM, но нет :D
Думаю, это реализовано в виде отдельного сервис-прокси.
круто-круто!
Коллеги молодцы, с радостью затестим как только будет возможность)
Мы так же искали альтернативу Слаку и возможность перестать метаться по нескольким сервисам сразу (отдельные таск-трекеры, отдельно мессенджер, и т.д.), поэтому решили создать свой корпоративный мессенджер, включив в него автоматизацию бизнес процессов, трекер задач, а так же прочих ништяков которых не хватало нам :)
Комментарий удален модератором
мм это уже унылая штука, печально это все
Создай своё, не унылое ))