Copyright © Software Research Associates, Inc. All Rights Reserved
株式会社 SRA
阪井 誠
#devsumiB
新技術で未来の扉を開け!
- Node-REDの環境構築と社内導入 -
セッションID(B-5)
Copyright © Software Research Associates, Inc. All Rights Reserved 1
自己紹介
• 阪井 誠 (株式会社SRA 関西事業部)
• Node-RED User Group Japan
• ソフトウェア技術者協会(SEA)
• ソフトウェアプロセス、Node-RED、チケット駆動
開発、アジャイル開発に興味を持つ。
• デブサミ講演は3回目。
• 1984年にSRAに入社して以来、UNIXをはじめとし
て、ソフトウェアプロセス、IoTなど、常に新しい
技術と向き合ってきた。
• 技術者にとって新しい技術への挑戦は、苦しみを伴
いますが、喜びであり、身を守る術だと思っていま
す。
Copyright © Software Research Associates, Inc. All Rights Reserved
Node-REDを知っていますか?
•知っている人
•使ったことがある人
•バリバリ使っている人
Copyright © Software Research Associates, Inc. All Rights Reserved
Node-REDを知っていますか?
• 線でつなぐ初心者向け?
• Node.jsだからサーバー?
• ラズパイだけ?
• Javascriptって面倒でしょ?
• 標準/フリーのモジュール(ノード)があるほか、
Node.jsのライブラリも使えて機能が豊富
• サーバーアプリはもちろん、クライアントアプリ
でも高性能
• IoTはもちろん、様々な業務で利用可能
• Visualに非同期処理が簡単に扱える
• 生産性が高い
Copyright © Software Research Associates, Inc. All Rights Reserved 4
目次
• Node-REDを知ってますか
• 目次
• Node-RED
• いきさつ
• 考えたこと
• 開発した環境
• 社内導入
• アンケート
• 考察
• まとめ
Copyright © Software Research Associates, Inc. All Rights Reserved 5
Visual 開発ツールNode-RED
• Node-RED*はVisual IoTツールと呼ばれ,Webブラウザ上の
エディタでプログラミングする
• 長円のプログラムモジュールをノードと呼び、標準ノードのほか、
コントリビュートされた多機能なノードが豊富にある
• ノードを中央の編集領域に配置し,ノード間を接続してフロー
(処理)を作成する
• ノードには名前を付加できるが,単に配置するだけでも設定に
応じた内容が表示される
* JS Foundation,Node-RED is a visual wiring tool for the Internet of Things,https://nodered.org/
Copyright © Software Research Associates, Inc. All Rights Reserved 6
インクリメンタルな開発
• Hello Worldの入出力のノードを置き換えるだけで
Webプログラムになる
一瞬でデプロイ
非同期処理を
可視化 簡単デバッグ
多機能なノード群
簡単デバッグ
Copyright © Software Research Associates, Inc. All Rights Reserved
Node-REDの長所・短所
長所:生産性が高い
• 高速な非同期処理が簡単に扱える
• アルゴリズムが可視化され
• 多機能なノード(モジュール)
• デプロイが一瞬
• 再利用が容易(インポート、エクスポート、サブフロー)
短所:工夫が必要
• 単体テストの自動化ができない
• 発展途上(1.0まであと少し)
• 方式設計が重要
• ループが特殊
• マージ・保守に工夫が必要
Copyright © Software Research Associates, Inc. All Rights Reserved
導入までの経緯
• Node-REDを用いたお客様の内製支援環境
• クラウドサービス上のDocker環境
• 環境の立ち上げ、複製、ユーザ管理
• 「仕事を減らすことになる」
• 数人×数ヵ月の実証環境の開発の仕事があった
• 1~2人×数週間でとりあえず動かせる
• 判断
• 「お客様と同じ方向を見る」(アジャイル開発)
• 「適切な費用をもらう」(オープンソース)
• 「新しい技術を取り入れる」(技術志向)
⇒ 積極的に協力
• 結果
• Win-Winの関係が築けた
• ユーザーが増えて仕事が増えた
• 社内にNode-REDを導入
• 効率的な開発を行うことができた
Copyright © Software Research Associates, Inc. All Rights Reserved
本心
• 面白そう
• 技術者としての興味
• どうせ誰かが作るなら自分たちで作りたい
• 内製には限界があるだろう
• 良いものは広がるはず
• 大切なこと
• お客様のコントロールはできない。協力するだけ
• リスクが少なければ利益も少ないが損はしない
• お客様がリスクを持つので、努力が評価される
• 先行者利益(ノウハウ)が得られる
• 成果
• Node-REDの生産性はすごい
• すぐに動いてとても便利
• 社内でも使わないと損!
• 短期間で多くの知識が得られた
Copyright © Software Research Associates, Inc. All Rights Reserved
社内への導入
• Node-REDを社内のリーダーにそそのかし
勧めた
• プロトタイプ
• テストダブル(ドライバ,モック,スタブ)
• 自社パッケージ
• ユーティリティなど
• Node-REDの紹介方法
• 生産性が高い
• 非同期処理なので性能が高い
• 敷居が低い
Copyright © Software Research Associates, Inc. All Rights Reserved
アンケート
• Node-REDの経験者8人にアンケートを行った.
• 社内サービス、プロトタイプ、テストダブル、
自社パッケージ、ユーティリティなど
• 全てのプロジェクトはいわゆるウォーターフォール
型開発の工程を持っていた
• 程度の差はあるが厳格な工程完了審査は行われていない
• メールでQCDとプロセスの変化をアンケートした
• 品質,コスト, 開発期間:4段階の選択式(重複選択
可)の評価と自由記述
• 要件定義,設計,プログラミング,テスト,リリースの
変化:自由記述
Copyright © Software Research Associates, Inc. All Rights Reserved
QCDアンケート結果 - 品質 -
• サクサクと実装,実行,確認・修整の作ってのループが良かった
• 内製にこだわるよりも品質が良い
• コード量が減った
• 試作に有効
• 非同期処理が容易(当時のnode,jsはpromiseしかなかった)
• フローを意識してシンプルな作りになった
• 単体テストができない
• コード検索ができないのでバグが見つけにくい(今はできます)
Copyright © Software Research Associates, Inc. All Rights Reserved
QCDアンケート結果 – コスト -
• 非同期処理が容易
• 高機能なコンポーネントが多い
• 設計からテストまでシームレスにでき効率が良い
• 処理部に注力できた
• diffが取れない(今はちょっとましに)
• ドキュメントが少ない
• 必要なノードを探すのに時間がかかった
• 繰り返し処理に苦労した
Copyright © Software Research Associates, Inc. All Rights Reserved
QCDアンケート結果 - 納期 -
• 非同期処理が容易
• カスタムノード作成で効率化できた
• 開発のスピード感が半端ない
• 他人のフローを簡単にインポート可
• 実装にいきなり入れる
• 効率よく開発できる
• 大きな手戻りがなかった
• 自作部分の作りで効率や保守性が変わる
• ドキュメントが少ない
• 品質の悪いノードがあった(貢献できます!)
• 必要なノードを探すのに時間がかかった
Copyright © Software Research Associates, Inc. All Rights Reserved
プロセスの変化 – ポジティブ -
• プロトタイプが早くできると説明も早く,意見を貰いやすい
• 曖昧な要求でもとりあえず作り始めることができる
• 作ったものから要件を確定していくことが可能
• 大まかな処理の流れをすぐにフローとして実装可能
• 設計とプログラミングのイテレーションが容易
• Injectノードとデバッグノードでの確認も容易
• ほんの少数のファイルをリリースするだけでよく,管理しやすい
• ユニットテストはカスタムフローやAPI単位しかできないが,不安は少なかった
• コード管理だけ課題・・・完成した開発環境になればすばらしいものになりそう
• (保守は)基本的に容易だが,開発環境を残さないと詳細を確認し辛かった
設計以降の問題を
指摘しながらも,
好意的な表現
Copyright © Software Research Associates, Inc. All Rights Reserved
プロセスの変化 – ネガティブ -
• 単体テストをどのように行うのかわかりませんでした
• 複数人数での開発が少し手間取る
• 外部リソースの設定が外だしに出来ず,リリース後にとても煩わしかった
• Node-REDの癖にあわせた設計は必要.設計次第
• 簡単な反面,リリース後の不具合も増える可能性がある
• コード全体の検索が出来ないため,複雑なシステムは保守しにくくなる
上流のプロセスに変
化がないとしていた.
Node-RED流の開発
スタイルをつかみ切
れていない
バージョンアップで
解決された課題も
Copyright © Software Research Associates, Inc. All Rights Reserved
考察
Node-REDの導入に重要なこと
• ツールの知識やノウハウを共有すること
• 特性を活かした設計で品質を作りこむこと
• 実装を繰り返して常に確認すること
• 上流から利用すること
情報共有や教育が重要であるだけでなく,
既存のプロセスをそのまま適用するのではなく,
積極的に変更することがプロセス改善につながる
Copyright © Software Research Associates, Inc. All Rights Reserved
おわりに
• Node-RED最高!
• 思った通りに作れる
• 思った通りに実装できる(Ruby以来の感動)
• 生産性が高い
• 新しい技術を避けてはいけない
• いずれ誰かがやる
• 貴重な経験ができる
• 小さく始めれば外しても被害は少ない
• 良い技術ならマーケットは後からついてくる
• 先行者利益が得よう!
• 良いものなら開発用に使え!
• 自ら広げればよい!
Copyright © Software Research Associates, Inc. All Rights Reserved 19
• http://icestories.exploratorium.edu/dispatches/big-ideas/penguins/index.html
技術者諸君!ファーストペンギンであれ!
Unless otherwise noted, this work is licensed under a Creative Commons
Attribution-Noncommercial-Share Alike 3.0 United States License.
• 怖がりのペンギンは群れで行動し、飛び込まない
• 最初に飛び込むは勇者ファーストペンギンと称賛される
• 勇気を出して新技術のブルーオーシャンに飛び込もう!
Copyright © Software Research Associates, Inc. All Rights Reserved 20
プラトンは著書『ラケス』において、
ソクラテスによる"勇気"の考察を紹介している 。
勇気とは、
「恐るべきものと恐るべからざるものとを
識別することなり」
https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97
飛び込む勇気
Copyright © Software Research Associates, Inc. All Rights Reserved 21
プラトンは著書『ラケス』において、
ソクラテスによる"勇気"の考察を紹介している 。
勇気とは、
「恐るべきものと恐るべからざるものとを
識別することなり」
https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97
そのためには
情報収集、信頼貯金、仲間が必要
書籍、本家(Web, Twitter, Slack)、
日本Node-REDユーザグループ(Web,Facebook)、
勉強会(NRUGのほか、、)
飛び込む勇気
Copyright © Software Research Associates, Inc. All Rights Reserved 22
• 日時:11/24(土) 14:00~17:00
• テーマ:
•
Nodeから手が出るNode-RED(初心者向け)
• 内容:ハンズオンおよび質疑応答
• 事前にNode-REDインストール済み環境を
ご用意ください
• 講師:佐々木 和繁、小南 敏弘(SRA)
• 2018年度新人研修 Node-RED担当
• 場所:エルおおさか (大阪府立労働センター)
• 天満橋と北浜の間、淀屋橋、大阪天満宮から徒歩
• 会議室 701
SEA関西でお会いしましょう
Copyright © Software Research Associates, Inc. All Rights Reserved 23
新技術で未来の扉を開け!
- Node-REDの環境構築と社内導入 –
完

