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

Сравнение ESB-решений, популярных на российском рынке.

Часть 2: особенности систем

27/09/2021
Продолжаем цикл статей о ESB-системах, популярных на российском рынке.

В прошлой статье мы рассматривали, как в системах Talend, Mule, Red Hat Fuse и WSO2 реализованы компоненты ESB-слоя: студия, брокеры сообщений, мониторинг, логирование. Теперь подробнее остановимся на том, что представляет собой каждая из этих систем, как выглядит их интерфейс, каковы свойственные им плюсы и минусы в разработке и поддержке интеграций. В дополнение мы поделимся собственными впечатлениями от реализации каждой из этих систем.

Зачем в проекте ESB: техническая сторона вопроса

Одно из наиболее частых возражений против использования ESB-слоя в архитектуре компании или отдельного проекта — независимые системы можно связать и без «посредников». Достаточно разработать в одной из этих систем модуль интеграции или использовать, к примеру, API.

Давайте рассмотрим эти варианты подробнее.

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

Плюс команде разработки придётся делать «обвязку» системы, чтобы контролировать работоспособность интеграции. А это непростая и объёмная задача. Нужно не только разработать интеграцию, которая работает без сбоев, но и дать команде поддержки понятные регламенты работы с теми сбоями, которые всё же могут возникнуть.

И даже если интеграция работает здесь и сейчас, нет никакой гарантии, что она будет работать завтра. И тем более нет гарантии, что команда разработки узнает об «отвалившейся» интеграции раньше, чем к ней придёт заказчик с претензией: «У меня не работает обмен данными».

Второй вариант — передача данных через интерфейс API или, к примеру, GraphQL. Тут есть нюанс: API, который система использует для обмена данными с внешним миром, пассивен. Система может только отвечать на запросы — отдавать данные вовне или изменять их по «инициативе» другой системы.
rus: Две пассивные системы с API без ESB-шины
В итоге две интегрируемые системы будут ждать друг от друга «инициативы» для передачи информации (с API это неизбежно). Чтобы передача состоялась, придётся вводить третьего «игрока» — активную систему, т. е. фактически шину данных (ESB).
rus: Связь двух систем через ESB-шину
В идеальном кейсе эту «конструкцию» надо дополнить вебхуками в мастер-системе, т. е. в системе, являющейся источником данных. Они будут «запускать» запросы на изменение данных в системах-приёмниках сразу после того, как эти данные поменяются в мастер-системе.

ESB-шины: краткий обзор возможностей, плюсов и минусов

Рассмотрим подробнее четыре ESB-системы, популярные на российском рынке, с которыми работает команда kt.team: Talend, Mule, Red Hat Fuse и WSO2. Для «иллюстрирования» этой статьи мы сняли небольшие видео, в которых вы можете узнать, как выглядит интерфейс систем и как происходит разработка интеграции.

Talend

Talend — продукт одноимённой французской компании (сейчас зарегистрированной в США), появившийся на рынке в 2006 году. На официальном сайте Talend позиционируется как «первое коммерческое решение для разработки интеграций с открытым кодом». Возможно, из-за того что Talend стала пионером в своей области, она и сегодня имеет более архаичный интерфейс, чем другие шины.
rus: Интерфейс Talend ESB
Плюсы

Почти весь функционал платной версии может быть реализован open-source инструментами. В студию «зашито» огромное количество готовых компонентов, также есть возможность для разработки новых.

Благодаря понятной и развёрнутой документации начать работу с Talend несложно. Фактически все типовые действия и вопросы уже описаны в инструкции.

Кроме того, вокруг Talend сформировалось комьюнити разработчиков: на форуме они обсуждают особенности работы с системой, возможности её развёртывания и реализации отдельных функций. Если в процессе работы у вас возникнут вопросы, вы легко сможете обратиться к «коллективному разуму».
Минусы

Помимо архаичного интерфейса, к минусам Talend относится достаточно сложный механизм создания подпрограмм. Если вы хотите выделить кусочек джобы и превратить его в подпрограмму, к которой будете обращаться из нескольких мест основной джобы, придётся потратить много времени на погружение и изучение студии, особенно если с системой будет работать бизнес-аналитик без глубоких познаний в программировании (т. н. citizen developer).

В бесплатную версию Talend не включён Git, но вы можете подключить его самостоятельно. Ситуацию осложняет структура проекта в системе: проект состоит из атомарных и визуально не связанных между собой джоб вместо «дерева файлов».

