2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
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.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05