Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

IoTエンジニアが技術目線で語る!公募セッションその2【SORACOM Discovery 2...

IoTエンジニアが技術目線で語る!公募セッションその2【SORACOM Discovery 2023】

本セッションでは IoT エンジニアの方々にご登壇いただき、SORACOM やクラウド、デバイスを使って IoT アプリケーションを開発し、それを使ってビジネス的な課題を解決していくその過程と、苦労、成功談について語っていただきます。

・セッション 1「現場の耳をデジタル化。社会インフラ、工場設備監視に / 株式会社アニモ 今竹 渉」
社会インフラや工場現場では、カメラや温度などのセンサー導入が進んでいますが、「異音検知」に関しては、未だ人への依存が高い状態です。音響技術を活用しベテランの「耳」をデジタル化。更なる省人化を図ります。

・セッション 2「GitHub で実践する IoT 開発の DevOps / 株式会社オルターブース 木村 健一郎」
皆さん IoT 開発でも DevOps を実践してますか?本セッションではデモを交えながら、GitHub を活用して SORACOM を使う開発現場で DevOps を実践するノウハウをお話しします。

株式会社アニモ 技術開発本部長 兼 産業ビジネス事業部 開発部長 今竹 渉
株式会社オルターブース クラウドソリューション部 副部長 木村 健一郎
株式会社ソラコム ソリューションアーキテクト 桶谷 拓也

SORACOM

July 06, 2023
Tweet

More Decks by SORACOM

Other Decks in Technology

