Slide 1

Slide 1 text

IoTエンジニアが技術目線で語る! 公募セッションその2 株式会社ソラコム ソリューションアーキテクト 桶谷 拓也

Slide 2

Slide 2 text

自己紹介 桶谷 拓也 Takuya Oketani ソリューションアーキテクト 株式会社ソラコム ♥ Unified Endpoint @okeee0315

Slide 3

Slide 3 text

本日のハッシュタグ #SORACOM @SORACOM_PR fb.com/soracom.jp youtube.com/@SORACOM_Japan instagram.com/soracom.official 使用例 他には… • #SORACOM IoTやDXの話を聞きにきた • キーノートは2日目! #SORACOM #SORACOM の検索で、最新情報が!

Slide 4

Slide 4 text

Discovery 初の試み!

Slide 5

Slide 5 text

Call for Proposals(CfP) “イベント主催者が特定のテーマやトピックに関連するプレゼンテーションやセッションの提案を 受け付けるプロセスです。このプロセスにより、興味深いトピックや専門知識を持つ人々がイ ベントに関与し、参加者に価値ある情報や洞察を提供する機会を得ることができます。 Call for Proposalsは通常、イベントのウェブサイトや公式アナウンスメントを通じて告知されま す。主催者は、プロポーザルの受け付け期間や提出方法、求められる情報、選考基準など を明確に指定します。提案者は、特定のトピックやテーマに関連するプレゼンテーションや ワークショップ、パネルディスカッションなどのセッションの詳細を提出します。 提案の内容は、一般的なトピックの概要、セッションのタイトル、概要、目的、メソッド、予定され る成果物、関連する経験や専門知識などの要素を含めることが一般的です。提案者は、自 身のアイデアや知識を明確に説明し、そのセッションがイベントの参加者にとってどのような 価値を提供するかを強調する必要があります。” ChatGPT Model: GPT-3.5

Slide 6

Slide 6 text

なぜ Proposals を募集したのか IoT は広大 • 大きく 3 つの構成要素 • デバイス、ネットワーク、クラウド • 様々な課題、様々なデバイス、様々な通信 • SORACOM の外にも IoT コミュニティの知識共有を促進 • 多様な視点、アイデアや経験

Slide 7

Slide 7 text

Call for Proposals の結果 • 応募総数: 28 件 • 選考方法 • タイトルと概要のみを Input • SORACOM メンバーによる無記名投票 • 上位 4 つを採択 • 詳細は後日 Blog にて

Slide 8

Slide 8 text

パート2 の採択セッション • 現場の耳をデジタル化。社会インフラ、工場設備監視に • 株式会社アニモ 今竹 渉さん • GitHubで実践するIoT開発のDevOps • 株式会社オルターブース 木村 健一郎さん

Slide 9

Slide 9 text

現場の耳をデジタル化 社会インフラ・工場設備監視 株式会社 アニモ

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

アニモのご紹介  富士通株式会社のベンチャー第一号企業として1994年8月に創業  「音声・音響」をキーテクノロジーとしたソフトウェア会社 事業領域 コンタクトセンター ヘルスケア 社会・産業インフラ 音声認証 音声認識 音声合成 信号処理 音声・音響分析 技術

Slide 12

Slide 12 text

音声・音響とは? Copyright © ANIMO Limited. All rights reserved. 3  音は「可視化されていない重要な情報」を含む  非接触で情報を伝えられる  見えない場所から情報を伝えられる  意識を誘導できる

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

クラウドサービス連携と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 無制限 動きを検知した時だけ

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

機能 利用している技術 フリーテキスト入力 音声認識 本人確認 音声認証 感情、元気度、ストレスチェック 音声分析 Copyright © ANIMO Limited. All rights reserved. 作業報告の音声入力 ・ スマートフォンで簡単に作業報告、日報、メモを音声で入力 ・ あわせて音声から担当者の本人性の確認、入力している感情やストレスの状態を評価 ・ PC操作することが難しい屋外や、“ながら作業”で入力したい場面でご利用 主な機能と技術 8 利用イメージ 作業報告業務

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Copyright © ANIMO Limited. All rights reserved. 属人化しがちな異音点検をIT化し、音響の証跡管理と定量的な評価・分析を実現 10 シムトップス様 現場帳票システム i-Reporter 連携

Slide 20

Slide 20 text

牛ログご紹介 Copyright © ANIMO Limited. All rights reserved. 11 録音 牧場・飼育員 獣医師 音響分析・結果確認 情報共有 牛の胃の音を電子聴診器で録音し、聴診音を可視化・デジタル化し、健康状態をモニタリング。 過去の個体記録情報をレポートとして出力し、獣医師に正確な情報を共有することができます。 定期的に牛の健康管理を行うことで、異変の早期発見、重症化を防ぎ生産性向上。 電子聴診器 特開2022-179387 特開2022-179387

