Интеграционная шина данных на Apache Kafka - интеграция систем | WARP.D

Интеграционная шина данных на Apache Kafka

Системы, которые понимают друг друга - в реальном времени. Внедряем стандартными инструментами, без штата разработчиков.

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

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

Потоковый сбор: метрики, логи, кассы

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

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

Шина данных: один источник - все получатели

Второй кейс - тот самый, ради которого шину строят как основу ландшафта. Правило простое: у каждой сущности один источник, и все, кому она нужна, получают её из шины.

В компании появился новый сотрудник. В информационном пространстве он рождается один раз - когда кадровик заводит его в учётной системе: 1C, Axapta или другой ERP. Дальше без единого письма и звонка: доменная служба создаёт учётную запись и выдаёт логин, в Jira и Confluence появляются доступы, внутренний портал показывает нового коллегу, бухгалтерия видит его в расчёте зарплаты. Источник один, получателей сколько угодно.

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

Так информационный ландшафт получает свою кровеносную систему - и перестаёт быть набором островов, связанных ночными паромами выгрузок.

Что ещё умеет шина

Захват изменений из баз данных (CDC)

Изменения подхватываются прямо из журнала транзакций СУБД - системы-источники не дорабатываются вообще. Журналы транзакций - наша родная территория все 30 лет работы.

Буфер перед аналитикой

Потоки событий через Kafka заливаются в аналитическое хранилище, и дашборды показывают происходящее с задержкой в секунды. Эту связку мы строим целиком: ClickHouse, корпоративная отчётность.

Событийная архитектура

Для команд разработки Kafka - транспорт событий между микросервисами. Отдельная большая тема; работаем и с ней.

Внедрение без тяжёлого программирования

Многих останавливает представление, что внедрение Kafka - это штат разработчиков, пишущих продюсеры и консьюмеры под каждую систему. Мы идём другим путём: весь стек закрываем стандартными бесплатными инструментами. Kafka Connect подключает базы данных, ERP и файлы готовыми коннекторами - настройкой, без кода. Потоковая обработка - ksqlDB: запросы к живым потокам пишутся на SQL, языке, на котором мы работаем 30 лет. Кастомное программирование оставляем для крайней необходимости - на практике такие случаи единичны.

Важная оговорка: простота инструментов не означает простоту проекта. Ценность шины - в проектировании: топология, схемы данных, гарантии доставки, поведение при сбоях. Кривая топология на прекрасных инструментах остаётся кривой топологией, поэтому проект начинается с обследования и проектирования.

Что делаем

Обследование и проектирование: какие системы участвуют, какие сущности ходят по шине, где источник каждой из них. Развёртывание кластера Kafka с мониторингом и отказоустойчивостью. Подключение систем через Kafka Connect, настройка потоковой обработки. Документация и передача: ваша команда получает работающую шину и понимание, как с ней жить дальше - сопровождение по SLA или передача вашим администраторам, по выбору.

Состав и стоимость работ определяются после обследования.

Расскажите о задаче
Не знаете, что именно вам нужно?

Расскажите о задаче - мы предложим подходящий формат.

Связаться