Як уникнути пекла кастомізації, або Що ви знаєте про рішення для інтеграції систем

Вітаю, колеги! Мене звати Олександр Решетнік. Я займаюсь задачами інтеграції з 2015 року. Мій основний проєктний досвід — це інтеграція систем з використанням Apigee, Mulesoft та різноманітних черг. Зараз я є головою дисципліни з інтеграції та API в компанії EPAM, тож вирішив поділитися з вами своїм захопленням цією проблематикою. Маю надію, моя розповідь відкриє для вас нові горизонти у цій галузі.

У сучасному світі складність інформаційних систем та інтерфейсів зростає, тому розуміння принципів та інструментів інтеграції дуже важливе. Сьогодні технічні системи є досить складними — часто мова йде про системи з систем.

Інтеграція систем є ключовим моментом під час реалізації складних проєктів. Без зваженого і продуманого підходу може виникнути проблема з взаємодією між різними частинами системи, а також затримки в передачі даних та відсутність синхронізації компонентів системи там, де це потрібно.

Нижче я розгляну сучасні інструменти та практики для інтеграції систем, які можуть допомогти в успішній реалізації складних проєктів. Вони полегшують процес інтеграції та дають можливість розробникам опанувати цей інструментарій як додаткове уміння паралельно з основною спеціалізацією.

Особливо це стане у пригоді розробникам та архітекторам, які займаються проєктуванням складних систем.

Знайомство

Як і більшість розробників, я почав дізнаватися про інтеграцію систем із поєднанням систем через базу даних та роботу з інтеграцію через REST API. У 2015 стартував проєкт, у якому мені довелось на практиці познайомитись з API Management із використанням Apigee.

API Management в основному визначається як процес управління веб-API. Це охоплює процес створення та публікації API, віддалений доступ до базових сервісів, моніторинг ефективності та регулярну оптимізацію, а також захист від атак та надання аутентифікації та авторизації. Це все додає багато зручності розробникам при роботі зі складними системами, які доступні через розмаїття різних API.

Apigee — це платформа API-управління, яка надає компаніям змогу керувати, захищати та масштабувати свої API для забезпечення зручної та безпечної взаємодії між застосунками та мережею. Цей інструмент допомагає компанії створювати, публікувати та моніторити API, а також керувати доступом до них.

Далі більше. Отриманий досвід з Apigee дозволив мені опанувати й інші інструменти та підходи, щоб згодом перейти до проєктування та розробки інтеграції з використанням інших підходів і таких інструментів як Mulesoft та різноманітних черг.

Mulesoft належить до платформи для інтеграції програмних застосунків (PaaS). Вона пропонує відповідні компоненти для спрощення взаємодії між різними системами. Mulesoft має ряд інструментів, які допоможуть спроєктувати, створити та розгорнути програмні компоненти, які підтримують взаємодію між системами. Це охоплює надання інтеграції з різними видами програмних застосунків та даних. Втім, про конкретні інструменти для інтеграції пізніше. Для початку розберемось у суті завдання інтеграції й визначимо, в чому її складність.

Не так просто. Кілька причин складності завдання інтеграції

  • Різні системи мають різні технічні специфікації та формати даних. Інтеграція може виявлятися складною, якщо потрібно змінювати формат даних, щоб відповідати вимогам іншої системи.
  • Різні системи можуть використовувати різні протоколи з’єднання та передачі даних. Це може стати проблемою при підключенні декількох систем, які не можуть передавати дані між собою.
  • Різні системи можуть мати різну структуру даних та відсутність стандартів для інтеграції. Це може викликати складності при вирішенні проблем з взаємодією даних між системами.
  • Безпека та конфіденційність даних можуть стати проблемою.

Основні підходи до інтеграції систем