Transcript

  1. 本日のハッシュタグ #SORACOM @SORACOM_PR fb.com/soracom.jp youtube.com/@SORACOM_Japan instagram.com/soracom.official 使用例 他には… • #SORACOM

    IoTやDXの話を聞きにきた • キーノートは2日目! #SORACOM #SORACOM の検索で、最新情報が!
  2. Call for Proposals(CfP) “イベント主催者が特定のテーマやトピックに関連するプレゼンテーションやセッションの提案を 受け付けるプロセスです。このプロセスにより、興味深いトピックや専門知識を持つ人々がイ ベントに関与し、参加者に価値ある情報や洞察を提供する機会を得ることができます。 Call for Proposalsは通常、イベントのウェブサイトや公式アナウンスメントを通じて告知されま す。主催者は、プロポーザルの受け付け期間や提出方法、求められる情報、選考基準など

    を明確に指定します。提案者は、特定のトピックやテーマに関連するプレゼンテーションや ワークショップ、パネルディスカッションなどのセッションの詳細を提出します。 提案の内容は、一般的なトピックの概要、セッションのタイトル、概要、目的、メソッド、予定され る成果物、関連する経験や専門知識などの要素を含めることが一般的です。提案者は、自 身のアイデアや知識を明確に説明し、そのセッションがイベントの参加者にとってどのような 価値を提供するかを強調する必要があります。” ChatGPT Model: GPT-3.5
  3. なぜ Proposals を募集したのか IoT は広大 • 大きく 3 つの構成要素 •

    デバイス、ネットワーク、クラウド • 様々な課題、様々なデバイス、様々な通信 • SORACOM の外にも IoT コミュニティの知識共有を促進 • 多様な視点、アイデアや経験
  4. Call for Proposals の結果 • 応募総数: 28 件 • 選考方法

    • タイトルと概要のみを Input • SORACOM メンバーによる無記名投票 • 上位 4 つを採択 • 詳細は後日 Blog にて
  5. (1) アニモのご紹介 (2) 音声・音響とは? (3) SORACOM IoT連携 (4) クラウドサービス連携とIoTデバイス連携 (5)

    ANIMO Cloud概要 ① 利用イメージ 現場業務 ② 利用イメージ 作業報告業務 ③ 利用イメージ 監視カメラ ④ シムトップス様 現場帳票システム i-Reporter 連携 (6) 牛ログご紹介 Copyright © ANIMO Limited. All rights reserved. 1 本日のアジェンダ
  6. 音声・音響とは? Copyright © ANIMO Limited. All rights reserved. 3 

    音は「可視化されていない重要な情報」を含む  非接触で情報を伝えられる  見えない場所から情報を伝えられる  意識を誘導できる
  7. SORACOM IoT連携 Copyright © ANIMO Limited. All rights reserved. 4

    SORACOM様、パートナ様の サービス価値向上 SORACOM パートナ様の 協業共創 SORACOM パートナ様の 付加価値向上 IoTデータ通信 クラウド IoTデバイス ソリューション パートナ様 IoTデバイス パートナ様 + グローバル通信 + クラウドプラットフォーム + 通信モジュール
  8. クラウドサービス連携とIoTデバイス連携 Copyright © ANIMO Limited. All rights reserved. 5 (1)

    クラウドサービス連携 (音声・音響AI技術) 感覚知情報である設備の稼働音を可視化し、 設備保全を高度化 ① 常時監視による傾向監視 ② 巡回点検時の点検証跡 (2) IoTデバイス連携 (音声・音響エッジ技術) ① 音響センシング・機器制御 気配(音響)によるイベント検知・音源の方向検知 警戒エリアへの侵入、ドアの開閉… ② 音声の活用 音声による異常行動検知 特定ワードの検出:バカヤロー… 感情の高ぶり:奇声・悲鳴などの発声 ソラカメにより様々なシーンを画像・音で監視 ソラカメ Soracom Cloud Camera Services 音声・音響機能 店頭 トラブル 検知 設備 故障検知 セキュリ ティ強化 バックヤードの入退室管理 店舗の監視・混雑度チェック 工場の設備監視 クラウド常時録画 モニタリング モーション検知 リアルタイムで > > 07:00 08:00 09:00 10:00 1 さかのぼって 00:00 00:12 無制限 動きを検知した時だけ
  9. ANIMO Cloudの概要 Copyright © ANIMO Limited. All rights reserved. 6

    「ヒト」と「モノ」をつなぐ音声・音響クラウドサービス アニモが持つ音響・音声エンジンを、どこからでも、いつでも使えるサービス基盤を提供。 様々な業務サービスと技術連携を行い、省人化、業務の効率化を可能にします。 設備管理 応対評価 監視システム デジタル帳票 音響 分析 音声 合成 音声 分析 音声 認証 音響 加工 音声 認識 技術の 組合せ 音響・音声処理 クラウド事業社 連携 Web API Web UI 牛の聴診音モニタリングサービス 牛の聴診音からAIが健康状態を推定 音声合成 作成サービス テキスト入力するだけで音声ファイルを作成 音響・振動 分析サービス 工場等の設備稼働音の可視化、判定モデル作成 工場・インフラ 放送・観光・交通 畜産 提供
  10. 機能 利用している技術 作業音の判定 音響分析 作業音声指示、注意喚起 音声合成 本人確認 音声認証 元気度、ストレスチェック 音声分析

    利用イメージ 現場業務 Copyright © ANIMO Limited. All rights reserved. 7 現場業務における作業員のモニタリング ① 作業開始前 ・音声から本人確認し、点呼や入退場の監視をする ・音声から健康状態(作業に適した状態)を評価し、注意喚起をする ② 作業中 ・現場作業員が行う作業する音を収録して、正しく作業が行われているか記録・判定 主な機能と技術
  11. 機能 利用している技術 フリーテキスト入力 音声認識 本人確認 音声認証 感情、元気度、ストレスチェック 音声分析 Copyright ©

    ANIMO Limited. All rights reserved. 作業報告の音声入力 ・ スマートフォンで簡単に作業報告、日報、メモを音声で入力 ・ あわせて音声から担当者の本人性の確認、入力している感情やストレスの状態を評価 ・ PC操作することが難しい屋外や、“ながら作業”で入力したい場面でご利用 主な機能と技術 8 利用イメージ 作業報告業務
  12. 機能 利用している技術 異常音の検知 音響分析 音の判定(個別開発) 音響AI技術 警告・注意アナウンス 音声合成 Copyright ©

    ANIMO Limited. All rights reserved. 監視カメラ(視覚)×音響監視(聴覚) ・ 監視カメラの死角を音響監視でカバー ・ 個別対応にて、音の種類の判定も可能(悲鳴、危険音=銃声など) ・ 工事現場などで危険察知時に、音声合成による警告・注意アナウンスの再生 主な機能と技術 9 利用イメージ 監視サービス連携
  13. 牛ログご紹介 Copyright © ANIMO Limited. All rights reserved. 11 録音

    牧場・飼育員 獣医師 音響分析・結果確認 情報共有 牛の胃の音を電子聴診器で録音し、聴診音を可視化・デジタル化し、健康状態をモニタリング。 過去の個体記録情報をレポートとして出力し、獣医師に正確な情報を共有することができます。 定期的に牛の健康管理を行うことで、異変の早期発見、重症化を防ぎ生産性向上。 電子聴診器 特開2022-179387 特開2022-179387
  14. 自己紹介 株式会社オルターブース クラウドソリューション部 副部⾧ 木村 健一郎(Kenichiro KIMURA) 大学院在籍中に未踏ソフトウェア創造事業に 採択され、その成果を元に設立したスタート アップに20年在籍。

    2014年頃からクラウドの世界に触れる中で サーバレスとIoTに魅せられ、JAWS-UG福岡 やSORACOM UG九州のコアメンバーとして コミュニティ活動を行っている。 2020年にオルターブースにジョイン。テッ クリードとしてお客様の支援やプロダクトの 開発に従事している。 家に帰ると5歳の娘と戯れる日々。 AWS Samurai2019受賞 SORACOM MVC2020受賞 Twitter: @show_m001(しょーちゃん) Copyright © Alterbooth Inc. All Rights Reserved. 2
  15. Copyright © Alterbooth Inc. All Rights Reserved. 4 株式会社オルターブース 会社名

    〒812-0016 福岡市博多区博多駅南2-1-9 博多筑紫通りセンタービル8F 所在地 2015年3月19日 設立 1億472万5千円 資本金 25人(役員除く) 従業員 代表取締役 CEO 小島 淳 取締役 田中 務 取締役 嘉門 健一郎 監査役 仲田 和正 役員 西日本シティ銀行 みずほ銀行 北九州銀行 取引銀行 (1)クラウドコンピューティングを活用したシステム企画・開 発及び運営 (2)インターネット関連システムの企画・開発及び運用 (3)SaaS、ASPサービス及びIT商品の企画・開発及び運営 (4)前各号に附帯又は関連する一切の事業 事業内容 インフォコム株式会社 主要株主 日本マイクルソフト株式会社オイシックス・ラ・大地株式会社 インフォコム株式会社 株式会社博報堂DYメディアパートナー ズ EYストラテジー・アンド・コンサルティング株式会社 株式 会社エフ・ジェイエンターテイメントワークス その他 主要取引先 2023年7月1日現在 Alterbooth HISTORY 福岡県福岡市中央区にて株式会社オルターブース設立 3月 2015年 福岡県北九州市にて北九州ブランチオフィス開設 5月 2016年 Microsoft Partner Network Cloud Platform Silver Competency 取得 6月 Microsoft Innovation Award サムライインキュベート賞 受賞 3月 2017年 福岡市外提供する官民連携インキュベート施設Fukuoka Growth Nextに天神ブラン チオフィス開設 4月 Japan Microsoft Partner of the Year 2017 OSS on Azure賞 受賞 8月 Microsoft Cloud Solution Indirect Reseller認定 1月 2018年 事業会社よりシードラウンド増資を実施 2月 Microsoft Partner Network Cloud Platform Gold Competency 取得 9月 Japan Microsoft Partner of the Year 2019 特別賞 受賞 8月 2019年 複数VCよりプレシリーズAラウンド増資を実施 9月 2019年 Japan Microsoft Partner of the Year 2020 App Modernization賞 受賞 LINE Biz Partner Program コミュニケーション部門にてTechnology パートナー 認定 8月 2020年 株式会社エフ・ジェイエンターテイメントワークスと事業提携 複合型施設向けLINEモバイルオーダー FooPass を共同リリース 12月 Japan Microsoft Partner of the Year 2021 OSS on Azure賞 受賞 8月 2021年 LINE株式会社、日本マイクロソフト株式会社と小売業のDX支援を目的とした共同プロ ジェクトに参画 10月 2021年 インフォコム株式会社と資本業務提携実施、インフォコムグループに参画する 2月 2022年
  16. Copyright © Alterbooth Inc. All Rights Reserved. 5 株式会社オルターブース 会社名

    〒812-0016 福岡市博多区博多駅南2-1-9 博多筑紫通りセンタービル8F 所在地 2015年3月19日 設立 1億472万5千円 資本金 25人(役員除く) 従業員 代表取締役 CEO 小島 淳 取締役 田中 務 取締役 嘉門 健一郎 監査役 仲田 和正 役員 西日本シティ銀行 みずほ銀行 北九州銀行 取引銀行 (1)クラウドコンピューティングを活用したシステム企画・開 発及び運営 (2)インターネット関連システムの企画・開発及び運用 (3)SaaS、ASPサービス及びIT商品の企画・開発及び運営 (4)前各号に附帯又は関連する一切の事業 事業内容 インフォコム株式会社 主要株主 日本マイクルソフト株式会社オイシックス・ラ・大地株式会社 インフォコム株式会社 株式会社博報堂DYメディアパートナー ズ EYストラテジー・アンド・コンサルティング株式会社 株式 会社エフ・ジェイエンターテイメントワークス その他 主要取引先 2023年7月1日現在 Alterbooth HISTORY 福岡県福岡市中央区にて株式会社オルターブース設立 3月 2015年 福岡県北九州市にて北九州ブランチオフィス開設 5月 2016年 Microsoft Partner Network Cloud Platform Silver Competency 取得 6月 Microsoft Innovation Award サムライインキュベート賞 受賞 3月 2017年 福岡市外提供する官民連携インキュベート施設Fukuoka Growth Nextに天神ブラン チオフィス開設 4月 Japan Microsoft Partner of the Year 2017 OSS on Azure賞 受賞 8月 Microsoft Cloud Solution Indirect Reseller認定 1月 2018年 事業会社よりシードラウンド増資を実施 2月 Microsoft Partner Network Cloud Platform Gold Competency 取得 9月 Japan Microsoft Partner of the Year 2019 特別賞 受賞 8月 2019年 複数VCよりプレシリーズAラウンド増資を実施 9月 2019年 Japan Microsoft Partner of the Year 2020 App Modernization賞 受賞 LINE Biz Partner Program コミュニケーション部門にてTechnology パートナー 認定 8月 2020年 株式会社エフ・ジェイエンターテイメントワークスと事業提携 複合型施設向けLINEモバイルオーダー FooPass を共同リリース 12月 Japan Microsoft Partner of the Year 2021 OSS on Azure賞 受賞 8月 2021年 LINE株式会社、日本マイクロソフト株式会社と小売業のDX支援を目的とした共同プロ ジェクトに参画 10月 2021年 インフォコム株式会社と資本業務提携実施、インフォコムグループに参画する 2月 2022年 2022年 2月 インフォコム株式会社と資本業 務提携実施、インフォコムグループに参画す る
  17. オルターブースの強み Copyright © Alterbooth Inc. All Rights Reserved. 7 オルターブースは創業以来一貫してクラウドに関する課題解決のご支援をしております。

    特にMicrosoft AzureはMicrosoft MVPが多数在籍する当社にとっての強みとなっております。 当社の特徴はレガシーアプリケーションをクラウドへモダナイズすることです。DXを実現するために 必ず必要なもの、それはクラウドです。そのクラウドで実現できるDXを強力にサポートするのがオル ターブースです。 GitHub Services and Channel Partners LINE Technology Partner
  18. • DevOpsを実践することで、より安全に、より短時間でお客様に価値を届けら れるようになります • DevOpsはハードウェアやIoTの現場でも実践可能です • 例として、SORACOM Orbitを使う開発現場で、DevOpsの重要な要素である CI/CDパイプラインを構築した事例を紹介します •

    GitHubカスタムアクションを作成すると、より可読性が高く、メンテナンス しやすく、再利用しやすいワークフローを作成できます • ソースコードは全て公開していますので、ぜひ他のSORACOMプラットフォームを操作する アクションも作ってみてください いきなりですが、本日のまとめです Copyright © Alterbooth Inc. All Rights Reserved. 8
  19. • Dev(開発)とOps(運用)が連 携して協力する開発手法 • DevOps は エンドユーザーに価値を継続的 に提供できるようにするための 人、プロセス、製品の集合 Copyright

    © Alterbooth Inc. All Rights Reserved. DevOps とは? • People. Process. Products. ” Build & Test Continuous Delivery Deploy Operate Monitor & Learn Plan & Track Develop “
  20. DevOpsを成功させるための“パイプライン” Copyright © Alterbooth Inc. All Rights Reserved. 18 •

    開発者がデプロイボタンを押してからサーバー側に反映されるまでの道のりを 可視化したもの • 基本的にすべて自動で進行するようにする • 自動化するためにはAPIで制御できるプラットフォームを利用する • 自動化することでデプロイに関しての制約がほぼなくなり、いつでもリリース できるようになる • いつでも必ず同じ動作をするように自動化する
  21. (前略) この形式の迅速な反復と改善されたフローは、ソフトウェアまたは小規模なアプ リケーションやシステムにのみ適用されるという業界全体の誤解があります。 (中略) DevOpsから学んだ理論と実践を適用することは、複雑なサイバーフィジカルシ ステムの開発を劇的に改善する可能性を秘めています。 Industrial DevOps Applying DevOps

    and Continuous Delivery to Significant Cyber-Physical Systems Suzette Johnson, Harry Koehneman, Diane LaFortune, Dean Leffingwell, Stephen Magill (DevOps Enterprise Forum white paper,2018) https://myresources.itrevolution.com/id006657038/Industrial-DevOps Industrial DevOps: Applying DevOps for Hardware, Firmware, and Software Copyright © Alterbooth Inc. All Rights Reserved. 19
  22. IoTを構成する三要素 Copyright © Alterbooth Inc. All Rights Reserved. 26 センサー/デバイス

    “モノ” ネットワーク クラウド 現場の「モノ」や「コト」をデジタル化し、クラウドで情報を蓄積・処理して価値を生み出す
  23. 各要素のCI/CD Copyright © Alterbooth Inc. All Rights Reserved. 27 センサー/デバイス

    “モノ” ネットワーク クラウド クラウドサービスのCI/CDは多くの実例があり、ツールも充実しています 例) GitHub Actions Azure DevOps AWS CodeBuild/CodeDeploy Jenkins
  24. Copyright © Alterbooth Inc. All Rights Reserved. 28 センサー/デバイス “モノ”

    ネットワーク クラウド エッジデバイスのプログラムのCI/CDは、近年環境が整いつつあります 例)Device Update for Azure IoT Hub AWS IoT Greengrass
  25. Copyright © Alterbooth Inc. All Rights Reserved. 29 センサー/デバイス “モノ”

    ネットワーク クラウド SORACOMサービスを使うと、データをクラウドサービスに届ける処理の 開発・運用が非常に便利になります。 そして、何より重要なこととしてAPIで制御できるという特徴があります。
  26. Copyright © Alterbooth Inc. All Rights Reserved. 30 • DevOpsの中核を担うCI/CDのパイプラインは、「自動化する」ことが重要

    • 自動化のためにはAPIで制御できるプラットフォームが必要 • SORACOMプラットフォームはAPIで制御できる SORACOMプラットフォームを使うことで、 IoTのネットワーク部分も CI/CDパイプラインに含めることが可能
  27. • ビルドやテストが手動 • ブランチにマージされたコードがテストを通ったものかが分からない • テストをしなくてもmasterブランチにコードをマージできてしまう • テスト環境/本番環境へのデプロイが手動 • デプロイ時に誤ったsoraletをアップロードしてしまう

    • SORACOM Orbitにはsoraletのバージョン管理機能はあるが、本番/テスト環境(SIMグルー プ)から参照するsoraletのバージョンの付け替えが手動だと、どのバージョンが正しく動い ているものかの管理が難しい この手順での問題点と起こりうる事故 Copyright © Alterbooth Inc. All Rights Reserved. 34
  28. パイプライン概要 workflow.yml パイプラインの全体象は、こ のようになります。 Copyright © Alterbooth Inc. All Rights

    Reserved. 37 on: push: branches: [master,staging] jobs: build-and-test: steps: - チェックアウト - ビルド - テスト - Artifactにsoraletのバイナリをアップロード deploy: needs: build-and-test steps: - Artifactをダウンロード - soraletをアップロード - ブランチに対応するSIMグループの参照している soraletバージョンを、アップロードしたものに変更
  29. パイプライン概要 workflow.yml on:で、実行の契機を指定し ます Copyright © Alterbooth Inc. All Rights

    Reserved. 38 on: push: branches: [master,staging] jobs: build-and-test: steps: - チェックアウト - ビルド - テスト - Artifactにsoraletのバイナリをアップロード deploy: needs: build-and-test steps: - Artifactをダウンロード - soraletをアップロード - ブランチに対応するSIMグループの参照している soraletバージョンを、アップロードしたものに変更
  30. パイプライン概要 workflow.yml jobs:に実行する処理を書き ます。 ここではbuild-and-testと deployの2つのステージがあ ります。 Copyright © Alterbooth

    Inc. All Rights Reserved. 39 on: push: branches: [master,staging] jobs: build-and-test: steps: - チェックアウト - ビルド - テスト - Artifactにsoraletのバイナリをアップロード deploy: needs: build-and-test steps: - Artifactをダウンロード - soraletをアップロード - ブランチに対応するSIMグループの参照している soraletバージョンを、アップロードしたものに変更
  31. パイプライン概要 workflow.yml on: push: branches: [master,staging] jobs: build-and-test: steps: -

    チェックアウト - ビルド - テスト - Artifactにsoraletのバイナリをアップロード deploy: needs: build-and-test steps: - Artifactをダウンロード - soraletをアップロード - ブランチに対応するSIMグループの参照している soraletバージョンを、アップロードしたものに変更 今回は、この部分を作ります Copyright © Alterbooth Inc. All Rights Reserved. 40
  32. cliコマンドでの記述 アップロード部分のみ抜粋 steps: - Artifactをダウンロード - name: install soracom-cli run:

    curl –fsSL https://url-of-soracom- cli/install.sh | bash - name: upload env: AUTH_KEY: ${{ secrets.AUTH_KEY }} AUTH_KEY_ID: ${{ secrets.AUTH_KEY_ID}} SORALET_ID: ${{ env.SORALET_ID }} run: | /usr/local/bin/soracom --auth-key-id $AUTH_KEY_ID --auth-key $AUTH_KEY soralets upload --soralet-id $SORALET_ID --body @soralet-optimized.wasm GitHub Actionsのワークフ ローには、シェルで実行する コマンドをそのまま記載でき ます。 つまり、ワークフローを実行 する環境(コンテナ)に soracom cliさえインストー ルしてしまえばSORACOMプ ラットフォームの操作は何と かなります。 Copyright © Alterbooth Inc. All Rights Reserved. 41
  33. cliコマンドでの記述 アップロード部分のみ抜粋 steps: - Artifactをダウンロード - name: install soracom-cli run:

    curl –fsSL https://url-of-soracom- cli/install.sh | bash - name: upload env: AUTH_KEY: ${{ secrets.AUTH_KEY }} AUTH_KEY_ID: ${{ secrets.AUTH_KEY_ID}} SORALET_ID: ${{ env.SORALET_ID }} run: | /usr/local/bin/soracom --auth-key-id $AUTH_KEY_ID --auth-key $AUTH_KEY soralets upload --soralet-id $SORALET_ID --body @soralet-optimized.wasm soracom cliのインストーラ をダウンロードし、実行しま す Copyright © Alterbooth Inc. All Rights Reserved. 42
  34. cliコマンドでの記述 アップロード部分のみ抜粋 steps: - Artifactをダウンロード - name: install soracom-cli run:

    curl –fsSL https://url-of-soracom- cli/install.sh | bash - name: upload env: AUTH_KEY: ${{ secrets.AUTH_KEY }} AUTH_KEY_ID: ${{ secrets.AUTH_KEY_ID}} SORALET_ID: ${{ env.SORALET_ID }} run: | /usr/local/bin/soracom --auth-key-id $AUTH_KEY_ID --auth-key $AUTH_KEY soralets upload --soralet-id $SORALET_ID --body @soralet-optimized.wasm soracom cliの実行に必要な シークレット等を定義します Copyright © Alterbooth Inc. All Rights Reserved. 43
  35. cliコマンドでの記述 アップロード部分のみ抜粋 steps: - Artifactをダウンロード - name: install soracom-cli run:

    curl –fsSL https://url-of-soracom- cli/install.sh | bash - name: upload env: AUTH_KEY: ${{ secrets.AUTH_KEY }} AUTH_KEY_ID: ${{ secrets.AUTH_KEY_ID}} SORALET_ID: ${{ env.SORALET_ID }} run: | /usr/local/bin/soracom --auth-key-id $AUTH_KEY_ID --auth-key $AUTH_KEY soralets upload --soralet-id $SORALET_ID --body @soralet-optimized.wasm soracom cliでsoralets uploadコマンドを実行し、 アップロードします。 Copyright © Alterbooth Inc. All Rights Reserved. 44
  36. • 可読性が低い • メンテナンス性が悪い • ここに「アップロードしたsoraletバージョンが多かったら古いものを消す」という処理を 追記するのは辛い • 省略してますが、SIMグループの設定を変える部分を書くのは辛い •

    再利用が困難 この問題を解決するために、2つのカスタムGitHub Actionを作成しました。 GitHub Marketplaceにも公開しています。 cliコマンドで記載することの問題点 Copyright © Alterbooth Inc. All Rights Reserved. 45
  37. カスタムアクションを 利用したアップロード カスタムアクションを利用 - name: upload uses: kenichiro-kimura/action-soracom-upload- [email protected] id:

    upload with: soracom_auth_key: ${{ secrets.AUTH_KEY }} soracom_auth_key_id: ${{ secrets.AUTH_KEY_ID}} soracom_soralet_id: ${{ env.SORALET_ID }} soracom_soralet_filename: soralet-optimized.wasm soracom_delete_old_soralet: true 「Upload soralet」アクショ ンを使うと、アップロード部 分の記載はこのように簡潔に なります。 Copyright © Alterbooth Inc. All Rights Reserved. 47
  38. カスタムアクションを 利用したアップロード カスタムアクションを利用 - name: upload uses: kenichiro-kimura/action-soracom-upload- [email protected] id:

    upload with: soracom_auth_key: ${{ secrets.AUTH_KEY }} soracom_auth_key_id: ${{ secrets.AUTH_KEY_ID}} soracom_soralet_id: ${{ env.SORALET_ID }} soracom_soralet_filename: soralet-optimized.wasm soracom_delete_old_soralet: true カスタムアクションを使うこ とを指定します Copyright © Alterbooth Inc. All Rights Reserved. 48
  39. カスタムアクションを 利用したアップロード カスタムアクションを利用 - name: upload uses: kenichiro-kimura/action-soracom-upload- [email protected] id:

    upload with: soracom_auth_key: ${{ secrets.AUTH_KEY }} soracom_auth_key_id: ${{ secrets.AUTH_KEY_ID}} soracom_soralet_id: ${{ env.SORALET_ID }} soracom_soralet_filename: soralet-optimized.wasm soracom_delete_old_soralet: true カスタムアクションの動作に 必要な変数を指定します。 Copyright © Alterbooth Inc. All Rights Reserved. 49
  40. カスタムアクションを 利用したデプロイ カスタムアクションを利用 - name: deploy production uses: kenichiro-kimura/action-soracom-configure- [email protected]

    if: github.ref == 'refs/heads/master' with: soracom_auth_key: ${{ secrets.AUTH_KEY }} soracom_auth_key_id: ${{ secrets.AUTH_KEY_ID}} soracom_soralet_code_srn: ${{ steps.upload.outputs.soralet_srn }} soracom_group_id: ${{ secrets.SORACOM_GROUP_ID_PROD }} 「Update SORACOM Orbit configuration」アクション を使うと、デプロイ部分の記 載はこのように簡潔になりま す。 Copyright © Alterbooth Inc. All Rights Reserved. 51
  41. カスタムアクションを 利用したデプロイ - name: deploy production uses: kenichiro-kimura/action-soracom-configure- [email protected] if:

    github.ref == 'refs/heads/master' with: soracom_auth_key: ${{ secrets.AUTH_KEY }} soracom_auth_key_id: ${{ secrets.AUTH_KEY_ID}} soracom_soralet_code_srn: ${{ steps.upload.outputs.soralet_srn }} soracom_group_id: ${{ secrets.SORACOM_GROUP_ID_PROD }} カスタムアクションを使うこ とを指定します。 Copyright © Alterbooth Inc. All Rights Reserved. 52
  42. カスタムアクションを 利用したデプロイ - name: deploy production uses: kenichiro-kimura/action-soracom-configure- [email protected] if:

    github.ref == 'refs/heads/master' with: soracom_auth_key: ${{ secrets.AUTH_KEY }} soracom_auth_key_id: ${{ secrets.AUTH_KEY_ID}} soracom_soralet_code_srn: ${{ steps.upload.outputs.soralet_srn }} soracom_group_id: ${{ secrets.SORACOM_GROUP_ID_PROD }} masterブランチへのプッ シュの場合は、本番環境の SIMグループを変更します。 Copyright © Alterbooth Inc. All Rights Reserved. 53
  43. カスタムアクションを 利用したデプロイ カスタムアクションを利用 - name: deploy production uses: kenichiro-kimura/action-soracom-configure- [email protected]

    if: github.ref == 'refs/heads/master' with: soracom_auth_key: ${{ secrets.AUTH_KEY }} soracom_auth_key_id: ${{ secrets.AUTH_KEY_ID}} soracom_soralet_code_srn: ${{ steps.upload.outputs.soralet_srn }} soracom_group_id: ${{ secrets.SORACOM_GROUP_ID_PROD }} アップロードするsoraletの SRNは、先ほどの「Upload Soralet」アクションの実行 結果から取得できます。 Copyright © Alterbooth Inc. All Rights Reserved. 54
  44. • DevOpsを実践することで、より安全に、より短時間でお客様に価値を届けら れるようになります • DevOpsはハードウェアやIoTの現場でも実践可能です • 例として、SORACOM Orbitを使う開発現場で、DevOpsの重要な要素である CI/CDパイプラインを構築した事例を紹介しました •

    GitHubカスタムアクションを作成すると、より可読性が高く、メンテナンス しやすく、再利用しやすいワークフローを作成できます • ソースコードは全て公開していますので、ぜひSORACOMプラットフォームを操作する他の アクションも作ってみてください まとめ Copyright © Alterbooth Inc. All Rights Reserved. 56
  45. • DevOpsとは https://learn.microsoft.com/ja-jp/devops/what-is-devops • [ブログ]SORACOM Orbit向けGitHub Actionを作りました https://zenn.dev/showm001/articles/2023-05-22-01 • [ブログ]GitHubを活用してSORACOM

    Orbitの開発を加速する: CI/CD編 https://aadojo.alterbooth.com/entry/2023/04/28/110621 • GitHub Actionsを理解する https://docs.github.com/ja/actions/learn-github- actions/understanding-github-actions • カスタムアクションについて https://docs.github.com/ja/actions/creating-actions/about-custom- actions 参考URL Copyright © Alterbooth Inc. All Rights Reserved. 57