Привет всем!
Меня зовут Макарий, я DevOps-инженер в команде кросс-платформенной инфраструктуры корпоративного супераппа VK Teams. Сегодня я продолжу рассказ о том, как мы применяем практики ChatOps в наших рабочих процессах.
Первую часть о самих практиках и мини-аппах для их реализации можно прочитать здесь. Напомню, ChatOps — модель организации работы и коммуникации внутри команды через общение, то есть через мессенджер.
Такой подход объединяет разработчиков, DevOps-инженеров, QA-специалистов, инженеров поддержки, продуктовых менеджеров, аналитиков и других участников процесса в единую коммуникационную платформу.
Мы рассмотрим открытый кросс-платформенный фреймворк OpsDroid, его возможности, напишем коннектор между OpsDroid и VK Teams, а также реализуем бота. Уверен, этот опыт откроет для вас новые возможности, которые предоставляет ChatOps.
ChatOps и корпоративные мессенджеры
Основы ChatOps

Автоматизация процессов

Здесь нам на помощь приходит VK Teams — корпоративный суперапп от VK, который объединяет в себе мессенджер для общения с коллегами, ботов для автоматизации, свой таск-трекер, видеоконференции на 100 пользователей и платформу мини-приложений.
Успешная реализация ChatOps требует не только выбора подходящих инструментов, но и создания культуры, при которой команды готовы активно использовать и вкладываться в принципы ChatOps.
Open-Source-фреймворк OpsDroid
Взаимодействие между OpsDroid и платформой мессенджера осуществляется через коннекторы. Они представляют собой абстракцию над API и протоколами, используемыми различными мессенджерами и сервисами уведомлений. Коннекторы обеспечивают унифицированный интерфейс для взаимодействия с платформами.

OpsDroid также предоставляет удобный интерфейс для создания ботов: в виде навыков (skills) — то есть модулей, которые обрабатывают входящие события (events), анализируют их, взаимодействуют с внешними сервисами, возвращают результат для обработки.
Установить OpsDroid можно удобным для вас способом на личный компьютер или сервер. Для запуска бота необходимо настроить OpsDroid в соответствии с инструкциями.
- Linux, MacOS — используйте Docker (руководство).
- Руководство для Windows.
Коннектор OpsDroid-VK Teams
Для связи VK Teams и OpsDroid можно написать простой коннектор.
## Вот его код ## Вот код реализации Подробнее пример коннектора смотрите в репозитории. Коннектор позволяет OpsDroid понимать, когда приходит новое сообщение в VK Teams, и получать его содержимое, а также самому отправлять сообщения. Коннектор можно дополнительно расширить. Например, добавить поддержку всех возможных ивентов от OpsDroid:
Или реализовать поддержку всех типов событий, которые доступны на платформе (для VK Teams см. /events/get).
Расширение коннектора увеличивает возможности навыков, которыми будут обладать ваши боты. В нашем случае добавим поддержку следующих ивентов: Reply, Forward, File, Voice, Sticker, Mention для нового сообщения, а также Edited Message, Deleted Message, Pinned/Unpinned Message, Join/Left chat для других событий в чате.
Еще OpsDroid предоставляет широкие возможности для тестирования. Принято полностью покрывать новый коннектор тестами.
## Пример бота с OpsDroid
Давайте реализуем такого же бота, который отправляет на указанный имейл сообщение, если на него был дан ответ с ключевым словом send_email. Мы будем использовать OpsDroid для создания кросс-платформенного бота, который будет работать как в VK Teams, так и в Slack и, например, в Matrix. Код не претерпит значительных изменений, мы обернем его в OpsDroid. Действия, которые мы ранее выполняли с распаковкой payload вложенного сообщения, перенесены в код коннектора, разобранный выше, в парсинг ивента типа Reply. В данном случае нам останется лишь получить содержимое ивента, которое привязано к основному:
Навык, который будет использоваться в нашем кросс-платформенном боте в файле configuration.yaml, выглядит следующим образом:
Код этого навыка для Slack отличается, так как коннектор Slack не поддерживает тип ивента Reply. Здесь мы используем разбиение с помощью constrain_connectors, чтобы в случае, если бот принял ивент в Slack, он распарсил его одним способом, а если принял в VK Teams или в Matrix — то другим, более подходящим. Коды навыка для VK Teams и Matrix идентичны.
Подробнее пример навыка смотрите в репозитории. Для более глубокого погружения используйте полную документацию OpsDroid.
Затем нам необходимо организовать структуру проекта следующим образом:
- Dockerfile*
- configuration.yaml
- skills - email_sender (имя кастомного скилла) - __init__.py
*Dockerfile — если вы запускаете OpsDroid с помощью docker.
Для этого выполним следующие команды:
Соберем нашего кросс-платформенного бота:
opsdroid config -f configuration.yaml build
Запустим в работу:
Для запуска через Docker стяните скрипт startup.sh и Dockerfile из репозитория с примерами. Затем запустите скрипт для сборки бота:
IMAGE_NAME=my_opsdroid_vkt ./startup.sh --build
Запустить скрипт можем как напрямую (для отладки и наблюдения за логами):
Так и в фоне:
И когда придет время, остановить бота:
Также можем удалить отработавший образ:
После запуска бота вы сможете написать ему личное сообщение или сообщение в групповом чате, куда он добавлен, и он выполнит нужную операцию, отправив сообщение на указанный имейл. Например, в Slack:


