ДОВІДНИК З NODE-RED українською мовою
Оригінал статті Nick O’Leary за посиланням
Як все починалося, розповідає творець Node-RED - Nick O’Leary
Тоді у січні 2013 року я не міг передбачити, що мій веселий маленький проект з перевірки концепції стане Node-RED - low-code середовищем із відкритим вихідним кодом із мільйонами розгортань у IoT та автоматизації.
Задовго до того, як IoT став повсюдним терміном, яким він є сьогодні, я працював у IBM Emerging Technology Group, займаючись збиранням даних із пристроїв і роблячи з ними цікаві речі. Команда зосередилася на дуже швидких, коротких проектах, які перевіряють концепцію, і мала час для вивчення нових навичок, інновацій та роботи над додатковими побічними проектами.
Мій досвід роботи з середовищем протоколу MQTT ще до того, як він став відомий за межами IBM, привів мене до побічного проекту: я хотів якимось чином візуалізувати відображення повідомлень в інфраструктурі MQTT, щоб побачити, як вони надходять на одну тему та розсилаються на іншу. Використовуючи це в якості приводу, щоб також почати працювати у відносно новому середовищі виконання Node.js, я витратив день або два, щоб зібрати невелику демонстрацію програми, яка підключалася б до брокера MQTT і візуалізувала відображення тем (topic) у веб-браузері.
Показуючи це моєму колезі Дейву Конвей-Джонсу, я зауважив, що треба не дуже багато зробити, щоб він був більш інтерактивни і щоб дозволити самому рисувати відображення та застосовувати їх. Той відправив мене добробляти це, і через 24 години я отримав просту програму на основі браузера, яка могла означувати та застосовувати відображення між темами MQTT. Це дуже швидко стало корисним.
Ранній знімок екрана Node-RED
Проекти, над якими ми з Дейвом працювали, стали багатими на нові вимоги. Кожен проект потребував доступу до даних з іншого типу джерела, наприклад, пристрою, підключеного до послідовного порту, або можливості змінювати дані за допомогою фрагмента коду JavaScript.
Я витратив кілька днів на переробку коду, щоб полегшити написання нових вузлів, розблокувавши можливість швидкого додавання вузла function
, change
та switch
, які стали основними будівельними блоками інструменту.
Корисність цього застосунку була очевидною, і все більше колег почали ним користуватися, і він розвивався на основі реальних клієнтських проєктів. Проте, він все ще залишався інструментом, відомим здебільшого лише нашій команді.
Коли ми розмірковували, як найкраще просунути проєкт вперед, у нас було дві основні опції: залишити його собі та спробувати отримати підтримку від продуктового підрозділу IBM для перетворення його на повноцінний продукт, або ж піти шляхом відкритого коду (open source). На мою думку, шлях відкритого коду був природним вибором, і ми врешті-решт вирішили саме так і зробити, опублікувавши його наприкінці 2013 року.
Я продемонстрував Node-RED наприкінці 2013 року на зустрічі IoT у Лондоні, і новина про нього поширилася серед моїх колег у цій спільноті. Через тиждень я був на конференції з апаратного забезпечення з відкритим кодом і відвідав воркшоп з автоматизації будинків. Я був здивований, побачивши Node-RED на екранах усіх учасників! Ведучий воркшопу побачив Node-RED і переробив свою програму так, щоб люди не мали турбуватися про написання коду, а могли робити корисні речі набагато швидше.
Демонстраційна лабораторія IBM Emerging Technology – багато демонстрацій було створено на Node-RED
Ключовим кроком уперед став той момент, коли IBM готувалася до запуску нової служби IBM Cloud. За кілька місяців до запуску вони шукали інноваційні ідеї, які могли б допомогти розширити пропозицію. Ми висунули пропозицію використовувати цей створений нами інструмент як спосіб візуалізації відображення веб-сервісів у хмарі. Це викликало великий інтерес у ширшої аудиторії всередині компанії, і хоча ця концепція врешті-решт ні до чого не привела, наш проект помітили.
З часом ми почали спостерігати, як Node-RED підхоплює не тільки спільнота OSS. Компанії почали використовувати його з власними апаратними пристроями та онлайн-сервісами.
На той час IBM Cloud уже був запущений, і завдяки нашим попереднім розмовам з ними, ми домоглися включення Node-RED до каталогу як одного зі “стартових застосунків”, що надало користувачам можливість запускати Node-RED у хмарі за допомогою одного кліка.
Node-RED в оригінальному каталозі IBM Cloud
Коли ми бачили, як проєкт розвивається, почалися обговорення щодо його довгострокового майбутнього. Деякі компанії висловили занепокоєння тим, що це був проєкт з відкритим кодом від одного постачальника. Це було в той час, коли IBM активно співпрацювала з проєктом Node.js для допомоги в перезапуску Node Foundation (яка згодом стала OpenJS Foundation). Це завершилося тим, що Node-RED приєднався до фундації як один із засновницьких проєктів, поруч з іншими відомими проєктами, такими як сам Node.js, jQuery та багатьма іншими. Наявність незалежної структури управління проєктом дало компаніям більше впевненості долучитися до нього, знаючи, що вони матимуть рівне право голосу в його розвитку. Зокрема великими прихильниками проєкту стали Hitachi, які мали команду, присвячену роботі над ним.
Для програмістів час, витрачений на написання шаблонного коду, не додає цінності застосунку, який вони створюють. Завдяки low-code, Node-RED абстрагує весь цей шаблонний код, щоб вони могли зосередитися на бізнес-проблемі.
Виробники пристроїв звернули увагу на Node-RED тоді, коли він був встановлений на образі Raspberry Pi, оскільки його доступність для low-code привабила широкий спектр користувачів — від системних інженерів, які створюють автоматизації, до ентузіастів IoT.
Тепер, маючи мільйони розгортань, Node-RED продовжує збирати, перетворювати та інтегрувати дані за допомогою візуалізованих інформаційних панелей. І, оскільки ця спільнота з відкритим кодом зростає, вона залишається вкоріненою в двох стовпах: своєму low-code користувацькому досвіді і його розширюваності.