Свяжитесь с нами
Спасибо

Мы получили заявку и свяжемся с вами в ближайшее время

ВЕРНУТЬСЯ НА ГЛАВНУЮ
Свяжитесь с нами
Ошибка

Не удалось отправить заявку, повторите позже

ПОПРОБОВАТЬ ЕЩЁ РАЗ
ESB: как сервисная шина предприятия...
ВРЕМЯ ЧТЕНИЯ
7 мин.
3082

ESB: как сервисная шина предприятия упрощает обмен данными в крупных ИТ-проектах

Head of development департамент e-commerce
ГК «КОРУС Консалтинг»

ИТ-архитектура больших e-commerce-компаний обладает десятками связанных между собой сервисов — CRM, OMS, ERP, PIM, WMS и другими. Их программная база может отличаться, но данные, такие как карточки товаров, остатки на складах, заказы, транзакции должны корректно и быстро передаваться от одного сервиса к другому. В этом бизнесу помогает сервисная шина предприятия.

О ее устройстве, преимуществах для бизнеса и этапах внедрения рассказывает Сергей Рабинович, руководитель производства департамента e-commerce, ГК «КОРУС Консалтинг».

 

Что такое Enterprise Service Bus и как она устроена

Сервисная шина предприятия — это связующее программное обеспечение, которое упрощает межсервисное взаимодействие. Чем масштабнее компания, тем больше в ее инфраструктуре интегрированных программ. Одни авторизуют пользователей, другие позволяют отслеживать остатки на складах, какие-то хранят информацию о пользователях, кредитных картах или историю транзакций. Модели данных, протоколы и ограничения безопасности каждого сервиса отличаются. 

Раньше, чтобы связать один сервис с другим и наладить обмен данными между ними, разработчикам требовалось выполнить интеграцию для каждой пары сервисов по принципу point-to-point. Если сервисов сотни или даже тысячи, поддержка такой махины становится слишком сложной и ресурсозатратной, а любые изменения или обновления одной программы сразу затрагивают работу всех остальных. 

Эта проблема часто напрямую сказывается и на пользовательском опыте — приложения начнут выдавать ошибки и долго загружаться. В долгосрочной перспективе это может привести к тому, что клиенты начнут выбирать более удобные продукты конкурентов. 

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

интеграция ESB.png

Пример интеграции различных приложений через ESB. Источник: testgrow.ru

Шина предприятия традиционно является частью сервис-ориентированной архитектуры (SOA). Это способ построения программного обеспечения, при котором разные части приложения, называемые сервисами, работают вместе по одним стандартам и протоколам. SOA позволяет объединять разные сервисы, создавая новые приложения или улучшая существующие на основе готовых шаблонов, а не с нуля. 

Однако у такой концепции есть ряд недостатков — она довольно громоздкая, дорогая с точки зрения поддержки, а апгрейд хотя бы одного модуля требует того же самого для остальных. SOA сложно назвать гибкой, поэтому часто компании прибегают к еще одному решению — микросервисной архитектуре

Эта архитектура — своего рода усовершенствованная SOA, которая состоит из более мелких сервисов. Каждый из них работает независимо от других. При таком раскладе шина выполняет роль брокера, как бы «переводя» сообщения из одного формата в другой, понятный другим сервисам. 

Основные функции ESB

Enterprise Service Bus имеет ряд важнейших функций для крупных предприятий с развитой ИТ-инфраструктурой.

Передача сообщений. Шина действует как посредник, который принимает сообщения и отправляет их по нужным «адресам».

Преобразование данных. Часто системы используют различные форматы данных, например, XML, JSON, CSV. ESB способна преобразовать один формат в другой, обеспечивая их совместимость и согласованность.

Трансформация протоколов. ESB работает с различными протоколами связи — HTTP, JMS, SOAP, REST — и обеспечивает их взаимодействие, преобразовывая сообщения в нужный протокол. Поэтому интеграция получается гибкой и универсальной. 

Безопасность. ESB защищает передаваемую информацию с помощью различных механизмов шифрования, аутентификации, авторизации и контроля доступа.

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

маршрутизация.jpeg

Пример маршрутизации сообщений через шину предприятия Red Hat JBoss Fuse. Источник: habr.com

Компоненты и архитектура ESB

Шина. Центральный канал передачи информации, через который приложения «общаются» друг с другом. Она обеспечивает надежную и безопасную доставку информации, независимо от того, где находятся приложения. 

Адаптеры. Программные модули, которые преобразуют форматы данных и протоколы разных приложений. Они позволяют шине взаимодействовать как с устаревшими, так и современными системами.

Маршрутизаторы. Компоненты, которые отправляют сообщения по правильным адресам, исходя из их содержимого и правил маршрутизации.