Slide 21

Slide 21 text

株式会社アニモ https://www.animo.co.jp/ Mail: [email protected] 【本社】 〒231-0015 横浜市中区尾上町2-27 大洋建設関内ビル4F TEL 045-663-8640 TEL :0120-010-249 オ ト ニヨク Copyright © ANIMO Limited. All rights reserved. 12

Slide 22

Slide 22 text

GitHubで実践するIoT開発のDevOps 株式会社オルターブース 木村健一郎

Slide 23

Slide 23 text

自己紹介 株式会社オルターブース クラウドソリューション部 副部⾧ 木村 健一郎(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

Slide 24

Slide 24 text

Copyright © Alterbooth Inc. All Rights Reserved. 3

Slide 25

Slide 25 text

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年

Slide 26

Slide 26 text

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月 インフォコム株式会社と資本業 務提携実施、インフォコムグループに参画す る

Slide 27

Slide 27 text

オルターブースの強み Copyright © Alterbooth Inc. All Rights Reserved. 7 オルターブースは創業以来一貫してクラウドに関する課題解決のご支援をしております。 特にMicrosoft AzureはMicrosoft MVPが多数在籍する当社にとっての強みとなっております。 当社の特徴はレガシーアプリケーションをクラウドへモダナイズすることです。DXを実現するために 必ず必要なもの、それはクラウドです。そのクラウドで実現できるDXを強力にサポートするのがオル ターブースです。 GitHub Services and Channel Partners LINE Technology Partner

Slide 28

Slide 28 text

• DevOpsを実践することで、より安全に、より短時間でお客様に価値を届けら れるようになります • DevOpsはハードウェアやIoTの現場でも実践可能です • 例として、SORACOM Orbitを使う開発現場で、DevOpsの重要な要素である CI/CDパイプラインを構築した事例を紹介します • GitHubカスタムアクションを作成すると、より可読性が高く、メンテナンス しやすく、再利用しやすいワークフローを作成できます • ソースコードは全て公開していますので、ぜひ他のSORACOMプラットフォームを操作する アクションも作ってみてください いきなりですが、本日のまとめです Copyright © Alterbooth Inc. All Rights Reserved. 8

Slide 29

Slide 29 text

What’s DevOps? Copyright © Alterbooth Inc. All Rights Reserved. 9

Slide 30

Slide 30 text

• Dev(開発)とOps(運用)が連 携して協力する開発手法 • DevOps は エンドユーザーに価値を継続的 に提供できるようにするための 人、プロセス、製品の集合 Copyright © Alterbooth Inc. All Rights Reserved. DevOps とは? • People. Process. Products. ” Build & Test Continuous Delivery Deploy Operate Monitor & Learn Plan & Track Develop “

Slide 31

Slide 31 text

DevOpsを成功させるための“パイプライン” Copyright © Alterbooth Inc. All Rights Reserved. 18 • 開発者がデプロイボタンを押してからサーバー側に反映されるまでの道のりを 可視化したもの • 基本的にすべて自動で進行するようにする • 自動化するためにはAPIで制御できるプラットフォームを利用する • 自動化することでデプロイに関しての制約がほぼなくなり、いつでもリリース できるようになる • いつでも必ず同じ動作をするように自動化する

Slide 32

Slide 32 text

(前略) この形式の迅速な反復と改善されたフローは、ソフトウェアまたは小規模なアプ リケーションやシステムにのみ適用されるという業界全体の誤解があります。 (中略) 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

Slide 33

Slide 33 text

IoTの現場でのDevOps Copyright © Alterbooth Inc. All Rights Reserved. 25

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

Copyright © Alterbooth Inc. All Rights Reserved. 29 センサー/デバイス “モノ” ネットワーク クラウド SORACOMサービスを使うと、データをクラウドサービスに届ける処理の 開発・運用が非常に便利になります。 そして、何より重要なこととしてAPIで制御できるという特徴があります。

Slide 38

Slide 38 text

Copyright © Alterbooth Inc. All Rights Reserved. 30 • DevOpsの中核を担うCI/CDのパイプラインは、「自動化する」ことが重要 • 自動化のためにはAPIで制御できるプラットフォームが必要 • SORACOMプラットフォームはAPIで制御できる SORACOMプラットフォームを使うことで、 IoTのネットワーク部分も CI/CDパイプラインに含めることが可能

Slide 39

Slide 39 text

SORACOM Orbitを使った開発現場での実例 Copyright © Alterbooth Inc. All Rights Reserved. 31

Slide 40

Slide 40 text

SORACOM Orbitは、インラインプロセッサと呼ばれるサービスです。 SORACOMプラットフォーム内で、自分で定義したプログラム(soralet)を使っ て通信データの加工をすることが可能です。 SORACOM Orbitについて Copyright © Alterbooth Inc. All Rights Reserved. 32 225303202307061400 { “temperature”:22.5, “humidity”: 30.3, “datetime”: “2023-07-06 14:00” }

Slide 41

Slide 41 text

• ローカルPCまたはコンテナにセットアップされた開発環境で開発 • ビルドしたsoraletをSORACOM cliまたはポータルからSORACOMプラット フォームへアップロード • 動作検証 • soraletを利用するように本番環境(SIMグループ)を設定 SORACOM Orbitの開発・運用フロー Copyright © Alterbooth Inc. All Rights Reserved. 33

Slide 42

Slide 42 text

• ビルドやテストが手動 • ブランチにマージされたコードがテストを通ったものかが分からない • テストをしなくてもmasterブランチにコードをマージできてしまう • テスト環境/本番環境へのデプロイが手動 • デプロイ時に誤ったsoraletをアップロードしてしまう • SORACOM Orbitにはsoraletのバージョン管理機能はあるが、本番/テスト環境(SIMグルー プ)から参照するsoraletのバージョンの付け替えが手動だと、どのバージョンが正しく動い ているものかの管理が難しい この手順での問題点と起こりうる事故 Copyright © Alterbooth Inc. All Rights Reserved. 34

Slide 43

Slide 43 text

GitHub Actionsを使って以下のようなCI/CDパイプラインを構築します。 CI/CDパイプラインの構築 Copyright © Alterbooth Inc. All Rights Reserved. 35

Slide 44

Slide 44 text

このパイプラインがあることで、以下の事が保証されます。 • master/stagingブランチのソースコードは必ずテストされている • デプロイされたものは全てテストに成功している • テスト環境(本番環境)が参照しているsoraletはstaging(master)ブランチから デプロイされたものである Copyright © Alterbooth Inc. All Rights Reserved. 36

Slide 45

Slide 45 text

パイプライン概要 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バージョンを、アップロードしたものに変更

Slide 46

Slide 46 text

パイプライン概要 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バージョンを、アップロードしたものに変更

Slide 47

Slide 47 text

パイプライン概要 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バージョンを、アップロードしたものに変更

Slide 48

Slide 48 text

パイプライン概要 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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

• 可読性が低い • メンテナンス性が悪い • ここに「アップロードしたsoraletバージョンが多かったら古いものを消す」という処理を 追記するのは辛い • 省略してますが、SIMグループの設定を変える部分を書くのは辛い • 再利用が困難 この問題を解決するために、2つのカスタムGitHub Actionを作成しました。 GitHub Marketplaceにも公開しています。 cliコマンドで記載することの問題点 Copyright © Alterbooth Inc. All Rights Reserved. 45

Slide 54

Slide 54 text

https://github.com/marketplace/actions/upload-soralet Upload Soralet Copyright © Alterbooth Inc. All Rights Reserved. 46

Slide 55

Slide 55 text

カスタムアクションを 利用したアップロード カスタムアクションを利用 - 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

Slide 56

Slide 56 text

カスタムアクションを 利用したアップロード カスタムアクションを利用 - 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

Slide 57

Slide 57 text

カスタムアクションを 利用したアップロード カスタムアクションを利用 - 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

Slide 58

Slide 58 text

https://github.com/marketplace/actions/update-soracom-orbit-configuration Update SORACOM Orbit configuration Copyright © Alterbooth Inc. All Rights Reserved. 50

Slide 59

Slide 59 text

カスタムアクションを 利用したデプロイ カスタムアクションを利用 - 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

Slide 60

Slide 60 text

カスタムアクションを 利用したデプロイ - 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

Slide 61

Slide 61 text

カスタムアクションを 利用したデプロイ - 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

Slide 62

Slide 62 text

カスタムアクションを 利用したデプロイ カスタムアクションを利用 - 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

Slide 63

Slide 63 text

デモ Copyright © Alterbooth Inc. All Rights Reserved. 55

Slide 64

Slide 64 text

• DevOpsを実践することで、より安全に、より短時間でお客様に価値を届けら れるようになります • DevOpsはハードウェアやIoTの現場でも実践可能です • 例として、SORACOM Orbitを使う開発現場で、DevOpsの重要な要素である CI/CDパイプラインを構築した事例を紹介しました • GitHubカスタムアクションを作成すると、より可読性が高く、メンテナンス しやすく、再利用しやすいワークフローを作成できます • ソースコードは全て公開していますので、ぜひSORACOMプラットフォームを操作する他の アクションも作ってみてください まとめ Copyright © Alterbooth Inc. All Rights Reserved. 56

Slide 65

Slide 65 text

• 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

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

最後に • フィードバックをお待ちしております! • #SORACOM • アンケート • CfP は続けていきます(いきたい) • 来年の Discovery • 他のイベントでも

Slide 68

Slide 68 text

No content