Інтеграційні платформи (iPaaS): у чому фішка

Привіт, мене звуть Ярослав, і в цій статті я розповім про Integration Platforms (iPaaS), що використовують у різних проектах у компанії SoftServe і робочих практиках System Integration Engineer.

Дефініції та історична довідка

Що ж таке Data integration? Основна функція Data integration ― маршрутизація даних з розрізнених джерел (баз даних, систем, мобільних/веб-застосунків через API тощо) в єдину систему/платформу в межах організації або організацій. Наступне завдання — узгодження різних типів даних з єдиним форматом, що використовуватимуть під час будь-яких маніпуляцій, трансформацій або синхронізації.

Інтеграційний напрям виник унаслідок різкого збільшення протягом останніх 10 років кількості різноманітних систем, що застосовують усередині організацій (Human Capital Management, Portals, Apps тощо), та, відповідно, потреби у швидкій синхронізації даних між цими системами. До певного часу інтеграційну функцію виконувало ESB, основною метою якого було, по суті, забезпечити транзакційний контроль, перетворення даних і маніпуляції з ними. Згодом інтеграційні завдання стали складнішими й комплекснішими, а отже, вони потребують окремих підходів, специфічних навичок і тулсету.

До ESBПісля ESB

Від ESB до iPaaS

Згодом підхід ESB еволюціонував, і почали з’являтися так звані iPaaS-рішення. Беручи на себе основні функції low-level-девелопменту і спростивши або навіть цілком перебравши на себе підходи до security, data encryption/decryption, data transformation, deployment-процедури, інтеграційні платформи дали змогу розробникам інвестувати суттєво більше часу саме в інженерний підхід.

Основні відмінності між ESB та iPaaS

Загалом підхід ESB виник унаслідок потреби в керуванні даними в локальних або застарілих legacy-системах. Історично ESB-патерн виник ще задовго до хмарних систем/інтеграцій, він підходить для координації та роботи з даними, але, на мій погляд, цьому підходу бракує гнучкості.

Інтеграційні платформи (iPaaS) створено для підтримання хмарних рішень/систем. Теоретично iPaaS можуть зменшити або усунути потребу в локальних серверах чи апаратному забезпеченні, також iPaaS розроблено для керування інтеграцією з хмарних застосунків.

Масштабованість (Scalability)

ESB-підхід можна використовувати для вертикального масштабування в наявному архітектурному рішенні. Зокрема, iPaaS більше підходить для горизонтального масштабування (наприклад, додавання до наявного середовища нових підсистем/систем або компонент).

Наступна і, на мій погляд, основна відмінність — Multitenancy-підхід. Тут саме iPaaS має очевидну перевагу, адже є змога надавати доступ у реальному часі до даних, що зберігають у різних системах або застосунках. ESB-підхід менш адаптований до виконання завдань такої складності.

Окрім ESB-підходу, інтеграційні платформи зробили величезний крок щодо підтримки мікросервісної архітектури. Наприклад, більшість платформ (Dell Boomi, MuleSoft тощо) містять і підтримують:

  • API Management;
  • Discoverability;
  • Serialization;
  • Dynamic Process Routing;
  • Support for Docker;
  • Support for External Load Balancers;
  • Support for Custom Authentication;
  • Support for industry protocols for inter-process communication;
  • Platform APIs.

Також однією з основних переваг інтеграційних платформ є використання так званих InBox Connectors ― готових рішень для забезпечення зв’язку/з’єднання з різноманітними системами. Наприклад, якщо розглядати таку платформу як Dell Boomi, можна побачити, що вони покрили своїми «конекторами» більшість відомих і можливих платформ.

Завдяки Data Mapping інтеграційні платформи також дають змогу швидко трансформувати дані з одного формату в інший (можна опрацьовувати відповідну структуру даних через профайли).

Dell Boomi Data Mapping

MuleSoft DataWeave

Підсумовуючи все зазначене вище, скажу таке: інтеграційні платформи створили низку можливостей, за допомогою яких можна побудувати доволі комплексні рішення з мінімальними часовими затратами. Це дуже актуально, враховуючи складність інтеграційних завдань, з якими ми починаємо стикатися на практиці. Для прикладу, одним з найбільших проектів, в якому мені доводилося працювати, була побудова системи, що синхронізувала дані між enterprise-системою (величезною мережею супермаркетів у США) та чотирма різними HCM-системами. У такому разі синхронізація відбувалася за допомогою eventdriven near-realtime-підходу, тобто інтеграційне рішення реагувало на події в різних системах, що в результаті тригерили інтеграцію і синхронізували дані.

