2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
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にするだけです。
田中:そういうことか。
船津:ぜひみなさん参考にしてみてください。本日はありがとうございました。
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには