Интересное в интеграции. Часть 1. Syndesis.
Блоги
Навигационные полоски
Этой статьёй я хотел бы открыть небольшой цикл, посвящённый интеграционным продуктам/фреймворкам, которые показались интересными для небольших исследований и обзоров. Первая часть будет посвящена проекту Syndesis - это upstream проект продукта Red Hat Fuse Online. У Red Hat есть продукт под названием Red Hat Fuse, выросший из классической ESB от компании FuseSource. Естественной эволюцией продукта была адаптация микросервисной архитектуры и переезд на Openshift. Но ядром так и остался Apache Camel. Начиная с версии продукта 7.0 параллельно Red Hat Fuse стал разрабатываться Fuse Online на базе Syndesis.
Давайте посмотрим более подробно что же такое есть Syndesis. Основным и ключевым отличием Syndesis от классического Red Hat Fuse - это целевая аудитория продукта. Он больше подойдёт для аналитиков, в отличие от Fuse. Это low-code интеграционная платформа. Пользователя не нужно глубокого знания в тонкостях построения интеграционных маршрутов, достаточно общего понимания специфики. В продукте вводится дополнительный уровень абстракции, чтобы оградить пользователя от деталей Apache Camel и Enterprise Integration Patterns (EIP). Вы оперируете понятием коннекторов, мапперов данных и операторов с логическими операциями. Как написано в документации к Fuse Online - продукт предназначен для быстрого построения интеграций бизнес-экспертами, финансистами, HR - одним словом теми, кто не сможет залезть в код, а только сконфигурировать что-то. Fuse Online не является заменой простому Fuse, а скорее дополнением. Давайте посмотрим как всё это запускается и работает.
Установку Syndesis можно сделать только на контейнеры, причём это либо Kubernetes, либо Openshift. Но по факту это только Openshift, так как в документах сказано, что установка на Kubernetes возможна только для разработческих целей с кучей ограничений. Я ставил локально на Minishift, руководствуясь следующей документацией: https://syndesis.io/docs/cli/syndesis/#example-for-minishift. Вообще, Fuse Online ориентирован в том числе и на managed clouds и по этой причине пользователю нельзя конфигурировать коннекторы через ConfigMap и Secret - все настройки осуществляются при сборке образа, либо через экспорт-импорт интеграций. Подробнее об архитектуре решения можно почитать тут. После установки у меня получилось следующее:
UI продукта выглядит следующим образом:
На дашборде видна общая информация по существующим интеграциям - отсюда можно создать новую или редактировать/остановить/запустить существующую интеграцию. Интеграция состоит из точки начала, окончания и произвольного набора промежуточных операций. Началом маршрута является сущность под названием Соединение. У продукта есть предустановленный набор коннекторов к различным системам и сторонним продуктам - DB, Telegram, Google Sheet, SFTP, AMQP и т.д. Коннектор с настроенными параметрами сохраняется в виде Соединения, которое можно использовать в маршруте. Промежуточные операции могут быть как алгоритмические - Split, Filter, Aggregate, так и вызовы сторонних систем через Соединения. На рисунке ниже представлено окно редактирования интеграции - при помощи '+' можно добавлять дополнительные шаги.
По завершению разработки маршрута его можно опубликовать прямо из UI. Соберётся соответсвующий образ с Apache Camel на SpringBoot и запустится отдельный pod. Во вкладке Activity можно посмотреть профилирование по операциям и вывод логов, если это применимо:
Также, из доступных фич есть возможность импорта-экспорта маршрутов и их версионирование.
Отдельно хочу отметить использование продвинутого маппинга данных - под капотом находится AtlasMap. О его возможностях собираюсь написать в отдельном блоге.
В целом идея такого интеграционного продукта является весьма достойной, как и предложенная реализация, хотя ограничения возможностей запуска только Openshift может быть критичной. У продукта есть ряд ограничений - нет полной реализации всех EIP, по этой причине его нельзя считать полноценной заменой Red Hat Fuse, но для простых интеграций использовать вполне можно и нужно.
- 6.2 (12)
- 7.0 (12)
- activiti (14)
- apache camel (6)
- camel (11)
- devcon (6)
- devops (5)
- emdev (9)
- emdev limited (9)
- entaxy (13)
- esb (10)
- fuse (5)
- gartner (7)
- google apps (6)
- jboss (5)
- liferay (143)
- liferay 7.1 (11)
- liferay dxp (11)
- liferay7 (12)
- openshift (8)
- osgi (5)
- redhat (15)
- rest (6)
- wso2 (70)
- wso2 api-m (10)
- wso2 ei (8)
- wso2ei (5)
- wso2esb (7)
- wso2is (8)
- емдев (11)
Сайт использует файлы cookie. Они позволяют узнавать вас и получать информацию о вашем пользовательском опыте. Это нужно, чтобы улучшать сайт. Посещая страницы сайта и предоставляя свои данные, вы позволяете нам предоставлять их сторонним партнерам. Если вы согласны, продолжайте пользоваться сайтом. Если нет – установите специальные настройки в браузере или обратитесь в техподдержку.