Преобразователи. Модули, которые преобразуют формат сообщения в соответствии с требованиями приложения-получателя. Сюда отнесятся изменение структуры данных, кодировок и форматов файлов.

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

Модуль управления. Обеспечивает мониторинг, управление и администрирование ESB. Он позволяет пользователям отслеживать статус интеграций, настраивать правила маршрутизации и управлять ресурсами.

Типы архитектур ESB

Их несколько и каждая имеет свои преимущества и недостатки.

Централизованная. Все компоненты размещены на одном сервере. Это простая и легко управляемая конструкция, но иногда она оказывается недостаточно масштабируемой для больших предприятий.

Распределенная. Компоненты разнесены по нескольким серверам. Это более масштабируемая и надежная архитектура, но управлять ей сложнее. 

Гибридная. Сочетает в себе элементы централизованной и распределенной архитектур.

В чем плюсы ESB для бизнеса

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

Например, в маркетплейс нужно внедрить OMS и Billing System. Если придерживаться концепции «от точки к точке», потребуется по отдельности соединить новые системы с сотнями других систем, которые общаются с десятками сервисов. Более эффективным вариантом будет внедрить шину и интегрировать ее со всеми системами, настроив маршрутизации внутри самой шины.

Достоинства ESB 

Среди преимуществ технологии: 

Автоматизация процессов

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

Согласованность данных

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

Повышение эффективности ИТ

ESB предоставляет централизованную платформу для интеграции. Этот подход устраняет необходимость в point-to-point-решении и сокращает затраты на техническое обслуживание.

Недостатки 

Несмотря на ряд преимуществ, ESB, как и любая технология, имеет свои минусы.

Сложность внедрения

Переход к централизованной интеграции требует четкого понимания процесса и тщательного планирования. Если проигнорировать анализ текущей системы предприятия и ее слабых сторон, запуск ESB может затянуться на полгода и даже больше из-за правок ИТ-архитектуры.

Производительность

В некоторых случаях ESB становится узким местом системы, особенно при больших объемах данных или высокой частоте запросов. Упрощая интеграции, шина сама по себе становится более масштабной и «сложносочиненной» системой.

Стоимость

Запуск и поддержка ESB требуют значительных инвестиций в зависимости от выбранного решения и масштаба проекта. Однако, обслуживание устаревшей системы в долгосрочной перспективе обходится компаниям еще дороже.

Как внедрить Enterprise Service Bus

Как правило, компании обращаются к ESB, столкнувшись со следующими проблемами:

  • Масштабирование бизнеса и добавление новых сервисов без шины будет слишком долгим и дорогостоящим 

  • Большое количество интеграций по схеме point-to-point и их поддержка отнимает у разработчиков много времени и ресурсов

  • В ИТ-инфраструктуре бизнеса обнаружили «точку отказа» — систему, нарушение работы которой приводит к сбоям других систем, даже если они не взаимосвязаны

Внедрение ESB можно разбить на 5 глобальных этапов:

внедрение.jpg

Источник: kt-team.ru

Однако вначале важно уделить внимание планированию и аудиту существующей системы, чтобы не переносить старые проблемы в новый ландшафт.

Нужно описать текущую архитектуру, установить связи между сущностями системы, выявить дублирования и конфликты в данных, а также определить их мастер-системы.

Место хранения 

ESB может располагаться как на собственных серверах компании, так и в облачном хранилище. У каждого хранилища есть свои плюсы и минусы. Например, собственный сервер даст больше свободы в масштабировании ИТ-инфраструктуры и обеспечит лучшую безопасность данных. В то же время облачное хранилище развертывается и настраивается быстрее, а его стоимость ниже.

Среда для разработки интеграций

Среда должна поддерживать инструменты для моделирования, разработки, тестирования и отладки интеграций. Популярными вариантами являются платформы VisualStudio, Apache Camel, Datareon, которые предоставляют интуитивно понятные интерфейсы и широкие возможности для интеграции.

Стек компонентов

На данном этапе необходимо определить, какие компоненты и технологии будут использоваться для реализации ESB-слоя. Это может включать в себя выбор серверов приложений, баз данных, систем обмена сообщениями и других компонентов. 

Внедрение

На этом этапе происходит развертывание компонентов ESB на серверах компании или в облачном хранилище. Планируются сценарии интеграций: что и по каким триггерам ESB-слой будет забирать из различных сервисов и каким программам передавать, где хранить информацию и как пополнять эти хранилища. Далее интеграции реализуют по расписанным ранее сценариям. Потом систему отлаживают, тестируют и проверяют на ошибки. 

Подготовка инструкции

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

Примеры внедрения ESB в бизнес

Рассмотрим несколько российских компаний, которые занимаются внедрением сервисных шин предприятия, а также изучим их успешные кейсы.

1C:Шина

