Умные сервисы и надежные каналы: как мы выбирали архитектуру интеграционного решения

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

Вызовы

Реализация интеграционных решений в проектах зачастую обходится необоснованно дорого, но на это есть ряд причин:

- Разнородность интегрируемых систем

Разные поставщики используют разные архитектурные принципы и разные технологии, которые нужно как-то «подружить».

- Отсутствие единых стандартов интеграции

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

- Существенные затраты

Поскольку интеграционное решение часто делается «на коленке», возникает большое количество задач по доработке интеграции в ходе проекта.

- Технологические риски

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

- Высокие требования к надежности и производительности

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

- Влияние прикладной специфики

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

- Гарантии результата

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

Сравнение подходов

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

Интеграция «точка-точка» предполагает создание прямых интеграционных связей между каждой парой систем.

Умные сервисы и надежные каналы: как мы выбирали архитектуру интеграционного решения

При определенных преимуществах попарных связей есть и минусы:

- сложность в понимании и управлении реализованной интеграцией, и с ростом количества потоков эта сложность растет;

- большие затраты на изменения – при изменении одной системы может потребоваться изменение множества интеграций;

- неизбежное дублирование интеграционного функционала при взаимодействии с любой из систем;

- как правило, отсутствие средств мониторинга.

Второй подход – ESB («умная шина») – предполагает использование централизованной шины для обмена данными и взаимодействия между системами.

Умные сервисы и надежные каналы: как мы выбирали архитектуру интеграционного решения

Централизация – это здорово, но вот главные минусы, на мой взгляд:
- опять же, сложность – настройка и управление централизованной шиной сервисов трудоемко и часто базируется на проприетарном инструментарии;
- зависимость от централизованной точки отказа – все интеграционные потоки остановятся в случае отказа компонента, отвечающего за маршрутизацию;
- ограничения масштабируемости при росте количества систем и интеграций.

При разработке интеграционной платформы Digital Q.Integration мы постарались взять самое лучшее из обоих подходов, при этом нейтрализуя их минусы. В итоге сформировался подход, который мы назвали «Умные сервисы и надежные каналы». И вот что у нас получилось:
- отдельный сервис для каждой интегрируемой системы со всей необходимой и достаточной логикой интеграционного взаимодействия;
- легкая масштабируемость решения на уровне каждого отдельного адаптера;
- простая эксплуатация и развитие без регресса в целом – развертывание или обновление одного микросервиса, содержащего только функционал по одному потоку, никак не затрагивает остальные блоки решения;
- единый реестр всех сообщений;
- общие средства мониторинга и реконсиляции (сверки и согласования данных);
- надежные и простые брокеры сообщений.

Умные сервисы и надежные каналы: как мы выбирали архитектуру интеграционного решения

Остается вопрос: как сделать умные адаптеры эффективно и правильно? Об этом поговорим в следующей публикации по теме.

11