В платную версию Git встроен, но работает он в фоновом режиме: вы им не управляете. Также нужно отметить, что сама суть работы с Git'ом в платной версии заключается в коммите каждого изменения в автоматическом режиме. Одну и ту же джобу нельзя редактировать с двух компьютеров одновременно — только открыть для чтения.

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

На уровне линий передачи данных между элементами Talend обладает гибкой настройкой. Выглядит как преимущество, но на деле в этом же и недостаток системы. Бизнес-аналитику будет сложно разобраться в трансформации объектов. Логика работы линий неочевидна: чтобы разобраться в поведении программы, приходится учитывать асинхронную работу этих самых линий.
Джоба, или job — сервис, отвечающий за какой-то конкретный функционал и позволяющий настраивать его логику и порядок действий.
Резюмируем

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

Mule

Сейчас продукт принадлежит компании Salesforce. Первые упоминания о нём можно встретить в районе 2006 года: именно тогда Росс Мэйсон начал разработку Mule. За три года разработка Мэйсона набрала популярность, и он открыл компанию MuleSource (с 2009 года — MuleSoft) с головным офисом в Сан-Франциско.

Название продукта объясняется так: Mule (в переводе с англ. «мул») выполняет за разработчиков «ослиную работу» (от англ. donkey work). Именно ею занимаются разработчики, когда пишут код для интеграции систем. На помощь разработчикам приходит Anypoint Platform, которая позволяет быстро настраивать взаимодействие различных приложений, данных и устройств с помощью API.

В марте 2018 года компания Salesforce купила MuleSoft за 6,5. млрд долларов — на тот момент самое дорогое приобретение компании Марка Бениоффа. Mule поддерживает миссию экосистемы Salesforce по переводу бизнеса в облачное пространство.
rus: Интерфейс Mule ESB
Плюсы

Интерфейс создан на базе Eclipse, имеет интуитивно понятные элементы и компоненты. Многие компоненты, которые по умолчанию устанавливаются в процессе сборки джоб, не требуют корректировки.

Инструмент Anypoint Studio позволяет просто и эффективно контролировать все API в оркестрации по ключевым параметрам и метрикам: изначальный дизайн будущего API, контроль доступа, логирования и серверной статистики.

Инструмент Anypoint Exchange позволяет вести каталог, искать различные артефакты (API, фрагменты кода, шаблоны, примеры, коннекторы и т. д.) и делиться ими. Все эти артефакты могут быть предоставлены публично или внутри организации.

Для создания интеграций хватает облачных сервисов. Таким образом, Mule соответствует новой концепции iPaaS (сокр. от англ. integration platform as a service, рус. «интеграционная платформа как услуга»). Концепция ESB подразумевает развёртывание всей инфраструктуры с нуля на своих серверах. Однако сегодня многие компании используют облачные сервисы. Построить свою инфраструктуру с iPaaS можно намного быстрее и качественнее, чем разрабатывать её с нуля.

Весь проект можно просматривать на уровне файлов, что позволяет работать с Git для управления изменениями в проектах.
Минусы

Бесплатная пробная версия Mule действительна на протяжении 30 дней. Если вы и дальше планируете пользоваться шиной, в течение этого времени нужно приобрести лицензию, Стоимость лицензии рассчитывается индивидуально.

Возможности Community-версии сильно ограничены. И если вы не обладаете серьёзной экспертизой в Java, лучше сразу задуматься о покупке платной версии.
Резюмируем

Mule — часть экосистемы Salesforce, что, несомненно, является плюсом. Инструменты платформы позволяют работать в концепции iPaaS. Пробная и Community-версии подразумевают дополнительные расходы на лицензию и персонал с нужной квалификацией.

Red Hat Fuse

Продукт компании Red Hat, разработанный на базе библиотеки Camel. Первые упоминания о платформе датируются примерно 2008 годом. Из всей подборки, представленной в данной статье, Red Hat Fuse — наиболее ориентированное на разработчиков решение. С одной стороны, это даёт практически неограниченные возможности для кастомизации. С другой — порог вхождения для аналитиков довольно высок.
rus: Интерфейс Red Hat Fuse ESB
Плюсы

Хорошая встраиваемость в инфраструктуру Red Hat. Если в вашей компании уже используются другие решения от Red Hat, Fuse с лёгкостью встроится в существующую инфраструктуру.