1С:Шина используется для взаимодействия различных подсистем — как внутри платформ, так и в кроссплатформенных экосистемах. Это решение предоставляет широкий спектр возможностей: обработку, преобразование и маршрутизацию сообщений, единую точку входа и выхода для всех систем, единый инструмент мониторинга и управления интеграционными потоками, доступ из браузеров Chrome, Firefox, Microsoft Edge и Safari. 

У 1C:Шина также есть собственная среда разработки, в которой можно работать всей командой, а также использовать синтаксис-помощника.

1CШина.png

Самые разные интегрированные системы, которые общаются друг с другом с помощью 1С:Шина. Источник: v8.1c.ru 

Кейс МПР (Магазин постоянных распродаж)

«Магазин Постоянных Распродаж» — это всероссийская сеть розничных магазинов самообслуживания, которая продает 5000+ различных товаров для дачи и дома по доступным ценам. 

Компания столкнулась со следующей проблемой

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

Как стало после внедрения 1С:Шина 
  • Появилась возможность отправлять общие сообщения сразу всем магазинам

  • Время на отправку информации сильно сократилось. Если раньше нужно было отправлять 50 сообщений для 50 магазинов, то теперь достаточно одного.

  • «1С:Шина» гарантирует доставку сообщений, поэтому сразу после отправки можно удалять регистрацию изменений.

  • Удобно следить за состоянием узлов обмена. Если какой-то узел недоступен, это сразу видно в интерфейсе.

  • «1С:Шина» помогла создать решение для автоматической проверки и исправления расхождений данных между базами.

KT.Team

Компания разрабатывает и поддерживает enterprise-интеграции на разных условиях — по подписке, где обслуживание ESB будет происходить в датацентре компании, либо на серверах клиента по фиксированной цене. В отличии от 1С:Шина, KT.Team работает не со своей разработкой, а с популярными в России ESB-решениями, такими как Mule, Talend, Kafka Streams, WSO2, DATAREON.

Кейс FixPrice

FixPrice — сеть магазинов с товарами для дома по низким фиксированным ценам. По отчетам, в 2023 году у сети было 5 800 магазинов, а также появился запрос на развитие онлайн-торговли. В IT-инфраструктуру FixPrice входит онлайн-магазин, система учета, ERP и система управления складами. В последнюю загружают все данные о товарах, которые продаются в сети.

Карточки товаров при этом создавались вручную либо полуавтоматически — с помощью заявки через портал поставщика. После того, как поставщик заполнит карточку товара, об этом нужно было сообщить остальным системам. Такой трудоемкий процесс неизбежно приводил к тому, что в карточки были неполными и с ошибками.

Как стало после внедрения ESB разработчиками KT.Team

Карточка товара заполняется в личном кабинете и передается всем системам, начиная с PIM. При этом информация о товаре не попадет в систему №2, если были нарушены правила публикации в системе №1. Все это гарантирует, что в карточку товара попадают только достоверные данные.

fixprice.png

Источник: kt-team.ru

Еще одним плюсом стала экономия времени поставщика и контент-менеджера, которые ранее вручную занимались заполнением карточек товаров. ESB позволила автоматизировать процесс загрузки сведений о товарах. Теперь эта процедура происходит через личный кабинет поставщика, а обрабатывается в PIM FixPrice.

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

***

«КОРУС Консалтинг» может выполнить e-commerce-проект любой сложности. Если у вас остались вопросы или требуются партнеры в разработке e-commerce-проекта для бизнеса — оставьте заявку в форме ниже или напишите на адрес omni@korusconsulting.ru. Мы с вами свяжемся.


Подпишитесь на наши обновления

Раз в месяц присылаем полезные материалы и новые статьи из блога.

Некорректно заполнен e-mail

Читайте также

Как статический анализ на основе PHPstan позволил снизить число ошибок на проекте и получить стабильный код 9 мин. 05 декабря 2024
B2B E-COMMERCEТЕХНОЛОГИИ
Александр Яровой
Пять ошибок клиентского сервиса, из-за которых бизнес теряет заказы. И как их избежать 12 мин. 04 октября 2024
E-COMMERCEИНТЕРНЕТ-МАГАЗИНЫB2B E-COMMERCEТРЕНДЫ
Мария Бар-Бирюкова
Ценообразование в интернет-магазине: как выбрать выгодную стратегию и сохранить спрос  13 мин. 06 сентября 2024
E-COMMERCEИНТЕРНЕТ-МАГАЗИНЫТЕХНОЛОГИИ
Сергей Воробьев
Подпишитесь на наши обновления

Раз в месяц присылаем полезные материалы и новые статьи из блога.

Некорректно заполнен e-mail


наверх
ЧИТАЙТЕ НАС В TELEGRAM
еКОМната — нишевое медиа о e‑commerce и B2B. Только экспертиза, цифры и кейсы
ПОДПИСАТЬСЯ