新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -

  • 1.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 株式会社 SRA 阪井 誠 #devsumiB 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - セッションID(B-5)
  • 2.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 1 自己紹介 • 阪井 誠 (株式会社SRA 関西事業部) • Node-RED User Group Japan • ソフトウェア技術者協会(SEA) • ソフトウェアプロセス、Node-RED、チケット駆動 開発、アジャイル開発に興味を持つ。 • デブサミ講演は3回目。 • 1984年にSRAに入社して以来、UNIXをはじめとし て、ソフトウェアプロセス、IoTなど、常に新しい 技術と向き合ってきた。 • 技術者にとって新しい技術への挑戦は、苦しみを伴 いますが、喜びであり、身を守る術だと思っていま す。
  • 3.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved Node-REDを知っていますか? •知っている人 •使ったことがある人 •バリバリ使っている人
  • 4.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved Node-REDを知っていますか? • 線でつなぐ初心者向け? • Node.jsだからサーバー? • ラズパイだけ? • Javascriptって面倒でしょ? • 標準/フリーのモジュール(ノード)があるほか、 Node.jsのライブラリも使えて機能が豊富 • サーバーアプリはもちろん、クライアントアプリ でも高性能 • IoTはもちろん、様々な業務で利用可能 • Visualに非同期処理が簡単に扱える • 生産性が高い
  • 5.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 4 目次 • Node-REDを知ってますか • 目次 • Node-RED • いきさつ • 考えたこと • 開発した環境 • 社内導入 • アンケート • 考察 • まとめ
  • 6.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 5 Visual 開発ツールNode-RED • Node-RED*はVisual IoTツールと呼ばれ,Webブラウザ上の エディタでプログラミングする • 長円のプログラムモジュールをノードと呼び、標準ノードのほか、 コントリビュートされた多機能なノードが豊富にある • ノードを中央の編集領域に配置し,ノード間を接続してフロー (処理)を作成する • ノードには名前を付加できるが,単に配置するだけでも設定に 応じた内容が表示される * JS Foundation,Node-RED is a visual wiring tool for the Internet of Things,https://nodered.org/
  • 7.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 6 インクリメンタルな開発 • Hello Worldの入出力のノードを置き換えるだけで Webプログラムになる 一瞬でデプロイ 非同期処理を 可視化 簡単デバッグ 多機能なノード群 簡単デバッグ
  • 8.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved Node-REDの長所・短所 長所:生産性が高い • 高速な非同期処理が簡単に扱える • アルゴリズムが可視化され • 多機能なノード(モジュール) • デプロイが一瞬 • 再利用が容易(インポート、エクスポート、サブフロー) 短所:工夫が必要 • 単体テストの自動化ができない • 発展途上(1.0まであと少し) • 方式設計が重要 • ループが特殊 • マージ・保守に工夫が必要
  • 9.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 導入までの経緯 • Node-REDを用いたお客様の内製支援環境 • クラウドサービス上のDocker環境 • 環境の立ち上げ、複製、ユーザ管理 • 「仕事を減らすことになる」 • 数人×数ヵ月の実証環境の開発の仕事があった • 1~2人×数週間でとりあえず動かせる • 判断 • 「お客様と同じ方向を見る」(アジャイル開発) • 「適切な費用をもらう」(オープンソース) • 「新しい技術を取り入れる」(技術志向) ⇒ 積極的に協力 • 結果 • Win-Winの関係が築けた • ユーザーが増えて仕事が増えた • 社内にNode-REDを導入 • 効率的な開発を行うことができた
  • 10.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 本心 • 面白そう • 技術者としての興味 • どうせ誰かが作るなら自分たちで作りたい • 内製には限界があるだろう • 良いものは広がるはず • 大切なこと • お客様のコントロールはできない。協力するだけ • リスクが少なければ利益も少ないが損はしない • お客様がリスクを持つので、努力が評価される • 先行者利益(ノウハウ)が得られる • 成果 • Node-REDの生産性はすごい • すぐに動いてとても便利 • 社内でも使わないと損! • 短期間で多くの知識が得られた
  • 11.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 社内への導入 • Node-REDを社内のリーダーにそそのかし 勧めた • プロトタイプ • テストダブル(ドライバ,モック,スタブ) • 自社パッケージ • ユーティリティなど • Node-REDの紹介方法 • 生産性が高い • 非同期処理なので性能が高い • 敷居が低い
  • 12.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved アンケート • Node-REDの経験者8人にアンケートを行った. • 社内サービス、プロトタイプ、テストダブル、 自社パッケージ、ユーティリティなど • 全てのプロジェクトはいわゆるウォーターフォール 型開発の工程を持っていた • 程度の差はあるが厳格な工程完了審査は行われていない • メールでQCDとプロセスの変化をアンケートした • 品質,コスト, 開発期間:4段階の選択式(重複選択 可)の評価と自由記述 • 要件定義,設計,プログラミング,テスト,リリースの 変化:自由記述
  • 13.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved QCDアンケート結果 - 品質 - • サクサクと実装,実行,確認・修整の作ってのループが良かった • 内製にこだわるよりも品質が良い • コード量が減った • 試作に有効 • 非同期処理が容易(当時のnode,jsはpromiseしかなかった) • フローを意識してシンプルな作りになった • 単体テストができない • コード検索ができないのでバグが見つけにくい(今はできます)
  • 14.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved QCDアンケート結果 – コスト - • 非同期処理が容易 • 高機能なコンポーネントが多い • 設計からテストまでシームレスにでき効率が良い • 処理部に注力できた • diffが取れない(今はちょっとましに) • ドキュメントが少ない • 必要なノードを探すのに時間がかかった • 繰り返し処理に苦労した
  • 15.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved QCDアンケート結果 - 納期 - • 非同期処理が容易 • カスタムノード作成で効率化できた • 開発のスピード感が半端ない • 他人のフローを簡単にインポート可 • 実装にいきなり入れる • 効率よく開発できる • 大きな手戻りがなかった • 自作部分の作りで効率や保守性が変わる • ドキュメントが少ない • 品質の悪いノードがあった(貢献できます!) • 必要なノードを探すのに時間がかかった
  • 16.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved プロセスの変化 – ポジティブ - • プロトタイプが早くできると説明も早く,意見を貰いやすい • 曖昧な要求でもとりあえず作り始めることができる • 作ったものから要件を確定していくことが可能 • 大まかな処理の流れをすぐにフローとして実装可能 • 設計とプログラミングのイテレーションが容易 • Injectノードとデバッグノードでの確認も容易 • ほんの少数のファイルをリリースするだけでよく,管理しやすい • ユニットテストはカスタムフローやAPI単位しかできないが,不安は少なかった • コード管理だけ課題・・・完成した開発環境になればすばらしいものになりそう • (保守は)基本的に容易だが,開発環境を残さないと詳細を確認し辛かった 設計以降の問題を 指摘しながらも, 好意的な表現
  • 17.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved プロセスの変化 – ネガティブ - • 単体テストをどのように行うのかわかりませんでした • 複数人数での開発が少し手間取る • 外部リソースの設定が外だしに出来ず,リリース後にとても煩わしかった • Node-REDの癖にあわせた設計は必要.設計次第 • 簡単な反面,リリース後の不具合も増える可能性がある • コード全体の検索が出来ないため,複雑なシステムは保守しにくくなる 上流のプロセスに変 化がないとしていた. Node-RED流の開発 スタイルをつかみ切 れていない バージョンアップで 解決された課題も
  • 18.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 考察 Node-REDの導入に重要なこと • ツールの知識やノウハウを共有すること • 特性を活かした設計で品質を作りこむこと • 実装を繰り返して常に確認すること • 上流から利用すること 情報共有や教育が重要であるだけでなく, 既存のプロセスをそのまま適用するのではなく, 積極的に変更することがプロセス改善につながる
  • 19.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved おわりに • Node-RED最高! • 思った通りに作れる • 思った通りに実装できる(Ruby以来の感動) • 生産性が高い • 新しい技術を避けてはいけない • いずれ誰かがやる • 貴重な経験ができる • 小さく始めれば外しても被害は少ない • 良い技術ならマーケットは後からついてくる • 先行者利益が得よう! • 良いものなら開発用に使え! • 自ら広げればよい!
  • 20.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 19 • http://icestories.exploratorium.edu/dispatches/big-ideas/penguins/index.html 技術者諸君!ファーストペンギンであれ! Unless otherwise noted, this work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. • 怖がりのペンギンは群れで行動し、飛び込まない • 最初に飛び込むは勇者ファーストペンギンと称賛される • 勇気を出して新技術のブルーオーシャンに飛び込もう!
  • 21.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 20 プラトンは著書『ラケス』において、 ソクラテスによる"勇気"の考察を紹介している 。 勇気とは、 「恐るべきものと恐るべからざるものとを 識別することなり」 https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97 飛び込む勇気
  • 22.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 21 プラトンは著書『ラケス』において、 ソクラテスによる"勇気"の考察を紹介している 。 勇気とは、 「恐るべきものと恐るべからざるものとを 識別することなり」 https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97 そのためには 情報収集、信頼貯金、仲間が必要 書籍、本家(Web, Twitter, Slack)、 日本Node-REDユーザグループ(Web,Facebook)、 勉強会(NRUGのほか、、) 飛び込む勇気
  • 23.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 22 • 日時:11/24(土) 14:00~17:00 • テーマ: • Nodeから手が出るNode-RED(初心者向け) • 内容:ハンズオンおよび質疑応答 • 事前にNode-REDインストール済み環境を ご用意ください • 講師:佐々木 和繁、小南 敏弘(SRA) • 2018年度新人研修 Node-RED担当 • 場所:エルおおさか (大阪府立労働センター) • 天満橋と北浜の間、淀屋橋、大阪天満宮から徒歩 • 会議室 701 SEA関西でお会いしましょう
  • 24.
    Copyright © SoftwareResearch Associates, Inc. All Rights Reserved 23 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 – 完