Node-RED, и Corezoid — эффективные low code инструменты и среды визуального программирования, которые значительно упрощающие работу разработчика. Их сравнение показывает, что Node-RED имеет ряд очевидных преимуществ, которые делают его более выгодным в долгосрочной перспективе. Основные преимущества: это бесплатно, на Udemy можно посмотреть более 6000 обучающих видео для разработчиков с разным уровнем опыта, есть возможность регистрировать код, создавать неограниченное количество сред и выполнять неограниченную масштабируемость в случае необходимости.
Кроме того, Node-RED использует технологию «платформа как услуга», которая очень полезна, поскольку PaaS помогает разрабатывать, запускать и управлять своими приложениями без необходимости формировать и поддерживать инфраструктуру. Кроме того, нет необходимости выполнять обновления программного обеспечения или проводить регулярное техническое обслуживание оборудования. Node-RED предоставляет все необходимые среды для сборки и развертывания проекта. Более того, есть открытая библиотека с готовыми пакетами, а также возможность использовать как SQL, так и не-SQL базы данных.
В заключение, сравнение Node-RED и Corezoid показало, что каждая из этих сред имеет свою специфику, а также преимущества и недостатки, однако Node-RED выглядит более выгодной и гибкой, что позволяет адаптироваться к проектам разного масштаба и сложности.
Для разработки решений в сфере финансов помимо классических языков программирования таких как Java, Javascript и Python также используются инструменты визуального программирования, что позволяет не только программистам, а также специалистам с менее глубоким знанием языков программирования автоматизировать процессы. На данный момент два самых популярных инструмента это Node-Red и Corezoid. Их мы и рассмотрим.
Node-RED flow: Как это выглядит
Corezoid flow: Как это выглядит
И в Node-Read и в Corezoid разработка происходит в браузерном редакторе где пользователи работают с нодами, выстраивая их в ветки процессов, формируя поток. Нода представляет из себя набор функций, которые выполняют определённые действия и/или проверки. После отработки ноды, на выходе мы получаем заявку – JSON объект который будет направлен в следующую ноду. В какую именно – зависит от результата, полученного в этой ноде и описанной логики. Созданные потоки загружаются в среду выполнения в одно нажатие клавиши.
Также, Обе системы предоставляют возможность писать код в редакторе как альтернативу визуальному программированию.
Corezoid это платное решение созданное компанией Middleware, написанное на языке erlang. Имеет более низкий порог вхождения по сравнению со своим конкурентом. Corezoid сразу поставляется с полным набором инструментов для старта работы, что является большим плюсом, так как пользователям не нужно отдельно разворачивать сервер, базу данных и систему очередей – создали пробный аккаунт и можно приступать к работе. В разработке на данной платформе используется stateful подход, при котором данные хранятся в самих нодах. что может вызвать проблемы с обновлением и масштабированием. Как пример – у каждой ноды в Corezoid есть свой идентификатор, и при изменении данного идентификатора данные из этой ноды будут потеряны.
Node-RED это Open Source решение созданное компанией IBM и написанное на Node.js. Порог вхождения выше, так как с базами данных, сервером и очередями, а также с тем как их подключить пользователям придется разбираться самим. В Node-RED используется stateless подход при котором все данные хранятся отдельно от программного кода, что является плюсом при масштабировании и обновлениях.
Проверка условий. Switch (Node-Red) vs Conditions (Corezoid)
И в Corezoid и в Node-RED существует нода которая позволяет направить заявку по разным веткам процесса в зависимости от выполнения условий.
В Node-RED эта нода реализована по аналогии со switch в Javascript. Она сравнивает значение одного и того же параметра.
Switch node
В Node-red, в отличии от Corezoid, существует возможность создать два асинхронных потока, если значение параметра который мы проверяем соответствует в двух и более проверках.
Switch node
Switch node
В Corezoid это нода называется Сonditions и реализована по аналогии с if/else if. В одной ноде возможно сравнивать разные выражения.
Condition node
Доступна возможно сравнивать на равно, неравно, больше, меньше, использовать регулярные выражения и сравнивать разные типы данных.
Condition node
Condition node
Обработка http запросов. Http request (Node-Red) vs API Call (Corezoid)
Еще одна пара часто используемых нод, которые поставляются из коробки – ноды для обработки http запросов. В Node-Red это http request node, в Corezoid – API Call.
В http request ноду возможно динамически передать все параметры, включая Method, URL, Headers либо объявить их прямо в ноде.
Request node
В ответ возможно получать не только JSON объект, но и UTF-8 и binary. В зависимости от того с какими данными мы собрались работать.
Request nodes responses
В Corezoid за эту функцию отвечает нода API Call.. Она поддерживает все методы, но в в отличии от Node-RED в ответ возможно получить только JSON.
API Call node
Объявление переменной. Set Parameter (Corezoid) vs Change (Node-Red)
Set Parameter позволяет добавлять в заявку новые параметры, устанавливать их значения и изменять значения существующих параметров.
Также с помощью этой ноды возможно выполнять функции:
Set parameter node
В Node-RED Change выполняет те же функции что и Set Parameter в Corezoid, а также дает возможность переименовывать и удалять параметр. При установке свойства, значение может быть результатом выражения JSONata (декларативный язык запросов и преобразования с открытым исходным кодом для данных JSON), которое выполняет в том числе и математическую функцию. Плюсом является возможность сохранять/изменять значение параметра в памяти приложения, для обращения к нему многоразово.
Change node
Ноды выполнения кода. API Code (Corezoid) vs Function (Node Red)
И в Corezoid и в Node-RED есть возможность выполнять код. Corezoid работает с JavaScript и Erlang, посредством ноды API Code.
Code node
В отличие от Node-RED в котором процесс остановится в случае возникновения ошибки в ноде отвечающей за выполнение кода – в Corezoid возможно установить значение временного интервала, при достижении которого заявка пойдет дальше по процессу в том случае, если нода API Code не отвечает. В Node-RED можно использовать try/catch для обработки ошибок, либо внутри ноды с кодом либо с помощью ноды catch. .
В Node-RED данная нода выполнения кода называется Function и дает возможность работать только с Javascript. Внутри Function можно прописать switch и настроить несколько выходов из этой функции, это помогает существенно сократить количество дополнительных нод и избежать визуального перегруза.
Основным отличием и безоговорочным плюсом Node-RED является возможность поставить любую библиотеку – в Corezoid количество библиотек заранее задано и ограничено.
Также, в Node-RED возможно выполнять код при старте приложения, и разделять поток на несколько потоков, выполняя действия асинхронно. Это удобно в случаях когда нам нужно выполнить несколько действий параллельно например сохранить имя пользователя в базу данных при этом продолжая двигаться по потоку.
Плюсом Corezoid — является то что он предоставляет базу данных, все заявки которые поступают в ваш поток — возможно хранить в ноде Callback, к которым после — возможно обращаться через ноду set param (либо API Corezoid) — данные в нодах хранятся в формате JSON.
В Node-RED возможно хранить данные в памяти приложения, но в случае если оно упадет — данные будут удалены. В памяти зачастую хранится либо кеш либо данные которые записываются при старте приложения.
Так как Node-RED является Open Source решением — он позволяет устанавливать кастомные ноды написанные сторонними разработчиками — Corezoid позволяет использовать только Core ноды. НО у Corezoid существует нода GIT Call которая позволяет подключать и исполнять код из Git-репозиториев. В новой версии разработчики добавили поддержку подключения к приватным репозиториям и расширили список поддерживаемых языков до 5: JS, Python, Go, PHP, Java.
В Node-RED можно создавать свои собственные API с помощью нод http-in и http-response — в первой ноде возможно указать эндпоинт на который будут приходить запросы, во второй возможно передавать любой ответ и любой статус код.
В Corezoid такая возможность отсутствует. Запросы в поток пробрасывать всё же можно, но ответ на них всегда будет с одним и тем же статусом и сообщением.
В то же время в Corezoid есть возможностью подключать веб-хуки в несколько кликов для всех популярных мессенджеров. Также существует унифицированная бот-платформа, которая позволяет в нескольких кликов создать свой чатбот с текстами, кнопками, локализациями и логикой, с возможностью подключать их ко всем популярным мессенджерам.
Последняя тема которую хотелось бы упомянуть это окружения и системы управлениями версиями.
Для Node-RED доступна работа процесса на нескольких окружениях (например dev, stage, prod) и поддерживает системы распределения версий, такие как Git.
Это позволяет вести разработку локально или в тестовой среде, а также дает возможность откатить версию и вернуть процесс к состоянию когда в него были внесены изменения.
В Corezoid такой возможности нет. Разработка ведется исключительно в одном потоке и откатить изменения невозможно. Вы можете создавать логику в отдельном потоке, а после переносить его в рабочий руками, но это скорее полумера.
И Corezoid и Node-RED это два отличных инструмента визуального программирования. Их основными отличиями являются цена, порог входа и возможность кастомизации.
Corezoid подойдет компаниям, которые хотят своими силами и как можно быстрее автоматизировать бизнес процессы. Сотрудники этих компаний быстрее смогут разобраться с продуктом и начать строить первые процессы за счет более низкого порога входа. Минусами является плата за использование продукта, а также недостаточная гибкость инструментов.
Node-RED в свою очередь подойдет компаниям которые имеют в запасе профильных специалистов или время, которое будет потрачено на обучение кадров и развертывание среды разработки. Использование Node-RED в долгосрочной перспективе несёт в себе такие бонусы как экономия на ежемесячной плате и более гибкая система и функциональная система. Также не смотря на то что решение является бесплатным — IBM планирует его поддерживать и в будущем.
Таблица сравнения основных показателей для наглядного сравнения, а также полезные ссылки:
Система | Node-RED | Corezoid |
---|---|---|
Цена | 100% бесплатно (проект с открытым исходным кодом) | Существует бесплатная пробная версия на 30 дней. Минимальная версия стоит 30 долларов. |
Привязка к поставщику решений | Нет | Vendor-lock-in |
Кто создал | IBM (США) | Middleware (США) |
Дата запуска | 16 октября 2013 г. - 0.2.0– v0.14 | точная дата не найдена |
Клиентский портфель | Sense Tecnic, Agilite, Go-IoT, Spirit, Opto 22 и многие другие | Western Union, Visa, Mastercard, Viber и многие другие |
Качество документации | Высокая | Высокая |
Справочный центр и поддержка | Есть только блог и форум | Есть возможность обращаться в саппорт на почту |
Обсуждения сообщества и форумов | Форум, активный Канал команды Slack | Не найдено |
Курсы Udemy | Да, почти 6 тысяч видео | Нет |
Стабильные релизы | Да | Да |
Концепция как услуги | PaaS (платформа как услуга) | SaaS (Программное обеспечение как услуга) |
Разнообразие руководств по установке | Обширный список возможностей | Простая, бесплатная пробная страница регистрации Чтобы хостить на своем сервере возможно подать заявку |
Поддержка локального копирования | Да, документация Требуется предварительная установка Node.js | Нет |
Поддержка NPM | Да | Нет, но есть возможность подключать сторонние репозитории |
Облачная среда | IBM (Bluemix), AWS, MS-Azure и т. д. | AWS, MS-Azure и т. д. |
Редактор потоков | Веб | Веб |
Схема цепочек потока | Слева направо | Слева направо Сверху вниз |
Уровень удобства интерфейса пользовательского интерфейса | Высокий | Высокий |
Debug режим | Да | Да |
Возможность логировать код | Да | Нет |
Метаданные | JSON | JSON |
Нативное логирование | Info,debug,error + fatal, warn, trace, off | Info,debug,error |
API для создания нод и процессов | Да | Да |
Неограниченная масштабируемость | Да (если разработан как stateless приложение) Обеспечивает неограниченное масштабирование и встроенную устойчивость для обработки пиковых нагрузок. | Нет |
Возможность разрабатывать в разных окружениях | Да, возможно создавать неограниченное количество окружений | Нет, разработка ведется в одной среде |
Поддержка систем управления версиями | Да | Нет |
Управление версиями потока | Да, через встроенный интерфейс GitHub | Нет |
Инструменты импорта/экспорта | Да, как весь процесс так и отдельные ноды | Да, но только весь процесс целиком |
Интеграция баз данных | Да, через библиотеки. Поддерживаются как SQL, так и no SQL | Нет (только через API либо при подключении репозиториев) |
Нативный дашборд | Да, но его нужно построить: дашборд | Да |
Нативная база данных | Нет, но можно сохранять данные в память приложения | Да |
Поддержка пользовательских нод | Да | Нет |
Богатая библиотека с пакетами | Да Основное преимущество: сообщество всегда публикует различные решения и утилиты Node-RED | Нет |
Умение писать код | Да, Javascript | Да, Javascript, Earlang |
Давайте пообщаемся. Укажите Ваши контакты и мы свяжемся в течение 24 часов.
Давайте пообщаемся. Укажите Ваши контакты и мы свяжемся в течение 24 часов.
Добавить комментарий