Схема лицензирования Fuse такая же, как во всей линейке продуктов Red Hat: вы оплачиваете платную поддержку, только если захотите.

Весь проект можно просматривать на уровне файлов, что позволяет работать с Git для управления изменениями в проектах.
Минусы

Слабый набор компонентов вынуждает писать большой объём дополнительного кода и подключать многие решения в виде Java-библиотек.

Отсутствует «обвязка» для управления API, магазина компонентов и прочие смежные продукты, которые есть у конкурентов. Это также создаёт ощущение незавершённости.
Резюмируем

Red Hat Fuse — инструмент с неограниченными возможностями кастомизации, но с высоким порогом вхождения. Не содержит дополнительных инструментов, способных упростить разработку интеграций.

WSO2

Платформа WSO2 — лёгкое и быстрое решение в области интеграции информационных систем. Первые упоминания о продукте датируются 2005 годом. Продукт поддерживает все протоколы и имеет широкий набор коннекторов к различным системам.
rus: Интерфейс WSO2 ESB
Плюсы

Лицензия продукта Apache версии 2.0 позволяет развернуть WSO2 и начать её ознакомительное использование. Платформа имеет полностью открытый исходный код. Приобретение подписки не влияет на работоспособность продукта и нужно лишь для соблюдения лицензионной чистоты.

К преимуществам WSO2 относятся достаточно низкий порог вхождения и приятный интерфейс.

Весь функционал платформы доступен уже в базовой версии. Возможность сборки Docker-образов позволяет использовать Kubernetes в качестве оркестратора.

Поддержка интеграций осуществляется через смежные продукты, например API Management.

Весь проект можно просматривать на уровне файлов, что позволяет работать с Git для управления изменениями в проектах.
Минусы

Ярко выраженные минусы выделить трудно. WSO2 — хорошо сбалансированный продукт, хоть и не столь мощный, как Mule.
Резюмируем

WSO2 — платформа с приятным интерфейсом и продуманным механизмом поддержки интеграций. Уступает Mule в мощности.

Итоги: как выбрать ESB-систему для своего проекта

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

Если перед вами стоит задача сэкономить на приобретении лицензии, лучше всего подойдёт Fuse. Однако будьте готовы потратиться на разработку множества решений и «обвязок» с нуля.

Для быстрого старта хорошо подойдут Talend или Mule. На ваш выбор может повлиять стоимость лицензий, которая зависит от профиля использования систем. Talend строит ценообразование от количества разработчиков, Mule — от объёма используемых ресурсов.

WSO2 имеет лучшее соотношение функциональности и простоты расчёта стоимости лицензии.

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

Поделиться
Хотите больше полезных материалов?
Подпишитесь на нашу новостную рассылку!

Новости мира разработки и дизайна, переводы статей, наши новые кейсы. Пишем просто о сложном, без рекламы и спама.

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


Рост компании сопровождается ростом её IT-инфраструктуры. Быстрее подключать новые возможности, экономить на интеграциях время и деньги, быть менее зависимыми от разработчиков позволит ESB (сокр. от англ. enterprise service bus, рус. «сервисная шина предприятия»).

Разбираемся, из каких компонентов состоит ESB — сервисная шина предприятия. Сравниваем, как основные функции ESB-шины реализованы в Talend, Mule, WSO2 и Red Hat Fuse.

Сегодня мы разберём основные возражения по использованию low-code систем у бизнеса масштаба enterprise и выясним, насколько они справедливы.

Молодость и конкурентоспособность бизнеса зависит от скорости его реакции на изменения. IT-архитектура с ESB помогает быстрее обновляться и масштабироваться. Рассматриваем на кейсах из сферы e-Commerce.

Остались вопросы?

Вы можете обсудить любые вопросы по своему IT-проекту с нашим экспертом.
Мы работаем с ESB-системами Talend, Mule, WSO2 и брокером сообщений Apache Kafka.

Подробнее о преимуществах и возможностях каждой системы, а также о кейсах по интеграции можно узнать на нашем сайте.
Интеграция ESB
Сергей Влазнев
Телефон: +7 917 125-96-34
Телеграм: @kt_team_it
WhatsApp: +7 917 125-96-34
Email: clients@kt-team.de
Получить консультацию
Получить консультацию

Нравится статья?
Укажите свою почту, и мы будем присылать вам еженедельный анонс
новых статей.