Огляд найліпших інтеграційних платформ

Більшість наявних тепер інтеграційних платформ підтримують ключові інтеграційні й комунікаційні патерни, зокрема application-to-application, publisher-subscriber, real-time and event-driven web services, streaming, batch, ETL.

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

На другому місці за популярністю, згідно з Gartner Magic Quadrant for Enterprise Integration Platform as a Service, — платформа Dell Boomi.

Dell Boomi дає змогу побудувати складне інтеграційне рішення за порівняно короткий проміжок часу. Наприклад, я прораховував часові затрати на мінімальний проект, що з’єднував SuccessFactors і HCM-систему одного з клієнтів (ураховуючи тестування, моніторинг, деплоймент-процедуру). Затрати на ESB-based-прототип, написаний на Java + Deployment, займав приблизно в 10 разів більше часу й утричі більше ресурсів, ніж такий самий прототип, побудований за допомогою Dell Boomi iPaaS-рішення. Звичайно, використання платформ, попри переваги у швидкості розробки, має й певні негативні наслідки, зокрема під час розробки доведеться враховувати наявні дефекти платформ, downtime й оновлення. Однак сукупні переваги все ж суттєво більші.

Ще одна популярна платформа, з якою мені доводилося працювати в межах низки проектів, ― MuleSoft. Її основна перевага — доволі звичне для Java-розробника середовище, а також можливість працювати з інтеграційними рішеннями на нижчому рівні.

З чого розпочинати роботу з інтеграційними платформами

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

Наступна проблема — те, що функція System Integration Engineer порівняно нішева й не дуже поширена на українському ринку розробників. Як наслідок ― відсутність у більшості компаній кар’єрного зростання спеціалістів цього напряму; труднощі з пошуком кваліфікованих спеціалістів на ринку й навчальних рішень для них. Попри те, що використання iPaaS-рішень доволі популярна практика в США та, наприклад, Австралії, знайти розробників на ринку України досить важке й комплексне завдання, яке ми з колегами розв’язали за допомогою побудови різноманітних курсів у SoftServe ІТ Academy, ramp-up-програм у межах компанії. Сукупно це все перетворилося на цілу окрему гілку в компанії зі своїми підрівнями й кар’єрним зростанням у System Integration Engineer.

Якщо взяти позицію Intermediate System Integration Engineer у компанії, базовий технічний стек потрібних знань матиме приблизно такий вигляд:

  • базові знання Java/.NET/Python;
  • базові знання JavaScript/Groovy;
  • розуміння структури REST/SOAP Web Services;
  • базові знання DB Desing/Quering;
  • базові знання Security Principals (Security Mechanisms, Authentication Types, Characteristics of Application Security);
  • Cloud Services (Compute Engines, Monitoring Services, Load Balancing, Auto Scaling тощо);
  • Data Interchange Formats (JSON/XMLStructure, Parsers, XSLT);
  • IntegrationPlatform (Proficient knowledge of Integration Platform configuration management principles, working with Batch and Near Real time data processing, design complex processes including, working with licenses, complex data mapping, base introduction into Integration Platforms sripting. This capability level also includes proficient
  • knowledge of implementing web services connectors using REST or SOAP principles, connecting and working with DBdata. Error and Exception handling. Working with revisions);
  • сертифікації (тут залежить від конкретно вибраної платформи).

Найвища кар’єрна ланка ― Expert System Integration Engineer ― архітектурна позиція, що передбачає поглиблені знання у переліченому вище стеку й експертні/поглиблені знання в кількох інтеграційних платформах.

Якщо вас цікавить напрям системних інтеграцій і ви вирішили копнути глибше, нижче пропоную кілька корисних посилань.

Інформація про платформи:

Огляд патернів і підходів до розробки:

Похожие статьи:
Цього разу DOU Ревізор завітав до Sisense, продуктової компанії, заснованої 2004 року в Ізраїлі. Sisense розробляє бізнес-аналітичну платформу,...
На нашем YouTube канале появились новые видеоролики.Обзор аксессуара Feiyu Tech FY-G4...
Американское представительство компании HTC огласило список смартфонов,...
На прошлой неделе мне довелось уже в третий раз побывать в республике...
Компанія SoftServe, що входить до п’ятірки найбільших IT-роботодавців...
Яндекс.Метрика