ESB (сервисная шина предприятия): что это такое
Сначала интеграций две, потом восемь, потом кто-то уходит из компании — и выясняется, что обмен между складом и порталом держится на скрипте, который никто, кроме него, не понимал. Дальше каждая новая система добавляет не одну связь, а несколько. ESB — попытка навести в этом порядок централизованно. Мы в Code Pilots делаем продукты и интеграции под процесс заказчика, поэтому смотрим на шину со стороны эксплуатации, а не презентации вендора.
Если совсем коротко. ESB (Enterprise Service Bus, сервисная шина предприятия) — связующее ПО, через которое системы обмениваются данными не напрямую, а через один слой: он маршрутизирует сообщения, преобразует форматы, гарантирует доставку и логирует обмены.
Смысл в том, чтобы заменить клубок попарных связей одной управляемой точкой. Главный проектный вопрос — не выбор платформы, а канонический формат данных. Шину не путать с брокером сообщений, API Gateway и ETL: это разные классы систем. И она нужна не всем: при трёх-четырёх системах дороже обходится сама шина, чем обмены без неё.
Что такое ESB и какую проблему она решает
Начинается всё с интеграции точка-точка: две системы договорились о формате и обмениваются напрямую. Это нормально и правильно, пока систем мало.
Проблема в арифметике. Каждая новая система связывается не с одной, а со многими: при десяти системах попарных связей может быть до сорока пяти. Каждая — со своим форматом, своим расписанием, своим способом обработки ошибок и своим автором, который помнит, как это работает. Такой ландшафт не столько плохо работает, сколько плохо меняется: замена одной системы задевает десяток обменов.
ESB предлагает другую топологию: все подключаются к шине, а шина знает, кому что переслать и в каком виде. Вместо сорока пяти связей — десять подключений и правила внутри. Плюс появляется то, чего в точке-точке не бывает: единый лог обменов, повторная доставка при сбоях и возможность посмотреть, что вообще происходит между системами.
Типовой пример — производственный контур. Заказ создаётся в CRM, попадает в учётную систему, оттуда задание уходит в производство и на склад, статусы возвращаются обратно в CRM и в личный кабинет клиента. Без шины это пять-шесть самостоятельных обменов, каждый со своей логикой ретраев.
Как работает шина: маршрутизация, трансформация, гарантии
Внутри ESB четыре механизма, и полезно понимать каждый — от них зависит, что вы получите на проекте.
Адаптеры и подключения. Шина умеет говорить с системами на их языке: REST, SOAP, файловый обмен, очередь, прямое подключение к базе, специализированные протоколы вроде OPC UA на производстве. Для 1С обычно используют веб-сервисы или обмен через промежуточный слой.
Маршрутизация. Правила, куда отправить сообщение: по типу документа, по содержимому, по подразделению. Одно событие может уходить нескольким получателям одновременно.
Трансформация. Преобразование форматов: XML из старой системы в JSON для нового портала, переименование полей, подстановка справочных значений, обогащение данными из другого источника.
Гарантии доставки. Очереди с повторными попытками, подтверждения, хранение сообщений до успешной обработки. Именно это отличает шину от скрипта: если получатель недоступен, сообщение не теряется, а ждёт.
Всё это живёт на стороне сервера и требует нормальной серверной архитектуры — с очередями, логами и мониторингом. Шина сама является продуктом, который нужно эксплуатировать: обновлять, наблюдать, разбирать инциденты.
ESB, брокер сообщений, API Gateway, iPaaS и ETL: кто за что отвечает
Здесь чаще всего и происходит подмена: под задачу «навести порядок в интеграциях» покупают то, что решает другую задачу.
| Класс | Основная задача | Что умеет | Чего не делает |
|---|---|---|---|
| ESB | Связать разнородные системы через один слой | Маршрутизация, трансформация, оркестрация, адаптеры, гарантии | Не хранит данные для аналитики |
| Брокер сообщений (RabbitMQ, Kafka) | Транспорт и буферизация событий | Очереди, темы, огромный поток, надёжная доставка | Не преобразует форматы и не знает бизнес-логику маршрутов |
| API Gateway (Kong, Apigee) | Единая точка входа для внешних API | Аутентификация, лимиты, кеш, версии | Не оркестрирует длинные процессы, слабая трансформация |
| iPaaS (MuleSoft, Boomi, Workato) | Та же шина, но как облачный сервис | Готовые коннекторы, быстрый старт | Данные и обмены идут через облако вендора |
| ETL / ELT | Перекачать данные в хранилище для анализа | Пакетная выгрузка, очистка, загрузка в DWH | Не участвует в оперативных процессах в реальном времени |
Практический ориентир. Если задача — «событие из одной системы должно надёжно дойти до нескольких других и по пути превратиться в другой формат», это ESB. Если «нужно выдержать поток событий и развязать сервисы по времени» — брокер. Если «наружу торчит десяток API и нужен контроль доступа» — API Gateway. Если «нужны отчёты по историческим данным» — ETL и хранилище, а не шина.
На практике эти классы совмещают: шина внутри опирается на брокер, снаружи прикрыта API Gateway, а в хранилище данные уходят отдельным ETL-процессом. Ошибка не в том, чтобы использовать несколько, а в том, чтобы ждать от одного инструмента чужой работы.
Канонический формат данных: вопрос, который решает судьбу проекта
Самая важная часть проекта — и почти не встречается в обзорах ESB. Когда системы обмениваются напрямую, каждая пара договаривается о своём формате. Когда появляется шина, возникает выбор: либо она внутри переводит каждый формат в каждый, либо все говорят на одном общем языке.
Первый путь выглядит быстрее, а заканчивается тем же клубком, только внутри шины: те же попарные преобразования, просто в одном приложении. Второй — канонический формат данных: единая модель ключевых сущностей (клиент, заказ, товар, сотрудник), в которую входящее сообщение переводится один раз и из которой раздаётся всем получателям. Новая система подключается одним преобразованием, а не десятью.
Цена этого решения — договорённость на уровне бизнеса, а не разработки: что такое «заказ» и «клиент» для компании целиком. И тут проект сразу упирается в справочники: чтобы шина могла сопоставить контрагента из CRM с контрагентом из учётной системы, нужны единые идентификаторы. Если справочники расходятся, шина честно перенесёт этот беспорядок между системами быстрее, чем раньше.
Поэтому нормальная последовательность такая: сначала карта обменов и общая модель ключевых сущностей, потом выбор платформы. Обратный порядок — самая частая причина, по которой купленная шина год стоит с двумя потоками.
Синхронно или асинхронно: чем определяется выбор
Технический вопрос с прямыми последствиями для бизнеса. Синхронный обмен — «спросил и жду ответ»: подходит там, где ответ нужен сейчас и без него нельзя продолжать. Проверка лимита клиента при оформлении заказа, получение цены, подтверждение оплаты.
Асинхронный — «отправил и пошёл дальше»: сообщение ложится в очередь, получатель обработает, когда сможет. Так делают всё, что терпит секунды и минуты: передача заказов в производство, обновление остатков, выгрузка документов, уведомления.
Практическое правило: синхронных вызовов должно быть минимум. Каждый такой вызов означает, что ваша операция падает, когда падает чужая система. Асинхронность делает ландшафт устойчивым: недоступность склада на десять минут перестаёт быть остановкой продаж и становится задержкой обработки.
Обратная сторона — сложность. В асинхронном мире нужно думать про порядок сообщений, дубли и «а что если ответ не придёт никогда». Об этом ниже.
Что ломается в обменах и как это лечат
Раздел, который отличает работающую интеграцию от той, что «вроде настроена». Все эти ситуации случаются на любом более-менее живом ландшафте.
| Что происходит | Почему | Как лечится |
|---|---|---|
| Один заказ создался дважды | Отправитель не получил подтверждение и повторил отправку | Идемпотентность: получатель распознаёт повтор по ключу и не создаёт второй раз |
| Статусы пришли в неправильном порядке | Сообщения обрабатываются параллельно | Ключ партиционирования на сущность или проверка версии/времени события |
| Сообщение бесконечно падает и блокирует очередь | Некорректные данные, «отравленное» сообщение | Ограниченное число попыток и отдельная очередь для неразобранного (DLQ) с оповещением |
| Данные потерялись, никто не заметил | Нет сквозного контроля обменов | Единый лог с идентификатором сквозной операции и сверка счётчиков отправлено/принято |
| Приёмник не выдерживает поток | Пиковая нагрузка, ночная выгрузка | Буферизация в очереди, ограничение скорости, батчи вместо потока по одному |
| Расхождение справочников | Разные идентификаторы одной сущности | Соответствия в канонической модели, единый источник справочников |
Отдельно про мониторинг. Шина без наблюдаемости — это чёрный ящик: инцидент обнаруживает бухгалтер, а не система. Минимум, который стоит требовать в проекте: сквозной идентификатор операции по всем системам, дашборд с очередями и ошибками, алерты на рост неразобранных сообщений и понятный ответ на вопрос «где сейчас документ №12345».
Когда ESB не нужна
Честный раздел, которого нет у вендоров. Шина — тяжёлая инфраструктура: её нужно купить или развернуть, настроить, обновлять и кому-то за неё отвечать.
Шина, скорее всего, не нужна, если систем три-четыре и обменов между ними немного; если обмены редкие и не критичные по времени; если у вас нет и не планируется команды, которая будет её эксплуатировать. В таких случаях аккуратные точечные интеграции с нормальным логированием и ретраями обойдутся дешевле и переживут вас.
Шина оправдана, когда систем много и они продолжают появляться; когда одно событие нужно нескольким получателям; когда есть требования к надёжности и прослеживаемости обменов; когда ландшафт часто меняется, и вы не хотите переписывать десять связей из-за замены одной системы.
Промежуточный вариант, который мы часто предлагаем: не полноценная шина от вендора, а собственный тонкий интеграционный слой — очередь плюс сервис адаптеров плюс единый лог. Он закрывает 80% задач шины и не требует отдельной команды сопровождения.
ESB и микросервисы: почему шину вытесняет событийная архитектура
Если вы читаете про интеграции в 2026 году, обязательно встретите мнение, что ESB устарела. Уточним, в чём здесь правда.
В классической архитектуре предприятия, где стоят готовые системы (учёт, CRM, склад, производство) и их надо связать, шина по-прежнему уместна: у вас нет контроля над этими системами, а адаптеры и трансформации нужны.
В микросервисной архитектуре, где вы владеете всеми сервисами, ESB становится лишним центром: сервисы обмениваются событиями через брокер, внешний доступ закрывает API Gateway, а бизнес-логику маршрутов держат в самих сервисах. Шина в такой картине превращается в единую точку отказа и в место, где копится логика, которой там быть не должно, — это и называют анти-паттерном.
Практический вывод: класс системы выбирается не по моде, а по тому, чем вы владеете. Готовые системы вокруг — шина или интеграционный слой. Свои сервисы — события и брокер. Гибрид, который встречается чаще всего: внутри событийная архитектура, наружу к внешним системам — интеграционный слой.
Российские шины 2026 и импортозамещение
С рынка ушли решения, на которых у многих всё и держалось: IBM Integration Bus, Oracle SOA Suite, ограничен доступ к MuleSoft и TIBCO. Обновлений нет, поддержки нет, а обмены работают, — типичная ситуация, с которой приходят.
Что есть сейчас. DATAREON ESB — в реестре российского ПО (запись №9907), с лицензией ФСТЭК. 1С:Шина и 1С:Интеграция КОРП — логичный выбор там, где ландшафт уже вокруг 1С. Также на рынке Factor-ESB, Entaxy ION, «Интегра», Compo ESB. Из открытых решений живут Apache Camel, WSO2 и Apache NiFi — лицензий не требуют, но требуют команды.
На что смотреть при выборе:
- Реестр отечественного ПО — обязателен для госкомпаний, объектов КИИ и закупок с этим требованием.
- Адаптеры под ваш парк — 1С, ваша учётная система, промышленные протоколы, устаревшие системы без API.
- Модель лицензирования — за поток, за подключения, за ядра; на объёмах разница существенная.
- Кто эксплуатирует — есть ли у вас люди на шину или нужна внешняя поддержка; в open source этот вопрос решается только своей командой.
- Стратегия миграции — старые обмены переносятся не одним движением, нужен период, когда работают и старые связи, и новые.
Готовая шина или своя интеграционная прослойка
Три пути, между которыми обычно и выбирают. Ни один не является правильным по умолчанию.
| Критерий | Готовая ESB (вендор) | Open source (Camel, NiFi, WSO2) | Своя интеграционная прослойка |
|---|---|---|---|
| Когда подходит | Много систем, есть бюджет и требования по реестру | Есть своя сильная команда | Систем немного, задачи конкретны |
| Скорость старта | Средняя: лицензии, обучение, настройка | Медленнее: всё собирается руками | Быстро на первых потоках |
| Готовые адаптеры | Обычно есть | Частично, остальное дописывается | Пишутся под ваш ландшафт |
| Стоимость владения | Лицензии плюс поддержка | Бесплатно по лицензии, дорого по людям | Своя разработка и развитие |
| Риск | Купить больше, чем нужно | Некому поддерживать | Дорасти до потребности в полноценной шине |
Наша позиция здесь без лукавства: администрирование чужой шины как отдельную услугу мы не продаём. Мы делаем то, что вокруг: карту обменов, канонические модели, адаптеры к системам, собственный интеграционный слой там, где вендорская шина избыточна, и мониторинг обменов, чтобы инциденты видел не бухгалтер, а дежурный.
Про деньги, чтобы разговор был предметным: одна интеграция у нас стоит от 150 тыс. до 1,5 млн ₽ в зависимости от системы и требований к надёжности, продукт с интеграционным слоем под ваш процесс — от 1,7 млн ₽, аудит текущего ландшафта — 200–600 тыс. ₽.
Точную смету называем после разбора обменов: оценка проекта бесплатная — покажите, какие системы нужно связать. Если процесс нетиповой, дальше это уже заказная разработка со своими правилами.
Как внедряют: от карты обменов к первому потоку
Порядок, который снижает риск получить дорогую инфраструктуру с двумя обменами.
Шаг 1. Карта обменов. Все системы, все текущие обмены, форматы, расписания, объёмы и владельцы. Обычно на этом шаге и обнаруживается, что часть обменов дублируется, а часть работает «на честном слове» одного человека.
Шаг 2. Приоритет по боли. Выбрать один-два обмена, которые чаще всего ломаются или дороже всего стоят при сбое. Начинать с самого сложного или самого редкого — плохая идея.
Шаг 3. Каноническая модель ключевых сущностей. Договориться с бизнесом, что такое клиент, заказ, товар. Здесь же — вопрос единых идентификаторов и справочников.
Шаг 4. Первый поток целиком. Один обмен, доведённый до продакшена: адаптеры, преобразование, обработка ошибок, мониторинг, документация. Дальше он становится образцом.
Шаг 5. Перенос остальных обменов. По одному, с периодом параллельной работы старой связи и новой — «переключить всё в одну ночь» на живом ландшафте почти никогда не получается.
Шаг 6. Эксплуатация. Дежурство, алерты, регламент разбора инцидентов, кто вносит изменения в маршруты. Без этого шага проект деградирует за полгода.
Ошибки, из-за которых шина становится чёрным ящиком
Купить платформу до карты обменов. Самый частый сценарий: лицензии оплачены, а что именно интегрировать и в каком порядке — не решено. Шина год стоит с парой потоков.
Переносить попарные преобразования как есть. Без канонической модели внутри шины воспроизводится тот же клубок, только теперь он спрятан в чужом продукте.
Складывать бизнес-логику в шину. Соблазн реализовать в маршрутах правила скидок и согласований велик, а потом выясняется, что бизнес-логика живёт в интеграционном слое и никто не знает, где её искать.
Не заложить наблюдаемость. Если нет сквозного идентификатора и дашборда обменов, о проблемах узнают от клиентов, а разбор превращается в чтение логов на четырёх серверах.
Не назначить владельца. Шина без ответственного превращается в систему, которую боятся трогать. Через год любой новый обмен делают в обход неё — и всё возвращается к точке-точке.
С чего начать
Три шага, которые имеют смысл до любого выбора платформы. Первое — нарисовать карту обменов: какие системы, что кому передают, как часто и что происходит при сбое. Второе — посчитать цену проблемы: сколько стоят расхождения данных, ручные сверки и простои из-за сломанных обменов. Третье — определить, кто будет эксплуатировать интеграционный слой.
Первые два шага быстро закрываются внешним взглядом — это обычная работа в рамках аудита кода и архитектуры: по её итогам видно, нужна ли вам полноценная шина, хватит ли брокера с адаптерами или проблема вообще в справочниках, а не в транспорте.
Часто задаваемые вопросы
Это программный слой, через который системы компании обмениваются данными не напрямую, а централизованно. Шина принимает сообщение от одной системы, при необходимости преобразует формат, направляет нужным получателям и гарантирует доставку, сохраняя лог обмена. Вместо десятков попарных связей появляется одна управляемая точка с правилами внутри.
Брокер — это транспорт: очереди, темы, надёжная доставка, буфер между системами. Он не преобразует форматы и ничего не знает о бизнес-маршрутах. ESB работает уровнем выше: содержит адаптеры к системам, правила маршрутизации, преобразование данных и оркестрацию процессов, а внутри часто использует брокер как транспорт. Это дополняющие, а не конкурирующие вещи.
Обычно нет. При трёх-четырёх системах и небольшом числе обменов шина обходится дороже, чем аккуратные точечные интеграции с логированием и повторными попытками. Шина оправдана, когда систем много, они продолжают появляться, одно событие нужно нескольким получателям и есть требования к прослеживаемости обменов.
Это единая модель ключевых сущностей компании — клиент, заказ, товар, сотрудник, — в которую входящее сообщение переводится один раз и из которой раздаётся всем получателям. Без неё шина превращается в набор попарных преобразований, то есть в тот же клубок, только внутри одного продукта. Подключение новой системы с канонической моделью стоит одно преобразование вместо десяти.
В реестре отечественного ПО есть DATAREON ESB (запись №9907, лицензия ФСТЭК); для ландшафтов вокруг 1С подходят 1С:Шина и 1С:Интеграция КОРП; также на рынке Factor-ESB, Entaxy ION, «Интегра», Compo ESB. Из открытых решений используют Apache Camel, WSO2 и Apache NiFi — лицензий не требуют, но требуют своей команды. Выбор зависит от адаптеров под ваш парк систем и от того, кто будет шину эксплуатировать.
Разработка с Code Pilots
Code Pilots — студия заказной разработки полного цикла: веб- и мобильные продукты с нетривиальной бизнес-логикой, интеграциями и высокими нагрузками. В интеграционных проектах мы делаем прикладную часть: карту обменов и канонические модели, адаптеры к 1С, учётным и отраслевым системам, собственный интеграционный слой там, где вендорская шина избыточна, и мониторинг обменов с разбором инцидентов.
Внутри — сильная in-house команда: аналитики с отраслевой экспертизой, разработчики, QA и DevOps. Мы начинаем не с нуля: часть каркасов и решений по автоматизации уже готова, поэтому первый поток доводится до продакшена быстро — и на нём видно, нужна ли вам полноценная шина или достаточно того, что уже работает.
Расскажите, какие системы нужно связать, — разберём обмены и предложим путь под вашу задачу. Обсудить проект →