
2025.02.18
「売上をスケールする」AIの使い道とは アルペンが挑む、kintone×生成AIの接客データ活用法
Node-REDでプロジェクト管理を始めてみよう!(全1記事)
リンクをコピー
記事をブックマーク
船津浩司氏(以下、船津):株式会社ウフルの船津浩司と申します。今回は「Node-REDでプロジェクト管理を始めてみよう!」というテーマで、プロジェクト機能についてご紹介できればと思っています。
まず、私が何者かといいますと、株式会社ウフルでマーケティングを担当しています。例えば自分が担当する「enebular(エネブラー)」という製品のプレゼンやデモ制作、ドキュメントを書いたりといったことをしています。
enebularは弊社の製品で、ざっくり説明するとNode-REDにIoTの便利な機能を付けたサービスです。遠隔にあるデバイスに作ったフローを配信できたり、デバイスのログを確認できたり、という機能を持っています。もしよかったら使ってみてください。
そんな感じなので、僕自身は非エンジニアです。コードはぜんぜん書けなくて、ちょっとSQLが書けるくらいなんですけど、先ほど日立さんが説明していたノードの開発の諸々みたいなところはぜんぜん門外漢で、「こんな世界もあるんだ」という感じで聞いていました。
そんな僕が好きなノードは、node-red-contrib-line-messaging-apiという、LINEに配信できるノードです。ふだん慣れ親しんでいるアプリに何か結果を出せるので、自分自身も「俺なんか作ったな!」と思えるし、デモするときとかもイメージが掴みやすいのかなと思って気に入っています。
改めまして今回お伝えしたいことは、Node-REDのちょっと前のバージョンからですが、新しく追加されたプロジェクト機能で何ができるかということです。これを伝えた後にプレゼンテーション終わりには「あ、プロジェクト機能、ちょっと便利かも」「使ってみようかな」なんて思っていただけるとうれしいです。
その前に僕のNode-REDの使い方ですが、先ほど簡単に説明した通り、デモ作成で使っています。例えばイベントにいらっしゃったお客様の前で簡単な通知システムを作ったり、パートナーのソリューションと連携させたり、あとはハンズオンのプログラムを作ってみて「こんな感じだったら楽しめるかな?」とか、自社製品の魅力を伝えるために使っています。
日々使う中で、「Node-REDにこのプロジェクト機能があったらいいな」と思うことが多々あります。そういった中でNode-REDのこんなところがいいなと思っているのは、エンジニアじゃない僕でも簡単に作れるところと、あとはさっき「ちゃちゃっと作れる」と言ったみたいに本当にすぐに作れちゃいます。
さらに、コードが大量に書いてあると「……ウッ」と思ってしまいますが、Node-REDだとエンジニアじゃない方にも流れがわかるので「あ、なるほど。こんなことをやっているんだね」と、直感でわかる。そんなところがいいなと思っています。
一方でそういうことをやっていると、作ったデモのフローの管理や、自分ではなく他の人がデモをしたときにうまく作業ができないというのが僕の困りごとです。みなさんもこういう経験はあるんじゃないのかなと思います。
具体的にどういうことかと言うと、Node-REDは基本的に1つの環境に1つのフローのみという感じで、たくさんのフローを扱う作業はあまり想定していません。なので、僕は、flow.jsonのファイル名を変えたりしてストックする対応をしています。僕の知り合いには、たくさんタブを作って、そのタブごとに訂正したり有効化したりしてフローを管理されている方がいます。
慣れている方だとGitとかを使っている方もいらっしゃるかもしれませんが、どちらにせよフローを切り替えるというのは少し大変です。
さらにこのフローというのは実は複数のファイル、flow.jsonだけではなくて承認用の情報が入っているものや依存関係を整理したものなどが関係したファイルが3つあって、このflow.jsonだけではこれを完全に動作するプログラムというのを管理できないので、この単純に扱うファイル数が多いというのもちょっと面倒くさいところです。
共同作業では、Functionノードを2つ並べてみても違いはわかりにくいですよね。だから、Node-REDにどんな変更があったか1つ1つクリックして設定を見るという経験がある方はけっこう多いんじゃないかと思います。
さらにDiffを取ってみてもNode-REDのflow.jsonは1行に全部書いてあって、Diffを取ったら全部差分が出ているとか、あとは、ノードの位置が変わっただけでも差分に出ちゃうので、本当に意味がある差分はどれなのかというのを読解するのもけっこう難しいです。
デモを改善しても、新しいデモを共有するというのも少し難しかったりします。
そこで便利なのがプロジェクト機能です。デフォルトでは無効になっている隠し機能です。これを有効化すると新しい方式でフローを管理できます。さらに、Gitをご存知の方も多いと思うんですけど、エンジニアのみなさんが慣れ親しんだバージョン管理のシステムが使えます。
新しい管理方式というのは、これを有効化するとプロジェクトという概念でフローを管理することができます。GIFの動画を撮ってみたんですけど、本当にボタンのクリックで簡単に違うフローを開くことができます。もちろん元のフローに戻るのもすごく簡単です。
さらにNode-RED関連ファイルのディレクトリもプロジェクト単位で生成してくれて、同時にGitのファイルとかも作ってくれます。なので、ファインダーやエクスプローラーで見たときもわかりやすくなっています。さらに、Node-REDのプロジェクト機能で僕がすごく気に入っているところは、差分がすごくわかりやすい点です。
田中:いいですね。すごい。
船津:少しわかりにくいかもしれませんが、フローをいちいちクリックしなくても一覧で「ここに変更があったよ」みたいなことがすぐにわかります。Gitでみんながよく知っているNode-REDの画面からボタンクリックでクローンができたりプッシュができたりとか、そんなことができます。
せっかくなので、簡単にプロジェクト機能を実際の画面を通してご紹介できればと思います。
田中:よろしくお願いします。
船津:ライブだと緊張するんですけど、説得力があると思います。すごい簡単です。
田中:オンラインで応援しています。
船津:ありがとうございます(笑)。今はすごくシンプルなフローです。Injectノードがあって、Debugノードで見ています。これで、例えば僕が誰かに「このデモ使ってみてみてよ。良いよ」と言ったとします。
今までだとflow.jsonや認証情報を渡すプロセスが個別にあったと思うんですけど、このプロジェクト機能を有効にするとハンバーガーメニューのところから「プロジェクトを開く」みたいなものが出てきて「プロジェクトをクローン」という、まさしくGitっぽいことが書いてあるんですね。ここで任意のプロジェクト名を作って、リモートリポジトリのURLを入れます。
田中:これは公開のやつですね。
船津:そうです! 僕の場合はGitHubなのでGitHubのパスワードを入れて、これはNode-RED側で登録する認証情報の暗号化キーですね。これを入れてあげれば……できるかな? できた!
田中:おおー! すごーい!
船津:こんな感じで新しいフローを簡単に呼び出すことができます。今回は、僕のお気に入りのLINEに配信するというフローです。元のフローに戻るという場合もこんなふうにUI上のボタンをクリックすれば、すぐに戻れます。一度クローンしてしまえば簡単にそのフローを呼び出すことができます。
プロジェクト機能では、他に「プロジェクト履歴」というタブも新しくできています。例えばここで今「起きて!」という内容をLINEに送る。これは何を考えて「起きて!」と書いたのかはわからないんですけど(笑)。
こんなものが入っていて、これを「お知らせがあるよ!」みたいなものに変えてあげたとすると、今までだったらこれをデプロイして実行してみたいな感じだと思いますが、ここに本当にGitっぽくローカルファイルで変更がありましたというのが、こんな感じですぐにわかります。
配列を展開して「お知らせがあるよ!」という変更も確認できます。本当にステージングに上げると「メッセージを変更!」というコミットが見れます。もちろん今までの「こんな差分があったよ」みたいなことが遡って全部見ることができます。
さらにリモートリポジトリにつながっていて、ここに「あなたのリポジトリは1個進んでますよ」と、出ていますね。こういう状態のときはプッシュしてあげればGitHub上のフローも最新化されて最新のコミットのバージョンになります。
田中:ここはGitの操作ですね。
船津:本当にGitですね。
田中:はい。すばらしい。
船津:Functionノードなども行ごとに差分も見れるようになっていて、すごく便利です。
こんな感じの便利なプロジェクト機能なんですけど、まだちょっと物足りないところも実際にはあって、例えばGUI上から「このコミットのプログラムを呼び出したいな」という操作はまだできないみたいなんですね。
でも、実際にはGitが使えるので、さっきのプロジェクトのディレクトリに移動して、そこでGitコマンドを打てば普通にGitとして使えます。そこで前のコミットを呼び出したり、GitクライアントでSourcetreeを使ったりできると思うので、エンジニアのみなさんはNode-REDに馴染みやすくなるんじゃないかなと思います。
田中:すごい。
船津:結論としては、Gitを使わずにプロジェクトを切り替えるだけでもすごく便利なので、みなさんにぜひ使っていただきたいなと思います。足りないところはもちろんあるんですけど、そこはケースバイケースで柔軟に使っていただければと思っています。
この便利なプロジェクト機能を使うにはNode-REDのsetting.jsをfalseのところをtrueにするだけです。
田中:そういうことか。
船津:ぜひみなさん参考にしてみてください。本日はありがとうございました。
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
第20回エクゼクティブメンターイベント「今、「ひと」と組織が共創する〜働き方の未来へ」
2024.12.07 - 2024.12.07