Книга «Enterprise Integration Patterns» (Gregor Hohpe, Bobby Woolf) описує чотири основних стилі для інтеграції систем:

  1. File transfer (Передача файлів): цей стиль полягає в передачі файлів між системами через спільну папку або файлообмінний сервіс. Це може бути корисним для передачі даних великого обсягу, таких як файли з логами або бекапами. Але цей підхід може бути проблематичним, оскільки файлова система може стати точкою невідновлення, і він не підходить для реального часу.
  2. Shared database (Спільна база даних): полягає в збереженні даних у спільній базі даних, до якої мають доступ різні системи. Це дозволяє системам разом використовувати дані, але цей підхід може призвести до залежності систем одна від одної, а також до проблем з безпекою та швидкістю.
  3. Remote Procedure Invocation (Віддалене викликання процедур — RPI): цей стиль полягає у виклику функцій чи процедур однієї системи з іншої системи за допомогою мережі. Це забезпечує можливість виклику функцій однієї системи з іншої системи, але може привести до залежності від мережі та проблем з різницею у форматах даних між системами.
  4. Messaging (Повідомлення): полягає в обміні повідомленнями між системами. Він забезпечує асинхронний обмін даними, надійність та масштабованість. Цей підхід часто використовується у вебсервісах та мікросервісах.

Кожен з цих стилів має свої переваги та недоліки, тому вибір стилю залежить від конкретного завдання та потреб користувача. Більше про стилі та специфічніші шаблони можна дізнатись на сайті Gregor Hohpe — Patterns and Best Practices for Enterprise Integration або з різноманітних відео автора, наприклад, Enterprise Integration Patterns 2 • Gregor Hohpe • YOW, 2017.

Сайт Patterns and Best Practices for Enterprise Integration (Патерни та найкращі практики для інтеграції в корпоративному середовищі) — це ресурс, що стосується проєктування та реалізації інтеграційних рішень в корпоративних середовищах. Він містить інформацію про патерни, які були розроблені для різних варіантів інтеграції в більш ніж 50 корпоративних проєктах, а також приклади їх використання.

Крім того, на сайті є багато інформації про технології, що використовуються для інтеграції, такі як Apache Kafka, Apache Camel, MuleSoft, IBM Integration Bus, WSO2 та інші.

Окрім документації та прикладів використання, на сайті також доступні інформація про найкращі практики та поради, наприклад, поради щодо підходу до проєктування та архітектури інтеграцій, вибору технологій та розробки API.

Загалом Patterns and Best Practices for Enterprise Integration — це важливий ресурс для будь-якого розробника, архітектора або менеджера проєктів, який працює з інтеграційними рішеннями в корпоративному середовищі.

Чому варто використовувати системи для керування інтеграціями

Використання шаблонів інтеграції систем є важливою практикою при розробці архітектури систем. Шаблони надають певний набір стандартних рішень, які можна використовувати для розв’язання типових задач, що виникають при інтеграції систем.

Своєю чергою, це дозволяє значно скоротити час і зусилля, необхідні для проєктування архітектури системи, оскільки готові рішення можна легко використовувати в конкретному випадку.

Крім того, використання шаблонів інтеграції систем допомагає покращити розуміння розробниками та архітекторами системи принципів і підходів, що використовуються в проєкті, що дозволяє зробити його більш структурованим, зменшити кількість помилок та збільшити масштабованість системи.

В результаті, використання шаблонів інтеграції систем при розробці архітектури дозволяє ефективніше вирішувати проблеми, що виникають при інтеграції різних систем, а також зменшує ризики, пов’язані з помилками при розробці.

Проте не завжди необхідно займатись реалізацією загаданих шаблонів самостійно. У більшості випадків набагато краще використати вже готове середовище для інтеграції систем. Розглянемо приклад з P2P-інтеграцією.

P2P-інтеграція (Peer-to-Peer integration) є підходом до інтеграції систем, при якому дві або більше системи безпосередньо обмінюються даними між собою без використання спеціалізованої проміжної платформи, такої як ESB (Enterprise Service Bus) чи іншої платформи для керування API.

Хоча цей підхід може бути привабливим з точки зору простоти та швидкості розгортання, він також має свої недоліки та проблеми, зокрема:

Стандартизація. Відсутність спільних стандартів може призвести до того, що кожна система буде використовувати свій власний формат даних, свої власні протоколи та інші параметри, що може ускладнити обмін даними між системами.

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

Системна залежність. Кожна система може стати залежною від інших систем у P2P-інтеграції, що спричиняє проблему, якщо одна з систем відмовить або зазнає збою.

Несумісність. Різні версії програмного забезпечення та різні формати даних можуть викликати проблеми з сумісністю та збої при обміні даними.

