Інтеграційні платформи (iPaaS): у чому фішка
Привіт, мене звуть Ярослав, і в цій статті я розповім про Integration Platforms (iPaaS), що використовують у різних проектах у компанії SoftServe і робочих практиках System Integration Engineer.
Дефініції та історична довідка
Що ж таке Data integration? Основна функція Data integration ? маршрутизація даних з розрізнених джерел (баз даних, систем, мобільних/веб-застосунків через API тощо) в єдину систему/платформу в межах організації або організацій. Наступне завдання — узгодження різних типів даних з єдиним форматом, що використовуватимуть під час будь-яких маніпуляцій, трансформацій або синхронізації.
Інтеграційний напрямок вінік унаслідок різкого збільшення протягом останніх 10 років кількості різноманітних систем, що застосовують усередині організацій (Human Capital Management, Portals, Служб тощо), та, відповідно, потреби у швидкій синхронізації даних між цими системами. До певного часу інтеграційну функцію виконувало 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 ? архітектурна позиція, що передбачає поглиблені знання у переліченому вище стеку й експертні/поглиблені знання в кількох інтеграційних платформах.
Якщо вас цікавить напрямок системних інтеграцій і ви вирішили копнути глибше, нижче пропоную кілька корисних посилань.
Інформація про платформи:
- Test-Drive New Cloud Services ;
- Boomi ;
- MuleSoft ;
- Talend ;
- Magic Quadrant for Enterprise Integration Platform as a Service .
Огляд патернів і підходів до розробки:
- The top six microservices patterns ;
- Microservices a.k.a.«Hipster SOA» and Boomi ;
- Cloud-based integration ;
- Enterprise service bus .
Опубліковано: 22/10/19 @ 10:00
Розділ Різне
Рекомендуємо:
Кремнієва долина Китаю. Як програмісту живеться у Шеньчжені
QA дайджест #39: покриття коду і тест-покриття, взаємодія з розробниками
6 помилок в просуванні продукту, які краще не допускати
Використовуємо SpriteKit для створення анімації в Swift
Секретні техніки опрацювання вимог. Частина 1