ESB — интеграции между приложениями надежно, быстро и безопасно
ESB является отказоустойчивой реализацией абстракции передачи сообщений между любыми приложениями. Ваши сервисы (CRM, PIM, сайт, и т.п.) становятся проще в поддержке, интеграции делаются быстрее. Без шин или брокеров событий не возможно правильное построение SOA (и MSA).
Без шин отсутствует чёткое понимание, какая из систем сработала некорректно, порой даже разработчики не всегда могут помочь в этом вопросе. Логирование и контроль изменений размазан между разными программами. Изменения в интерфейсах нужно публиковать и тестировать совместно с другими системами. Возможность передачи интеграций в службу эксплуатации без сложной обвязки внутри приложений затруднена.
Интеграция формата «точка – точка» обладают классическими проблемами монолитной системы: вначале выглядят относительно просто, однако совсем скоро начинает стремительно усложняться. По мере роста проекта количество интеграций увеличивается, а качество управления этими связями снижается. Каждая система обрастает множеством коннекторов для одного и того же типа сообщений (например, когда сущность «заказ» нужно передать в ERP одним образом, а в CRM — другим). Абстракция сообщений отсутствует.
Без ESB для каждой модификации необходимо подключать разработчика конечных систем, даже если изменения просты. При изменении одной из систем вместо корректировки одного общего сообщения вам понадобится изменить и проверить множество интеграций, что может потребовать участия разработчиков конкретного продукта (например, SAP) и увеличить сроки интеграции. Более того, со временем сами разработчики проекта перестают ориентироваться в его архитектуре, а отсутствие самодокументируемых систем только затрудняет понимание.
Запутанность архитектуры проекта
Сложность модификации
Сложность поддержки
Архитектура проекта без ESB — классический монолит
Возможности ESB-СИСТЕМЫ
Маршрутизация
ETL решения в ESB слое дают возможности создавать микросервисы для отправки сообщений — в зависимости от их содержания, с преобразованиями, и в соответствии с заданными правилами. Вы можете фильтровать и объединять сообщения, а также самостоятельно получать данные из одной системы по любому API и передавать их в другие системы.
Преобразование данных
Внутри интеграционной шины вы можете настроить правила преобразования сообщения от одной системы для отправки в другие системы. На уровне коннектора (микросервиса) один поток может быть проверен, распараллелен, по-разному преобразован и отправлен в соответствующие системы.
Масштабируемость
Корпоративная сервисная шина имеет собственные механизмы планирования и распределения нагрузки, с помощью которых вы можете настраивать индивидуальную логику приёма и отправки данных из разных систем и приложений и следить за их загруженностью. Например, если днём ваша CRM может принимать 100 транзакций в минуту, а ночью — 500, ESB учтёт эту логику и не перегрузит ваши системы.
Low-code платформа
Сервисная шина ESB обладает средствами быстрой разработки, состоящей из большой палитры уже запрограммированных действий, например:
чтобы получить/отправить сообщение по JSON или в виде XML на FTP;
чтобы получить/отправить данные о товаре из одной системы, а при отсутствии нужного атрибута «сходить» за ним в другую систему и затем поместить в очередь для размещения в третьей системе.
Как правило, в ситуациях, требующих изменения логики, эти модификации обходятся несколькими строками кода, а иногда даже одной.
Самодокументируемость
Все действия с сообщениями визуализированы и просты для понимания: при соблюдении элементарных правил нейминга любой бизнес-аналитик может быстро разобраться, как устроена интеграция и что необходимо поменять. При этом код интеграции может быть упакован и развёрнут в автономном сервисе (JAR или Docker-образе).
Talend ESB. Законченный микросервис
Ускорение интеграции с маркетплейсами
Наличие ESB-слоя в IT-контуре предприятия позволяет, сохраняя полный контроль над исходным кодом интеграционных микросервисов, упростить логику интеграций, сделать их быстрыми и предсказуемо работающими без необходимости дополнительной разработки в конечных системах, где хранится информация о товарах, ценах и складских остатках.
ETL — low-code системы, позволяющие быстро создавать микросервисы со сколь угодной гибкостью, где не требуется команда разработчиков и сотни часов работы — бо́льшую часть работы сможет сделать бизнес-аналитик в RAD-среде (при помощи мышки), оставив разработчикам только наиболее сложные части. Преимущество заключается в том, что разработчикам не нужно изобретать велосипед или готовить эксклюзивные решения под проект.
ESB предоставляет вам единый центр событий (включая отправку логов в другие сервисы), настройки, конфигурирования и просмотра очередей и потоков. При необходимости вы можете сделать некоторые интеграции полностью независимыми — в виде микросервиса.
Централизованное и децентрализованное управление (по требованию)
Простота разработки
Сервисная шина данных обеспечивает раннее выявление проблем при помощи мониторинга и позволяет полностью закрыть часть интеграций от внешнего мира. Многие ESB поддерживают EIP'ы (сокр. от англ. external identity provider), позволяющие централизованно управлять доступами и разрешёнными действиями с учётом всех особенностей интеграций.
Вместо наличия модулей интеграции с дублирующейся логикой, ваши ERP, CRM, WMS, OMS, PIM системы просто должны иметь общее, универсальное API. В подавляющем большинстве случаев, это позволяет полностью избавиться от индивидуальной интеграционной логики в конечных системах.
Уменьшение кодовой базы
Мониторинг аномалий
Архитектура проекта с ESB
Из чего состоит ESB
Обеспечивает управление централизованными функциями, включая компоненты логирования и предоставление интерфейса для просмотра очередей.
Используются для подключения к различным системам. Определяют, где брать данные и куда их отправлять. Работают на ваших серверах и имеют понятный исходный код (обычно, Java)
Ревизор
Коннекторы (ETL)
Брокер сообщений
Определяет и контролирует очерёдность отправки и принятия сообщений между приложениями в режиме реального времени.
Позволяет бизнес-аналитику работать в сервисной шине ESB самостоятельно, без привлечения команды разработки, что обеспечивает low-code всех интеграций и уменьшает число потенциальных проблем в коде. При этом вы сохраняете контроль над исполняемыми файлами в рамках самой интеграции.
Конструктор интеграций (ETL)
Отраслевые решения
ASICS — японская компания, производящая спортивную обувь и одежду.
Решение Используя ESB, ASICS создали API-интерфейсы и позволили новой e-Commerce-платформе получить доступ к информации о клиентах, статусах заказов, инвентаризации, ценах — словом, ко всем данным, которые ранее находились в разных хранилищах. Более того, интеграция ESB упростила одну из самых сложных частей проекта — налаживание связей, что в итоге потребовало всего несколько часов разработки.
E-Commerce
British Petroleum (сокр. BP) — транснациональная нефтегазовая компания с сетью АЗС по всему миру.
Решение C помощью ESB BP создала сеть приложений, поддерживаемых API-интерфейсами. Это позволило ускорить разработку и масштабирование приложений, обеспечивая безопасную передачу данных. Теперь BP может обрабатывать более 290 тысяч транзакций ежедневно.
Энергетика
Siemens — крупнейший европейский производитель электроники.
Решение Благодаря ESB Siemens повысила скорость разработки проектов на 50 % и сократила время, необходимое для предоставления новых MVP проектов, вдвое. Интеграция ESB помогла заложить основу для дальнейших интеграций по мере развития бизнеса.
Производство
НАШИ КЕЙСЫ
Интеграция Talend ESB в IT-инфраструктуру логистической компании
Клиент
FM Logistic — международная логистическая компания, предоставляющая услуги по складскому хранению, обработке и упаковке грузов, а также управлению цепями поставок.
Задача
Число проектов у клиента постоянно растёт. Необходимо было найти решение, которое ускорит разработку и интеграцию новых систем, а также позволит менеджерам выполнять элементарные задачи самостоятельно, без участия разработчиков.
Интеграция Pimcore для автоматизации бизнес-процессов и управления данными
Интеграция IT-инфраструктуры e-Commerce-проекта с маркетплейсами при помощи WSO2 ESB
Клиент
Polaris — швейцарский бренд бытовой техники и посуды, продающий товары через маркетплейсы и собственный интернет-магазин.
Задача
На момент начала работ заказчик взаимодействовал со всеми маркетплейсами вручную. Данные о товарах для каждого маркетплейса отличались, тратилось много времени на заполнение карточек товаров, беря информацию из разных источников. Настроить централизованную систему для управления данными о товарах и интегрировать её с ERP заказчика и маркетплейсами.
Интеграция Kafka в enterprise-инфраструктуру проекта
Клиент
Крупный производитель и ретейлер мягкой и корпусной мебели, матрасов и товаров для сна.
Задача
Заказчик хотел, чтобы механизм транспортировки данных был легковесным, без сложной логики, и выполнял исключительно функцию передачи сообщений из одной системы в другую. При этом нужно было учитывать потребность компании в слабой взаимосвязанности систем, чтобы при необходимости убрать одну из них или заменить на другую.
Kafka Connect — фреймворк для Kafka, обеспечивающий ETL слой в философии code-first. Этот фреймворк позволяет брокеру выступать в роли сервисной шины ESB.
WSO2 ETL — корпоративная сервисная шина, позволяет создавать интеграции и собирать API. Обладает удобной стратегией лицензирования. В философии low-code.