Безпека. Відсутність централізованої системи керування може викликати проблему із захистом даних, оскільки безпека мережі залежатиме від захисту кожної окремої системи.

Загалом використання middleware у сполученні різних систем може спростити та зробити ефективнішим процес обміну даними між ними.

Різновиди систем для керування інтеграціями

Існує декілька різновидів систем для керування інтеграціями, які можуть бути використані для розробки та керування інтеграційними процесами:

  • ESB (Enterprise Service Bus) — це платформа, яка забезпечує шину сервісів, яка дозволяє інтегрувати системи, застосунки та сервіси між собою.
  • iPaaS (Integration Platform as a Service) — це платформа у хмарі, яка дозволяє розробникам легко інтегрувати різні застосунки та сервіси без необхідності установки та налаштування додаткового обладнання.
  • API-платформи (API Management Platforms) — це платформи, які надають можливість керувати API, які використовуються для інтеграції між застосунками та сервісами.
  • B2B (Business-to-Business) інтеграція — це платформи, які дозволяють підприємствам обмінюватись даними та інформацією з іншими компаніями та бізнес-партнерами.
  • MFT (Managed File Transfer) — це платформи, які забезпечують безпечний обмін файлами та даними між різними застосунками та системами.
  • MOM (англ. Message-oriented middleware) або Message brokers — це системи, що дозволяють розподіляти повідомлення між застосунками в асинхронному режимі. Вони забезпечують безпеку, масштабованість та надійність обміну даними між різними системами. Прикладами MOM є Apache Kafka, RabbitMQ, ActiveMQ та інші.
  • ETL (англ. Extract, Transform, Load) — це процес екстрагування даних з джерел, їх перетворення та завантаження до цільової системи. ETL-системи використовуються для забезпечення інтеграції даних між різними джерелами даних та цільовими системами.
  • BPM (англ. Business Process Management) — це системи для моделювання, автоматизації та управління бізнес-процесами. Вони дозволяють створювати, виконувати та контролювати бізнес-процеси в рамках однієї системи.
  • RPA (англ. Robotic Process Automation) — це системи, що дозволяють автоматизувати рутинні роботи за допомогою програмних роботів, які імітують дії користувачів. RPA може бути використаний для автоматизації дій, пов’язаних з обміном даними між системами.
  • IAM (англ. Identity and Access Management) — це системи, що дозволяють керувати ідентифікацією та доступом користувачів до різних систем. IAM відповідає за безпеку обміну даними між різними системами шляхом керування доступом та авторизації користувачів.
  • Workflow and orchestration engines дозволяють створювати та автоматизувати бізнес-процеси. Вони допомагають забезпечити коректний потік даних між системами та забезпечити оркестрацію бізнес-процесів з метою підвищення ефективності та зниження витрат.
  • BRMS дозволяють підтримувати бізнес-правила та логіку в окремій системі, що дозволяє зберігати їх централізовано та забезпечувати їхню консистентність у всіх системах, що використовують ці правила.

Ці системи доповнюють та розширюють можливості middleware для керування інтеграціями та дозволяють розв’язувати конкретні проблеми ефективніше.

Системи для керування інтеграціями

Розглянемо деякі рішення для інтеграції систем.

Apigee

Це платформа для керування API, яка дозволяє компаніям побудувати, розгорнути та управляти своїми API. Вона дозволяє розробникам створювати API швидше та легше, забезпечує аналіз та моніторинг, захист та автентифікацію API.

Apigee надає інструменти для створення, управління та розгортання API. Вона також надає можливість налаштування безлічі політик безпеки, включаючи автентифікацію та авторизацію, захист від атак, кількість запитів та швидкість, обмеження трафіку та багато іншого.

Apigee має інтуїтивний інтерфейс, який дозволяє адміністраторам та розробникам швидко взаємодіяти з API та контролювати їх використання. Крім того, платформа надає засоби для аналізу використання API, що дозволяє покращувати їх функціональність та забезпечувати високу продуктивність.

Apigee є однією з провідних платформ для керування API та використовується багатьма компаніями по всьому світу, включаючи IBM, Adobe, Walgreens та інші.

Mulesoft

