Начать проект

Обсудим проект?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Отправлено!

Спасибо за заявку, мы свяжемся с вами в ближайшее время!

ESB (сервисная шина предприятия): что это такое

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, брокер сообщений, API Gateway, iPaaS и 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. Мы начинаем не с нуля: часть каркасов и решений по автоматизации уже готова, поэтому первый поток доводится до продакшена быстро — и на нём видно, нужна ли вам полноценная шина или достаточно того, что уже работает.

Расскажите, какие системы нужно связать, — разберём обмены и предложим путь под вашу задачу. Обсудить проект →

Обсудим проект?

Заполните форму или напишите нам
на airmail@code-pilots.ru
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Спасибо!

Спасибо за сообщение, мы свяжемся
с вами в ближайшее время!
success