Статті
Вступ до інтегрування Git з Node-RED
Це фрагмент перекладу статті Kazuhito Yokoi, оригінал взятий звідси
У цій статті я розповім про функції інтеграції Git у Node-RED. Використовуючи пристрої Raspberry Pi або хмарні сервіси, багато хобі-користувачів швидко створювали свої потоки Node-RED, просто підключаючи вузли, щоб реалізувати свої ідеї систем IoT, таких як домашня автоматизація або RPA(Robotic Process Automation, прим. перекладача). Щоб використовувати цей чудовий досвід розробників потоків у своїй роботі, вони можуть розглянути можливість використання Node-RED для критично важливих систем. Наприклад, це системи автоматизації та панелі інструментів візуалізації на заводах або фінансові серверні API для мобільних застосунків. Однак у цьому випадку розробники потоків, як правило, стикаються з такими проблемами зі своїми виробничими системами.
Проблеми в розробці потоків:
- Проблема 1: усі функції існують в одному потоці в одному середовищі Node-RED. Якщо в критично важливій системі доступне лише одне середовище Node-RED, величезний потік, який містить багато вузлів, існуватиме в цьому єдиному середовищі. Оскільки єдиний потік використовуватиме величезні ресурси пам’яті та ЦП, це призводить до проблем із продуктивністю. З іншого боку, змінні контексту або кінцеві точки HTTP, які мають однакові імена, іноді конфліктують через єдине середовище. Що стосується Node-RED dashboard, усі компоненти відповідно до різних програм існують в одному інтерфейсі інформаційної панелі.
-
Проблема 2: Хто змінив потік Node-RED? Коли потік було змінено? За замовчанням багато розробників потоку використовуватимуть одне середовище одночасно. Редактор потоку має автентифікацію користувача для входу, але не керує тим, хто редагує потік і коли його змінює розробник потоку. Завдяки цьому механізму розробники потоку не можуть повернути потік, коли проблема виникає в критично важливих системах. Крім того, відповідальність за серйозну ситуацію буде розпливчастою.
- Проблема 3: резервне копіювання потоку вручну та незвичайне спільне використання потоку з іншими розробниками. Щоб уникнути втрати потоку в редакторі потоку, розробник потоку вручну створює резервну копію потоку за допомогою функції «експорт потоку», а потім зберігає його як файл JSON на локальному комп’ютері звичайним способом. Їм потрібно встановити ім’я файлу для ідентифікації потоків, але це трудомістке завдання. Крім того, іншим розробникам потоку також буде важко зрозуміти деталі потоку та необхідних модулів у разі спільного використання файлів потоку, оскільки фрагменти інформації записуються розробниками потоку в інші файли, як-от файли Word.
Як я описав вище, існує багато проблем у розробці потоку для виробничих систем. Якщо середовище Node-RED підготовлено так само, як і персональне середовище, поступове розроблення потоку може бути важким.
Що таке інтегрування з Git?
Ця функція відома як функція проекту в офіційному документі Node-RED. Використовуючи інтеграцію Git, розробники потоків можуть керувати своїми потоками в редакторі потоків так само, як і розробкою загального коду за допомогою команди Git або IDE, наприклад Visual Studio Code. При розробці систем три проблеми, описані в попередньому розділі, можна вирішити наступним чином.
Рішення з використанням інтеграції Git
- Рішення проблеми 1: зміна проектів
Після ввімкнення інтеграції Git розробник потоку може вибрати один проект розробки з кількох проектів у редакторі потоку. Оскільки кожен проект має мінімальний потік лише для реалізації однієї програми, розробники потоку можуть вирішити проблеми з точки зору ресурсів комп’ютера та конфліктів артефактів усередині потоку. Зі свого досвіду я бачив жахливу ситуацію, коли непотрібні вузли конфігурації залишаються в потоці через те, що середовище розробки потоку спільно використовується кількома проектами. Використовуючи функції перемикання проектів, розробники потоків можуть уникнути забруднення через інший проект і продовжити паралельну розробку кількох потоків у різних проектах в одному середовищі Node-RED.
- Рішення проблеми 2: керування версіями потоку
У проекті, створеному за допомогою функції інтеграції Git, редактор потоку має вкладку «History» на бічній панелі. На вкладці розробники потоку можуть вручну ввести повідомлення про фіксацію, коли потік має бути в контрольній точці, щоб записати розроблений потік. Якщо в налаштуваннях користувача вибрано автоматичний режим замість ручного режиму, також можна автоматично додавати коміти з повідомленням за замовчуванням, коли розробник потоку натискає кнопку розгортання. В обох режимах потік, керований версією, можна відновити до попереднього коміту, який має виконуваний потік, за допомогою операції CLI Git, коли останній потік не працює через помилку. У єдиному середовищі Node-RED усі коміти здійснюються одним користувачем. Однак, якщо розробники потоку діляться своїм потоком у сховищі GitHub, кожен коміт містить інформацію про розробника, який змінив потік. Ця інформація буде корисна, щоб визначити, коли і хто зробив помилку під час вирішення проблем у потоці.
- Рішення проблеми 3: спільне використання потоку на GitHub
На додаток до контролю версій у локальному сховищі, Node-RED має можливість завантажувати у віддалений репозиторій на GitHub. Використовуючи цю здатність, розробнику потоку вигідно створювати резервну копію потоку, готуючись до втрати середовища, як-от поломка ПК або сервер. Розробники потоків також можуть вводити інформацію про те, як використовувати модулі потоків і залежностей для виконання потоків у редакторі потоків. Редактор внутрішнього потоку виводить цю інформацію в загальні файли, такі як README.md і package.json. Коли інші розробники потоку завантажують спільний потік, вони можуть легко перевірити деталі програми з файлів документації. Крім того, вони можуть установити необхідні модулі, просто натиснувши кнопку встановлення модуля в редакторі потоку. Крім того, цю функцію можна використовувати в автоматизованому розгортанні потоку для хмарних і периферійних пристроїв за допомогою конвеєрів CI/CD, таких як GitHub Actions.
В оригіналі статті також можна прочитати:
- How to use Git integration
- Creating a new project
- Developing flow and recording history
- Checking Git log
Висновок
У цій статті я коротко пояснив інтеграцію Git на Node-RED, яка є необхідною функціональністю для розробки потоку критично важливої системи. Провідні компанії вже використовували інтеграцію Git у своїх критично важливих системах. Наприклад, компанія Siemens використала цю функцію у своєму продукті Industrial Edge Flow Creator. Якщо вас цікавлять подробиці процедур, ви можете прочитати документацію цього продукту. Як інший приклад, Red Hat також застосував цю інтеграцію Git у своєму операторі Node-RED для Red Hat OpenShift за умовчанням. З розширенням використання у виробництві інтеграція Git стане вирішальною та стандартною розробкою серед користувачів Node-RED.