Це компанія зі штаб-квартирою в Сан-Франциско, що надає програмне забезпечення для побудови інтеграційних рішень. Головний продукт компанії — Mule, є відкритим програмним забезпеченням, яке дозволяє створювати різноманітні інтеграційні застосунки та сервіси. MuleSoft надає ряд рішень для інтеграції даних, застосунків та систем. Головні продукти MuleSoft включають:

  • Anypoint Platform — хмарний сервіс, який надає засоби для створення, тестування та управління API, побудови інтеграцій, управління даними та аналізу. Anypoint Platform дозволяє компаніям легко інтегрувати застосунки та системи, сприяючи цифровій трансформації бізнесу.
  • Mule Runtime — це віртуальна машина, яка виконує Mule-застосунки та забезпечує їх взаємодію з системами та застосунками. Mule Runtime можна встановити на застосунок, на сервер або використовувати в хмарі.
  • CloudHub — це хмарний сервіс для запуску та управління Mule Runtime. CloudHub забезпечує масштабованість, надійність та безпеку побудованих рішень.
  • MuleSoft API Designer — це інструмент для розробки та документування API. За допомогою API Designer можна легко створювати і тестувати API, а також додавати документацію та публікувати її у каталозі API.
  • Anypoint Exchange — це каталог API та побудованих рішень, який дозволяє знайти та використовувати готові API та інтеграційні рішення.

MuleSoft є одним з провідних постачальників рішень для інтеграції систем, яке використовують такі компанії, як Coca-Cola, Airbus, BMW.

Boomi

Boomi (Dell Boomi) — інтеграційна платформа, що дозволяє побудувати хмарні інтеграції між застосунками, даними та API. Boomi надає різноманітні інструменти для забезпечення ефективної інтеграції, зокрема, можливості візуальної побудови, з’єднання з багатьма джерелами даних, підтримку протоколів обміну повідомленнями та велику кількість вбудованих компонентів і конекторів.

Boomi використовують для будь-якого рівня інтеграції — від простих точкових інтеграцій до складних бізнес-процесів. Платформа дозволяє підключати різні застосунки, включаючи облікові записи користувачів, електронні комерційні платформи, системи управління відносинами з клієнтами (CRM), ERP системи та інші.

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

Крім того, Boomi підтримує безпеку та захист даних, включаючи можливості автентифікації користувачів, шифрування даних та інші.

Цей інструмент зручно використовувати для інтеграції різних застосунків і систем у хмарному середовищі, що дозволяє підвищити ефективність роботи бізнесу та знизити витрати на розробку та підтримку інтеграцій.

Kong

Відкрите програмне забезпечення для управління API та мікросервісами. Він надає інструменти для розгортання, моніторингу, захисту та управління API. Можна використовувати як в хмарних середовищах, так і в локальних мережах.

Kong базується на Nginx і має розширення, що дозволяє легко налаштувати і керувати API. Він також має вбудовані функції для роутингу, обмеження швидкості, кешування та перерозподілу навантаження.

Однією з головних переваг Kong є його підтримка для різних протоколів, таких як HTTP, WebSocket, gRPC і мікросервісні протоколи, такі як Kafka та AMQP. Kong також має вбудовану підтримку для сертифікатів SSL і OAuth2 для захисту API.

Це ПЗ доступне у двох версіях: Community Edition та Enterprise Edition. Community Edition є безкоштовним та відкритим для використання та має базовий набір функцій. Enterprise Edition має додаткові функції, такі як підтримка віртуальних API та розширена аналітика, але вона є в комерційній версії, за яку треба заплатити.

Tibco

Tibco Software Inc. — це компанія-розробник програмного забезпечення, яка спеціалізується на розробці рішень для інтеграції даних, аналітики, бізнес-процесів та інших застосунків для підприємств. Компанія була заснована в 1997 році, її штаб-квартира знаходиться в Пало-Альто, штат Каліфорнія, США.

Tibco пропонує низку рішень для інтеграції систем, зокрема, платформу для розробки та управління застосунками, що забезпечують інтеграцію, з’єднання та аналіз даних, а також рішення для інтеграції бізнес-процесів та аналітики.