В VK Teams:


И в Matrix:


OpsDroid представляет собой мощный кросс-платформенный фреймворк для разработки ChatOps-решений. Благодаря способности работать одновременно на нескольких платформах, таких как Slack, MS Teams, VK Teams и других, OpsDroid обеспечивает командам гибкость и удобство при управлении операциями и взаимодействии с ботами.
### Концепция коннекторов
Концепция коннекторов упрощает интеграцию с различными сервисами, обеспечивая единый интерфейс для взаимодействия. Навыки в OpsDroid позволяют разработчикам создавать функциональность ботов, обрабатывать события и взаимодействовать с внешними сервисами. Благодаря простой установке и настройке OpsDroid является эффективным инструментом для разработки кросс-платформенных ботов, способных оперативно выполнять задачи и обеспечивать эффективное взаимодействие с пользователями.
### Готовые решения OpsDroid
Можно найти множество уже готовых решений для OpsDroid и затем интегрировать их для использования в VK Teams или другом сервисе.
Список готовых решений:
1. Решение 1
2. Решение 2
3. Решение 3
### Заключение
ChatOps представляет собой модель организации работы и коммуникации внутри команды через мессенджеры, объединяя различные роли и функции в единую коммуникационную платформу.
VK Teams как корпоративный суперапп предоставляет широкий набор инструментов для общения, автоматизации, управления задачами и видеоконференций. Успешная реализация ChatOps требует создания соответствующей культуры в команде, готовности использовать инструменты и принципы ChatOps.
OpsDroid является кросс-платформенным фреймворком для разработки ChatOps-решений. Он позволяет создать единую централизованную систему управления ботом, который может работать на различных платформах, таких как Slack, MS Teams, VK Teams, Matrix и других. Взаимодействие с мессенджерами осуществляется через коннекторы, которые предоставляют унифицированный интерфейс для обмена сообщениями, управления пользователями и получения уведомлений о событиях.
### Пример использования OpsDroid
В качестве примера использования OpsDroid был рассмотрен простой бот, способный отправлять сообщения на указанный имейл при получении определенного ключевого слова. Благодаря гибкости OpsDroid и его возможности работать на различных платформах такой бот может быть использован как в VK Teams, так и в других мессенджерах, например Slack или Matrix. Решения для VK Teams и других мессенджеров
Мы отметили возможность использования готовых решений OpsDroid, которые могут быть адаптированы и интегрированы для использования в VK Teams или других мессенджерах. Это позволяет разработчикам использовать уже существующие возможности и навыки для управления операциями и взаимодействия с ботами.
OpsDroid и VK Teams
В целом благодаря OpsDroid и интеграции с VK Teams команды могут создавать эффективные и гибкие ChatOps-решения, улучшая коммуникацию, автоматизируя рутинные задачи.
Продукты из этой статьи
- VK Teams: Объединяет все коммуникации компании в одном месте.
- SberJazz: Предлагает бесплатную версию для физических лиц и платные тарифы для бизнеса.
- Яндекс Телемост: Сервис для видеозвонков без ограничений по времени.
- TrueConf: Российское решение для видеоконференций с различными тарифами.
- Webinar: Сервисы от российского разработчика Webinar Group для видеозвонков.
Замены VK Teams для видеозвонков
SberJazz
SberJazz предлагает бесплатную версию для физических лиц и платные тарифы для бизнеса. В бизнес-тарифах есть несколько вариантов лицензий в зависимости от размера и задач заказчика. В версии для физических лиц нет ограничений по длительности звонков, но максимальное количество участников встречи до 100 человек.
Возможности SberJazz для бизнеса
- Проведение видеозвонков онлайн для 200 участников.
- Вебинары для 3000 зрителей и 100 спикеров.
- Шифрование данных и защищённые протоколы.
- Круглосуточная поддержка пользователей.
- Серверы находятся в России.
Яндекс Телемост
Сервис Яндекса для видеозвонков работает через приложения для Windows, macOS, Android, iOS, а также через версию для браузера. В нём можно созваниваться без ограничений по времени.
TrueConf
Ещё одно российское решение для видеоконференций. У TrueConf есть версия для браузера, приложения для различных ОС. Сервис предлагает три тарифа с разными возможностями. В первом бесплатном тарифе ограничение на количество участников до 10 человек.
Webinar
Российский разработчик Webinar Group предлагает четыре сервиса для видеозвонков.
Использовать сервисы можно через приложения (для Android, iOS, Windows, macOS) и веб-версии. Webinar позволяет делить участников на группы, записывать и редактировать видеозвонки, создавать тесты и опросы. После конференций можно получать статистику активности участников.
В отличие от ВК Тимс, у Webinar есть бесплатная версия, которая работает с ограничениями по времени и количеству участников: до 60 минут, до 30 человек. В платных лицензиях Webinar предлагает больше возможностей: в вебинарах может быть до 5000 участников, в крупных мероприятиях — до 100 000.
VideoMost
Российский сервис для звонков VideoMost работает на всех устройствах через веб-версию и приложения для Windows, macOS, Linux, Android и iOS. Доступны три продукта:
VideoMost позволяет общаться в чате, делиться файлами, показывать презентации, создавать опросы и голосования. Можно записывать встречи, транслировать их на YouTube. Платформа может полностью заменить VK Teams, при этом допустимое количество участников больше — до 500 человек.
Сравнение сервисов
Сравним аналоги VK Teams в виде таблицы.
Количество участниковВерсии для разных ПОПлатные лицензии в РоссииБесплатные лицензии
SberJazz До 3000 для SberJazz Webinars, до 200 для SberJazz ВКС веб, Android, iOS, Windows, macOS для физических лиц — без ограничений по времени
Яндекс Телемост до 40веб, Android, iOS, Windows, macOSверсия без рекламы
TrueConf до 1000 веб, Android, iOS, Windows, macOS, Linux, Android TVс ограничениями по участникам (10)
Webinar до 5000веб, Android, iOS, Windows, macOSс ограничением по времени (60 минут) и участникам (30)
VideoMost до 500веб, Android, iOS, Windows, macOS, Linuxс ограничениями по времени (45 минут) и участникам (100)
Замены VK Teams для общения
Ещё один российский мессенджер, доступный на Android, iOS, Windows и macOS. Он входит в подписку «Яндекс 360 для бизнеса», предлагает безопасное общение в привычном интерфейсе.
Яндекс Мессенджер использует закрытый рабочий контур, который позволяет избежать путаницы между личными и рабочими переписками. Чаты доступны только внутри компании: уволившиеся сотрудники не могут читать переписку.
Сервис использует сквозное шифрование, а коммуникация проходит по защищённому TLS-каналу. Данные хранятся в нескольких копиях на разных серверах в России.
Яндекс Мессенджер подходит для замены ВК Тимс, особенно если компания уже использует продукты Яндекса для бизнеса: все сервисы интегрируются между собой.
Pachca
Российский корпоративный мессенджер Pachca доступен в приложениях для Android, iOS, Windows, macOS, Linux, а также в веб-версии. Сервис предлагает только облачное решение (нет коробочной версии).
В отличие от VK Teams и других аналогов, у Pachca есть бесплатный тариф с ограничением по количеству сообщений: до 2000 в месяц.
Telegram
Это бесплатный облачный мессенджер, который доступен в веб-версии и приложениях для Android, iOS, Windows, macOS и Linux.
Преимущество Telegram в том, что он полностью бесплатный. Главный недостаток — сервис не заточен специально под задачи бизнеса. Из-за этого многие важные процессы не автоматизированы. Например, когда в команду приходит новый сотрудник, его нужно вручную добавлять во все чаты, а при увольнении — удалять. Кроме того, Telegram активно используют для личного общения, из-за чего сотрудники могут отвлекаться от работы.
Представим сравнение корпоративных мессенджеров в виде таблицы.
Версиивеб, Android, iOS, Windows, macOS, Linuxвеб, Android, iOS, Windows, macOS, Linuxвеб, Android, iOS, Windows, macOS, Linux
Личные и групповые чаты
Адресная книга сотрудников
Бесплатные лицензии с ограничением по числу сообщений в месяц (2000)
VK открыла коммуникационную платформу VK Teams для разработчиков. С помощью самого приложения можно планировать задачи, отслеживать события в календаре и общаться. Теперь разработчики могут создавать собственные приложения для интеграции.
VK Teams представляет собой суперапп для командной работы. Платформа объединяет мессенджер, приложение для онлайн-конференций, календарь, планировщик задач, почтовый сервис и другие рабочие инструменты. Также администраторы компаний могут встраивать сторонние сервисы и приложения. К примеру, приложения для работы с отпусками, адаптации сотрудников или для запросов бухгалтерских документов. Теперь компания открыла возможность создавать собственные приложения для интеграции с помощью JavaScript и HTML. В будущем ожидается релиз конструктора для быстрого прототипирования идей или создания простых приложений.
Многие популярные мессенджеры пошли по пути создания супераппов, а потом запустили версии для бизнеса. Команда VK изначально создавала VK Teams как коммуникационную платформу для корпоративной работы, а потом стала расширять её функциональность дополнительными сервисами: интеграцией с почтой, календарём, таск-трекером и другими инструментами. Для того чтобы платформа была более гибкой и эффективной, партнёры могут кастомизировать её под свои задачи и дополнять уникальными мини-приложениями.
Руководитель коммуникационных продуктов VK Tech Михаил Чижов
Установка новых приложений в VK Teams осуществляется с помощью специального чат-бота. После этого ссылкой на приложение можно поделиться с сотрудниками и коллегами. Также устанавливать интеграции со сторонними сервисами можно с помощью панели администратора. В таком случае новое приложение автоматически появится в меню VK Teams у всех сотрудников. Работать с VK Teams можно на любых устройствах под управлением Windows, macOS, Linux, Android, iOS или в браузере.
