Анна Гасраталиева
Типы интеграции — какие они бывают?
Краткий путеводитель по галактике интеграций
для тех, кто уже освоил базовый уровень (или прошел наш интенсив)
Судя по статистики запросов в интернете, понимание интеграции становится одним из базовых знаний для аналитика. Чтобы помочь вам сориентироваться в этой области знания, я предлагаю посмотреть на типы интеграций.

1. Внутренняя и внешняя.

Например, я в Школе системных аналитиков устраиваю интеграцию Тильды (конструктор, на котором сделан сайт школы) и Sendpulse (приложение для рассылок писем). Это две разные системы, которые разработали две разные компании, это внешняя интеграция.

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

А когда чуть позже понадобилось оператору карту показывать, то потребовалась внешняя интеграция (со сторонним сервисом - GoogleMap)

2. Простая и сложная (очень условное название)

Интеграция может быть с использованием no-code инструментов (например, я использую Integromat), а может требовать разработчиков и написания кода. Вот тут классная подборка no-code инструментов.

Кстати, можно выделить еще ручную интеграцию. Например, сотрудник склада, переносящий данные из системы 1С:Склад в CRM, занимается интеграцией этих систем.

Интерфейс приложения Integromat
3. Классификация по целям

Интеграция может иметь разные цели. В основном, речь идёт про организацию сквозного бизнес-процесса (процесс заказа продуктов, например, требует работы нескольких систем). Или про организацию хранения данных (MDM-класс систем, DWH-системы и т.п.). Или про представление данных в одном окне (у нас оператор мог видеть dashboard с кучей информации из разных систем): всё это ради экономии времени, денег или предоставлении какой-то новой, ранее невозможной услуги (сервиса) или продукта

4. Интеграция может быть стихийной или плановой

Вам срочно надо объединить две системы, чтобы организовать процесс? Фигачим! О, неплохо бы ещё систему CRM к ним интегрировать? Делаем! И так год за годом. Куча систем, как клубок, наматывается: то там интегрируем, то тут. Плановая, соответственно, возникает, когда есть план)


5. Интеграции могут отличаться по структуре связи

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

Звезда — это когда мы добавляем, к примеру, шину (ESB). Какую-то прослойку, которая позволяет всем системам интегрироваться между собой. Это как единая точка. Шина — это тоже ПО. Звезда имеет много плюсов (например, если эта CRM система вам больше не нужна, меняем её на новую — всё не развалится). Но есть и минусы. Например, у вас есть единая точка отказа. Случись что-то с шиной — и не работает вообще всё (весь контур систем, которые интегрируются через эту шину).

Смешанная — это когда у нас на проекте есть шина, общая точка, где системы объединяются. Но и есть попарно интегрированные системы. Так бывает! И это не всегда плохо
6. Синхронная или асинхронная интеграция

Асинхронная интеграция нужна — это как сообщение в почте или чате, ответа мы не ждём сразу. Синхронная — это как общение по телефону: если ты звонишь человеку, то ты общаешься с ним и ждёшь ответа сразу во время разговора. Это большая тема, можно много говорить;

7. Интеграция систем, подсистем, сервисов, микросервисов

Если вы интегрируете свою систему CRM с чужой системой MDM, то это интеграция систем.

Если сервису Яндекс.Кошелек вдруг нужны данные с сервиса Госуслуги, то перед нами интеграция сервисов.

Если наша система построена по SOA, то мы имеем распределенную систему, подсистемы которой интегрируются между собой (например, с помощью шины, о которой будет ниже). Для систем на микросервисах все тоже самое.
8. Паттерны интеграции по типу обмена данными

Речь идет о таких паттернах, как обмен файлами, обмен через общую базу данных, удалённый вызов процедур, обмен сообщениями.

Вот в этой книге можно почитать про все эти паттерны (глава 2)

Самая простая (и исторически возникшая самой первой) — это интеграция по паттерну «общая база данных». Быстро, дешево, небезопасно. Не используйте этот тип интеграции, если у вас есть хоть какая-то альтернатива.

«Обмен файлами» — это простой способ передать файлы. Выкладываете отчет на FTP-сервер как на гугл-диск, а потом другая система его скачивает. Дешево, достаточно безопасно, но сложного взаимодействия не построить (попробуйте впятером работать с одной страницей в гугл-док, не общаясь другими каналами связи.

На основе «удалённый вызов процедур (RPC)» можно построить куда больше взаимодействий. Сейчас это самая популярная тема и по ней пару предложений написать недостаточно. Поэтому просто скажу, что из всего многообразия сейчас максимально популярны gRPC, REST, SOAP, GraphQL(формально не все из этого RPC, но вдаваться в детали мне лень). Если вам нужно построить интеграцию между двумя системами, то скорее всего это REST — вот и все, что стоит пока запомнить.
Паттерн «обмен сообщениями» становится необходим в одном из таких случаев, например
✓ крупный проект, в котором мы хотим иметь единую точку для управления интеграциями (помните п.5 «звезда»?)
✓ асинхронном взаимодействии
✓ больших потоках информации
✓ масштабировании
Вот тогда появляется сервисная шина предприятия или брокер. Это дорого, долго, но порой необходимо.

9. Паттерны по методу интеграции

Никогда не встречала, чтобы кто-то всерьез пользовался этой классификацией, но так как она существует, поделюсь с вами:
• Интеграция систем по данным (data-centric)
• Объектно-центрический (object-centric)
• Функционально-центрический (function-centric) подход
• Интеграция на основе единой понятийной модели предметной области (concept-centric).
Аналитик не выбирает паттерн интеграции (это задача архитектора), но ориентироваться в них весьма желательно.

Если вы столкнулись с новыми терминами в этой статье, выписывайте их в блокнотик и изучайте постепенно. Тема невероятно обширна, и за один присест ее не освоить.
Анна Гасраталиева
Организатор Школы системных аналитиков,
ведущий аналитик Nexign

Интеграция — это хорошо, но не забывайте задавать вопрос «зачем», когда приступаете к каждой своей задаче
Анна Гасраталиева
Организатор Школы системных аналитиков,
ведущий аналитик Nexign

Интеграция — это хорошо, но не забывайте задавать вопрос «зачем», когда приступаете к каждой своей задаче
Иногда я менторю системных аналитиков и тех, кто хочет ими стать. Пишите, если интересно.
Made on
Tilda