Атоми, молекули та інша хімія. Огляд платформи Dell Boomi
by Микола МацяхУсім привіт, мене звати Микола. Два роки я працюю на позиції System Integration Engineer у компанії SoftServe, сертифікований Dell Boomi Architect. У цій статті пропоную розглянути платформу Dell Boomi. Якщо ви ще не ознайомлені з iPaaS-рішеннями, рекомендую прочитати статтю мого колеги Ярослава Клочника про те, для чого потрібні інтеграційні платформи, які їхні переваги та сфери застосування.
За той час, що працюю з платформою Dell Boomi, я реалізував близько 20 різних інтеграцій. Інтеграція відбувається з HCM (Human Capital Management), в якій люди звітують про свою роботу, планують робочі дні чи беруть лікарняні. Такою системою користуються багато клієнтів: супермаркети, авіакомпанії, готелі тощо. Окрім основного функціонала, вони ще хотіли б бачити звіти з агрегованими даними за відділами компанії. Або, наприклад, функцію, щоб певним працівникам додати додатковий вихідний. Таку логіку ми реалізовуємо саме через платформу Dell Boomi та клієнтські APIs, які дають змогу експортувати та імпортувати дані.
Згідно зі звітами, Gartner Dell Boomi вже 6 років поспіль один з лідерів на ринку iPaaS-рішень. З’ясуймо, чому він такий популярний.
Dell Boomi Platform — це ESB-based iPaaS-рішення, яке дає змогу інтегрувати дані та аплікації як у межах компанії in-the-cloud, так і з On-Premise. Однією з особливостей платформи є гнучкість та простота у підключенні до різноманітних систем. Boomi пропонує широкий спектр готових конекторів для інтеграції з AWS, Salesforce, Google Cloud, Microsoft Azure, NetSuite та інших, незалежно від того, чи це Cloud, чи On-Premise. Якщо навіть знадобиться створити кастомний конектор, така можливість є.
Якщо розглядати Dell Boomi з технічного погляду, все крутиться навколо атомів, у деяких випадках — молекул. Що ж це за хімія і навіщо вона використовується в інтеграціях?
Atoms, Molecules
Boomi пропонує хмарну інтеграційну платформу, яка підтримує дві моделі розгортання: Cloud — коли всі endpoints містяться в хмарі, та On-Premis — якщо хоча б одна з integration endpoints міститься в межах корпоративної мережі. Під час використання хмарної моделі всі інтеграційні процеси можуть бути розгорнуті на Boomi Atom Cloud. Щоб забезпечити модель On-Premise, Boomi пропонує Atom — по суті розгорнуту Java-аплікацію.
Якщо, використовуючи On-Premise, ви хочете досягнути високодоступного та load balanced рішення, то в пригоді стане концепція Molecule.
Атом — це JRЕ, на якій розгортаються інтеграції. Коли інтеграція розгорнута, атом містить в собі весь список необхідних компонентів: логічні, трансформаційні блоки та конектори. Атоми можуть бути двох типів:
- Local Atom. Якщо потрібно отримати доступ до даних, що містяться поза фаєрволом, тоді цей тип вам підходить. Я завжди працюю з локальними атомами на своїх проєктах.
- Cloud Atom. Якщо всі потрібні дані розміщені зовні, Cloud Atom буде оптимальним рішенням. Це спрощує обслуговування атома, бо цим займається дата-центр Dell Boomi.
Molecule — це enterprise-версія атома, який розгорнутий на кількох локальних машинах для балансу навантаження та досягнення високої доступності. Одна з нод молекули називається head node, і цей статус може мігрувати між активними нодами в процесі відмов. Тобто, коли head node перестає працювати, інша активна нода стає head node, щоб підтримати виконання процесу.
Саме вона отримує повідомлення з Dell Boomi Platform, стежить за станом кожної ноди в межах молекули та розкидає процеси поміж іншими для балансу навантаження. Ця модель найкраще підходить для тих інтеграцій, які обробляють великий обсяг даних.
Forked Execution
Розподілене виконання є за замовчуванням активним в Atom Cloud, також це можна опційно активувати в Molecule. Це дає змогу виконувати кожен процес в окремій JVM. Завдяки цьому нода є більш стійкою, бо катастрофічні збої, які відбуваються з іншими процесами, не вплинуть на її виконання.
Environments
Всі молекули та їхні частини — атоми — існують в певному середовищі. Dell Boomi використав такий самий підхід: чи це Local Atom, чи Cloud Atom або Molecule — всі вони закріплені за певним середовищем. У платформі Dell Boomi вони можуть давати такі переваги:
- більше ніж один атом чи молекула можуть бути прикріплені до одного середовища;
- є змога класифікувати середовище Test чи Prod залежно від потреб;
- окрема конфігурація та версійність тестових середовищ і продакшена. Середовища з прикріпленими атомами.
Batch vs Real-Time Processing
Dell Boomi пропонує два типи виконання інтеграцій: Batch та Real-Time. Розгляньмо, яка між ними різниця.
Batch Processing. У цьому випадку Boomi буде запускати інтеграцію за певним інтервалом — від хвилини до річного кварталу. Ви можете це контролювати відповідно до потреб.
Real-Time Processing. Boomi також обробляє запити в режимі реального часу. Це допомагає перетворити процес в listeners, які очікують на тригер. Щойно тригер спрацьовує, починається інтеграція. Майже всі мої інтеграції — це Real-Time Processing. Вони реагують на клік кнопки в системі, зв’язаній з Dell Boomi.
Platform components
Для циклу розробки інтеграційних рішень (розробка, розгортання, тестування та підтримки) Dell Boomi пропонує три основні компоненти:
- Build
- Deploy
- Manage
Розберімо кожну з них детальніше та сферу їх використання.
Build
Boomi використовує концепт Build для організації та контролю обробки даних. Щоб інтегрувати аплікації безпосередньо з вебу, Dell Boomi застосовує вбудований візуальний інтерфейс (visual designer), де користувачі створюють process flow.
У Build ви можете:
- створити, редагувати та видаляти компоненти;
- будувати інтеграційні процеси;
- налаштувати Atom або Molecule (що це таке, я розповім трохи згодом);
- користуватись бібліотекою готових інтеграцій Dell Boomi User Guide.
Deploy
Deploy-меню показує всю активність, пов’язану з розгортанням інтеграцій. Сюди входить деплоймент процесів або окремих компонентів і встановлення Integration Packs. Якщо ви зайдете в меню Deploy, то залежно від прав вашого акаунта побачите:
- Packaged Components дає змогу створювати та керувати пакетами для процесів і компонентів, які ви створили.
- Deployments допомагає моніторити наявні розгортання та створювати нові.
- Integration Packs дає змогу користувачам розгортати або встановлювати інтеграції, спільні для їхнього облікового запису.
Корисна функція, якою я часто користуюсь, — Copy Deployment. Вона дає змогу перенести версію з одного атома на іншій в кілька кліків.
Manage
У Manage-меню містяться всі дані, пов’язані із запущеними інтеграціями, результати виконання, логи та помилки. Тут також можна переглянути дані, отримані з конекторів. Manage-меню не буде показуватися для всіх однаково, це залежить від прав і налаштування вашого акаунта:
- Process Reporting
- Atom Management
- Cloud Management (якщо це дозволено у вашому акаунті)
- Boomi Assure (якщо це дозволено у вашому акаунті)
- Process Library (якщо це дозволено у вашому акаунті)
- Integration Packs (якщо це дозволено у вашому акаунті)
- Trading Partner Management (якщо це активно у вашому акаунті)
Component locking
Звичайно, якщо ви працюєте над інтеграцією самі, то ця функція найімовірніше не знадобиться. Але коли кілька людей займається тією самою інтеграцією, та ще й в одному процесі, то стає складно зберігати всі зміни. Щоб ваше збереження не вплинуло на зміни іншого розробника, є функція Component locking. Вона дає змогу зробити компонент закритим до змін і відкритим лише для перегляду, поки ви працюєте над інтеграцією. Як тільки зберігаєте зміни, він знову стає доступним для змін. Звичайно, є нюанси зі статусом акаунта. Якщо це, наприклад, адмін, він може зняти локінг.
Subprocesses
Ще один компонент, який допомагає працювати автономно, — підпроцеси. Наприклад, якщо у вас з командою поділені завдання, ви можете працювати в окремих підпроцесах і зберігати зміни, не впливаючи на логіку колег. Наприклад, я займаюся витягненням даних через одне API, а мій колега — налаштуванням SFTP. У цьому разі ми використовуємо різні підпроцеси й наша логіка не перетинається.
Compare Deployments
Трапляється, що після певного розгортання інтеграція почала працювати по-іншому, а порівняння змін кожного компонента займає немало часу. Для таких випадків у Dell Boomi є функція Compare Deployments, яка показує різницю між версіями інтеграцій.
Недоліки
Варто згадати й про недоліки, з якими мені доводилось стикатись:
- Boomi — це документоорієнтована платформа, часто дані в документах потрібно посортувати за однією чи кількома колонками, а готового функціоналу для цього нема. І потрібно писати скрипт на Groovy або JavaScript.
- Нема циклів. Щоб прогнати певні алгоритми роботи кілька разів, треба писати шматок логіки з блоків платформи.
- Не можна стандартно вивантажити всі дані з CRT. У Boomi є таке поняття, як Cross Reference Tables. Це таблиці, які використовують, щоб, наприклад, за значеннями у двох колонках знайти значення третьої. На моїх проєктах буває, що потрібно всі значення з певної колонки додати в API-запит. Для цього треба додавати ще одну колонку з інкрементним значенням і циклом вивантажувати ці значення по одному.
- Іноді складно виправляти помилки виконання інтеграцій. Особливо коли ми працюємо в тестовому режимі з великим обсягом даних. Boomi обрізає логи, і нам потрібно запускати інтеграцію частинами даних у тестовому режимі, щоб знайти реальну помилку.
Підсумовуючи все написане, я не агітуватиму використовувати цю платформу. Але хотів би, щоб ви звернули увагу на iPaaS-рішення і Dell Boomi під час вибору технологічного стека, враховуючи ті переваги та недоліки, які вона пропонує.
Якщо вирішили спробувати Dell Boomi
Реєструйтесь на сайті, Dell Boomi пропонує 30-денний безкоштовний період користування платформою. Ви можете спробувати побудувати власні інтеграції. А завдяки безкоштовним онлайн-тренінгам — отримати багато цікавої інформації.
Якщо хочете докладніше ознайомитись з корисними функціями Dell Boomi та самою платформою, переходьте за посиланнями: