Интеграционная шина данных на Apache Kafka
Системы, которые понимают друг друга - в реальном времени. Внедряем стандартными инструментами, без штата разработчиков.
Компания растёт, и систем становится много: кадры в одной, продажи в другой, склад в третьей, бухгалтерия в четвёртой. Одни и те же данные вносятся по несколько раз. Обмены работают ночными выгрузками: файл выгрузился в полночь, загрузился в час, упал в два - утром разбираются. Каждая новая интеграция пишется отдельно и ломается по-своему.
Информационному ландшафту нужна кровеносная система: каждая сущность - сотрудник, клиент, товар, заказ - рождается в одном источнике и по сосудам доставляется во все системы, которым она нужна. Такую систему называют интеграционной шиной данных. Мы строим её на Apache Kafka - открытой платформе, которая передаёт события между системами в реальном времени и давно стала индустриальным стандартом для этой задачи.
Потоковый сбор: метрики, логи, кассы
Первое, что Kafka делает превосходно, - принимает потоки мелких событий: метрики, логи, показания устройств, кассовые ленты. Быстро, без потерь, в любых объёмах - миллионы событий в секунду для неё рабочий режим.
Живой пример - торговая сеть. Одним нажатием новый прейскурант уходит во все магазины и применяется автоматически. Навстречу непрерывным потоком идут кассовые ленты со всех точек: продажи всей сети видны онлайн, в момент пробития чека. Утренний отчёт превращается в живую картину дня.
Шина данных: один источник - все получатели
Второй кейс - тот самый, ради которого шину строят как основу ландшафта. Правило простое: у каждой сущности один источник, и все, кому она нужна, получают её из шины.
В компании появился новый сотрудник. В информационном пространстве он рождается один раз - когда кадровик заводит его в учётной системе: 1C, Axapta или другой ERP. Дальше без единого письма и звонка: доменная служба создаёт учётную запись и выдаёт логин, в Jira и Confluence появляются доступы, внутренний портал показывает нового коллегу, бухгалтерия видит его в расчёте зарплаты. Источник один, получателей сколько угодно.
В CRM появился клиент - о нём сразу узнают учётная система и производство. По клиенту прошла отгрузка, товар готов на складе - событие идёт обратным маршрутом: менеджер видит статус в CRM, клиент получает уведомление. Никто ничего не перенабирает и не сверяет вручную: данные расходятся по шине в момент изменения.
Так информационный ландшафт получает свою кровеносную систему - и перестаёт быть набором островов, связанных ночными паромами выгрузок.
Что ещё умеет шина
Изменения подхватываются прямо из журнала транзакций СУБД - системы-источники не дорабатываются вообще. Журналы транзакций - наша родная территория все 30 лет работы.
Потоки событий через Kafka заливаются в аналитическое хранилище, и дашборды показывают происходящее с задержкой в секунды. Эту связку мы строим целиком: ClickHouse, корпоративная отчётность.
Для команд разработки Kafka - транспорт событий между микросервисами. Отдельная большая тема; работаем и с ней.
Внедрение без тяжёлого программирования
Многих останавливает представление, что внедрение Kafka - это штат разработчиков, пишущих продюсеры и консьюмеры под каждую систему. Мы идём другим путём: весь стек закрываем стандартными бесплатными инструментами. Kafka Connect подключает базы данных, ERP и файлы готовыми коннекторами - настройкой, без кода. Потоковая обработка - ksqlDB: запросы к живым потокам пишутся на SQL, языке, на котором мы работаем 30 лет. Кастомное программирование оставляем для крайней необходимости - на практике такие случаи единичны.
Важная оговорка: простота инструментов не означает простоту проекта. Ценность шины - в проектировании: топология, схемы данных, гарантии доставки, поведение при сбоях. Кривая топология на прекрасных инструментах остаётся кривой топологией, поэтому проект начинается с обследования и проектирования.
Что делаем
Обследование и проектирование: какие системы участвуют, какие сущности ходят по шине, где источник каждой из них. Развёртывание кластера Kafka с мониторингом и отказоустойчивостью. Подключение систем через Kafka Connect, настройка потоковой обработки. Документация и передача: ваша команда получает работающую шину и понимание, как с ней жить дальше - сопровождение по SLA или передача вашим администраторам, по выбору.
Состав и стоимость работ определяются после обследования.
Расскажите о задачеРасскажите о задаче - мы предложим подходящий формат.