Как и обещали в первой части кейса, рассказываем о том, какой стек использовала IT-команда Сбера при работе над проектом с большими данными. Для тех, кто её не читал: благодаря этому проекту разработчики научились эффективно взаимодействовать с «бизнесом», пройдя через кризисные точки. Но в этой части речь пойдёт не об оптимизации работы IT-отдела, а о технической изнанке проекта.
Напомним, что в этом блоге мы рассказываем нашим потенциальным коллегам о том, какие проекты, технологии и команды есть сейчас в Сбере и что вас ждёт, если вы к нам присоединитесь. Поэтому сегодня в конце тех-кейса мы немного расскажем про саму IT-команду на тот случай, если вы размышляете о работе у нас.
IT-команда Сбера разработала внутреннюю систему онлайн-мониторинга, которая позволяет видеть всю предысторию обращений клиента-юрлица и оперативно реагировать на его вопросы. Эта система объединяет в текстовом формате все клиентские входящие, разрозненные по каналам взаимодействия: почте, мессенджерам, телефонным переговорам.
В проекте используется всего один инстанс БД PostgreSQL. А именно: Postgres Sber Edition (разработка Сбера), которую команда решила использовать в рамках импортозамещения. Заодно нужно было посмотреть, как эта БД будет работать с высоконагруженными данными и сможет ли заменить Spark, Hadoop, Kafka Streams и другие инструменты, которые обычно компании используют для работы с большими данными. Плюс это решение позволяло команде быстро выкатить MVP системы, которая, напомним, должна была стать первой на рынке — а значит работать надо быстро.
Из чего состоит система онлайн-мониторинга и в чём основной принцип её работы
Система состоит из двух частей:
Рабочее место сотрудника службы мониторинга
Ядро системы
Рабочее место сотрудника службы мониторинга
Здесь отображается облако тегов за определённый период времени (например, сутки). В тегах наиболее часто употребляемые значимые слова увеличиваются в размере — так можно понять, какая задача требует неотложного внимания (например, слова «кредит» или «штраф»).
Для того чтобы оператор смог понять, перерастает ли ситуация в инцидент, у него есть индикатор-светофор: зелёный — всё хорошо; жёлтый — значимое слово стало употребляться чаще, возможно начало инцидента; красный — слишком частое употребление, инцидент.
Для «отлавливания» инцидентов был создан экран, где видно все диалоги между клиентами и операторами в данный момент времени. Инцидентные диалоги подсвечиваются. Сотрудник службы мониторинга может подключиться к диалогу и посмотреть его в текстовом формате буквально по репликам участников.
В облаке тегов можно кликать по всем словам большого размера, и так выходить на список всех диалогов с клиентами, где это слово фигурирует чаще других — так можно оперативно отвечать на вопросы о проблеме, которая стала типовой на данный момент (например, не работает какая-нибудь функция приложения), а также находить закономерности в недочетах клиентского обслуживания банком.
Ядро системы
Ядро приложения построено на микросервисной архитектуре. Оно интегрируется с разными системами банка:
Телефонией Avaya для отслеживания телефонных диалогов между клиентами и операторами.
Системой SmartSpeech (транскрибатор, разработка компании СберДевайсы), которая процессит аудиотрафик и транскрибирует его в текст с помощью ИИ-обработки текстов на естественном языке (Natural Language Processing, NLP) и распределённого программного брокера сообщений Kafka. Транскрибированный текст сохраняется в базу данных.
Интеграционной платформой Synapse (событийный сегмент, разработка SberTech) для получения данных через Kafka.
К базе данных подключается инстанс приложения, который ищет необходимые данные и отправляет их на Python-модули с AI-моделями. Модели обрабатывают данные, затем снова кладут их в БД.
Как происходит транскрибация телефонных переговоров
Интеграционный модуль AES (Application Enablement Services) по специальному интерфейсу GET ip подсоединяется к телефонии Avaya и собирает всю информацию о телефонном звонке в самом его начале. В этот же момент модуль отправляет метаданные звонка в транскрибатор SmartSpeech, который также подключён к Avaya. Здесь стартует процесс транскрибации текста: транскрибатор получает от Avaya RTP-трафик в виде звука и специальным инструментом для анализа преобразует его в печатный текст. После этого SmartSpeech отправляет текст в корпоративную сервисную шину Сбера, откуда он попадает в компиляционный модуль нашей системы, который сохраняет данные в базу. Всё это происходит в реальном времени, что накладывает определённые сложности.
SmartSpeech начинает транскрибировать фразы в тот момент, когда между ними появляются длинные паузы (так же, как человек, он «понимает» по паузе, что фраза завершена). Kafka откидывает транскрибированные сообщения, а специально разработанный IT-командой сервис в многопоточном режиме за миллисекунды вычитывает их. Так достигается возможность посмотреть диалог в онлайне в режиме реального времени. С помощью такой системы можно много что узнавать о клиентах (о том, что конкретно можно узнавать и как эти знания использовать, мы расскажем в следующей статье о проекте).
Чем интересна и одновременно сложна работа на этом проекте
Команда разработала и пользовательское приложение (фронтенд), и ядро (бэкенд), которое интегрировано со многими службами банка и представляет собой узловое звено высоконагруженной системы. Через эту систему постоянно идёт поток больших данных, которые не просто транскрибируются и отображаются. Диалоги из этих данных проходят обработку моделями искусственного интеллекта, то есть система позволяет анализировать и хранить аналитические данные диалогов, чтобы потом эффективно использовать в маркетинговых целях.
Знаете, пожалуй, пора перестать скромничать и сказать, что в проекте применяются самые передовые технологии и программы из сегодняшнего мира IT: микросервисы, контейнеры, ИИ, Big Data, речевые технологии, OpenShift, Kafka, Java Spring и другие. Полноценно используются эффективные мировые методологии разработки (DevOps, Agile, Git-flow), а команда старается использовать подход объединения разных путей с одной целью.
Радует то, что в результате оптимизации работы IT-отдела, о которой мы рассказывали в первой части, у разработчиков есть возможность осваивать эти технологии, пытаться выжать из них максимум, тестировать свои версии. Разработчики Сбера утверждают из своего предыдущего опыта, что мало какая российская компания выделяет столько времени на тщательное изучение современных высоких технологий. При этом в разработке не происходит задержек — релизные циклы совпадают с двухнедельными спринтами. А один из разработчиков, который приехал работать к нам из Европы, говорит, что только в Сбере он нашёл такой подход к взаимодействию в IT-команде, которому его обучали в европейском университете и который принят в продвинутых мировых компаниях.
В заключение хочется дать небольшое пояснение насчёт особенностей работы в IT-команде Сбера. Некоторое время назад в Департаменте корпоративной архитектуры Сбера произошли кардинальные изменения, которые поддерживают новые цели всей экосистемы: внедрение передовых IT-продуктов и сервисов, масштабные инновации, конкурирование с глобальными технологическими компаниями. Благодаря этому вектору, у разработчиков в Сбере есть возможность использовать почти любые технологии, пробовать любые методы. Что ж, это и делает работу над подобными сложными проектами в Сбере интересной и по-настоящему творческой!