Одним з ключових продуктів компанії є Tibco BusinessWorks, що є робочим середовищем для розробки та інтеграції застосунків з підтримкою стандартів SOA та мікросервісної архітектури. Крім того, компанія пропонує Tibco ActiveMatrix, який є розширеним рішенням для розробки та управління SOA-застосунками.

Tibco також пропонує рішення для аналітики даних та бізнес-інтелекту, включаючи платформу Spotfire, яка дозволяє швидко визначати та аналізувати великі обсяги даних, а також рішення для управління бізнес-процесами, включаючи платформу для автоматизації бізнес-процесів Tibco ActiveMatrix BPM.

Загалом рішення Tibco дозволяють підприємствам побудувати масштабовану та надійну інфраструктуру для інтеграції даних, застосунків та бізнес-процесів.

Як почати свій шлях спеціаліста з інтеграцій

Якщо ви хочете стати спеціалістом з інтеграцій, то вам потрібно мати знання з різних галузей, зокрема з баз даних, мереж і програмування. Крім того, слід ознайомитись зі стандартними підходами до інтеграції, такими як ESB та API Management, а також з шаблонами та стилями інтеграції, які описані у книзі «Enterprise Integration Patterns».

Ось декілька кроків, які можуть допомогти вам почати свій шлях у світі інтеграцій:

1. Ознайомтеся з основними поняттями й технологіями в галузі інтеграції, такими як ESB, API Management, MOM, ETL, BPM та інші.

2. Опрацюйте книгу «Enterprise Integration Patterns», щоб зрозуміти основні шаблони та стилі інтеграції.

3. Вивчіть одну з популярних платформ для інтеграції, таких як Mulesoft, Apigee, Boomi, Kong або Tibco, яка найбільше підходить для ваших потреб:

4. Візьміть участь в онлайн-курсах, семінарах з інтеграції або вебінарах, щоб поглибити свої знання.

5. Пошукайте проєкти в галузі інтеграції та спробуйте створити власні для набуття практики та досвіду.

6. Долучайтесь до спільнот та форумів, де можна обговорювати нові технології та рішення з іншими спеціалістами з інтеграцій.

Це лише перші кроки. Далі, як і скрізь, діє принцип: щоб стати успішним майстром, потрібно постійно оновлюватись та вдосконалюватись у цій галузі. Тема інтеграцій в ІТ існує від початку і нікуди не подінеться. Тому раджу починати рухатися цим шляхом.

👍ПодобаєтьсяСподобалось6
До обраногоВ обраному8
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Найбрудніша робота для розробника. Дивно, що в 2023 ще хтось всерьоз розглядає інтеграцію на файликах, чи shared db як патерн інтеграції здорової людини.

Дмитро, на щастя, вже не розглядають і всіляко намагаються уникнути.

Інтеграція на файлах (folder in the middle) — це непоганий варіант, коли треба мати чіткі межі розділення відповідальності між інформаційними системами різних компаній, особливо якщо замовник не бажає окремо купляти інтеграційний сервіс. З правової точки зору — один з найкращих.

Для того щоб воно так працювало потрібна нереально висока ІТ-культура в компанії яка паблішить файли в папку.
На практиці це трешак.

Я згоден, доводилося обробляти файли, які присилала індійська компанія, коли несподівано міг змінитися формат повідомлень або додавалися невидимі спецсимволи і це крашило парсер. Але якщо інтерфейс спроектований антивандально, і всі сторони дотримуються специфікацій (ага, якщо є нормальні дизайн документи), то з файлами нормально працювати.

Я думаю якось написати на статтю про розробку інтеграційних інтерфейсів, бо доводилося робити інтеграції і на файлах, і через Shared DB, і через messaging на API.

якщо є нормальні дизайн документи

Нормальна документація це вже продовження історії.
А то ж в білбшості випадків в компаінї немає людей які в принципі мають голову на плечах і здатні в дизайн, куди там до документів.

Ця книжка була випущена достатньо давно. Сам автор каже, що він випускає апдейти до неї у формі блогів на своєму сайті.

Він зараз подає цю книгу як «концепцію» того, що потрібно мати патерни і розуміти як речі працюють. Далі робота за вами як ви це все будете робити.

Ще він має декілька книг і відео на рахунок як це все працює у контексті Enterprise Architecture. Планування, дизайн, дискусії.

Підписатись на коментарі