Upgrade to Pro — share decks privately, control downloads, hide ads and more …

組み込み開発でクラウドネイティブを始める方法

小野佑大
November 15, 2023

 組み込み開発でクラウドネイティブを始める方法

EdgeTech+ 2023での登壇資料です。
プレゼンで行ったデモを夜に収録してみました。以下のYoutubeをご参照ください。

・OSTreeを使用したOSの更新
・MicroShiftとArgoCDインストール済みのOSのデプロイ
・ArgoCDを使ったエッジデバイスでのGitOps

https://youtu.be/4APxb-QSGFU?si=6Pxi4YLd5AZprBAD

また、セッション中に紹介したエッジAIのCI/CDのデモは以下のリンクから参照できます。
https://youtu.be/QkI9O_3A_4s

小野佑大

November 15, 2023
Tweet

More Decks by 小野佑大

Other Decks in Technology

Transcript

  1. Copyright © 2023 Red Hat K.K. All Rights Reserved. 自己紹介

    レッドハット株式会社 Cloud Specialist Solution Architect Edge Strategy Tech Lead 小野 佑大 @pinkink_yudai 1987年2月生まれ 埼玉県出身 趣味 バンド / エッジ自宅ラボ作り OpenShiftのプリセールス Edge Computingを担当 出版 Knative実践ガイド - インプレス 2
  2. Copyright © 2023 Red Hat K.K. All Rights Reserved. IPC

    1台 IPC 3台 AWS プロビ Edge Fog Cloud レッドハットのブースへぜひお越しください! EdgeTech+にスマートファクトリーを再現! データ 3
 この辺 (B-M08) 写真参照. https://www.fischertechnik-education.jp/training_and_plc.html
  3. Copyright © 2023 Red Hat K.K. All Rights Reserved. 本日の内容

    組み込み開発でなぜクラウドネイティブ? 1 エッジでクラウドネイティブをどう始める? 2 4
  4. Copyright © 2023 Red Hat K.K. All Rights Reserved. 本日の内容

    組み込み開発でなぜクラウドネイティブ? 1 エッジでクラウドネイティブをどう始める? 2 5
  5. Copyright © 2023 Red Hat K.K. All Rights Reserved. エッジでクラウドネイティブの動向

    マイクロサービスやAI活用等を推進し ニーズや変化へ迅速かつ柔軟に対応 できるようにしたい Edge-to-Cloud ハイブリッドプラットフォーム クラウドだけでなくエッジも活用し、 IoTデータ送信時の通信 コストやセキュリティ運用を最適化 したい PF MLOps DevOps ZTP 6 アプリケーション運用の一貫性 data エッジアプリケーションの機動的な開発 /運用 エッジで使用されるシステムを ソフトウェアの力でスマート化 Microservice AI Monolith management スマート化!
  6. Copyright © 2023 Red Hat K.K. All Rights Reserved. ▸

    アプリのテスト、検証の実施工数が高い ▸ アプリが動作しないリスク ▸ メンテナンス時間やネットワーク帯域が制限され そもそも一斉更新が困難 更新は、顧客へ新たな価値を迅速に提供するための必須の手段です。 更新を避けることはビジネス機会の損失につながることになります。 ▸ セキュリティリスクの増加 ▸ 時間経過と共にOSやアプリの陳腐化 「安定性重視の塩漬け運用」 vs 「顧客のニーズの多様化へ柔軟に対応」 更新した場合の課題 更新しない場合の課題 ソフトウェアの安全かつ迅速な『更新』への挑戦 7
  7. Copyright © 2023 Red Hat K.K. All Rights Reserved. 理想の状態をコードで定義

    (APIを実行) 効率的な更新の手段がクラウドネイティブ コンテナ
 Bin/ Library App アプリケーション本体と アプリケーション実行に必要 なライブラリや依存関係を 丸ごとパッケージ コン
 テナ
 コン
 テナ
 アプリがどこでも動く アプリの状態を遠隔かつ宣言型で効率的にコントロール Rolling Update コン
 テナ
 定義された 状態を自律的に維持 8
 IaCと呼んだりします replicas: 1 Image: v2
  8. Copyright © 2023 Red Hat K.K. All Rights Reserved. App

    Libraries OS App Libraries Any Infrastructure Any Infrastructure Container Engine 開発スピードと安定性の両立 Agility & Reliability どこでもアプリを実行可能 Application Portability 一貫した環境の維持 Consistent Environment 環境を意識しない可搬性 Run Anywhere アプリケーションの再現性 Immutable Architecture OSの各リソースとの分離 Resource Isolation これまで
 コンテナ
 アプリの更新が怖くない! スケールの柔軟性が高い! 爆速スクラップ&ビルド! コンテナとは『アプリケーションの仮想化』 9

  9. Copyright © 2023 Red Hat K.K. All Rights Reserved. 本日の内容

    組み込み開発でなぜクラウドネイティブ? 1 エッジでクラウドネイティブをどう始める? 2 10
  10. Copyright © 2023 Red Hat K.K. All Rights Reserved. エッジデバイスでクラウドネイティブ

    どう使う? Config / Secret Hardware OS Onboarding OS Installer Workload 変更頻度の高いアプリやその設定の更新を効率化する『プラットフォーム』に着目します どんどん追加・更新 (AI、データ連携プラグイン等) OSのライフサイクルで 定期更新 TO-BE AS-IS OSのライフサイクルで 定期更新 ここ Static Workload Platform Hardware OS Onboarding OS Installer 11 プラットフォームが 手助けする Dynamic Workload Config / Secret
  11. Copyright © 2023 Red Hat K.K. All Rights Reserved. OSからアプリケーションまでトータルで考える

    クラウドネイティブで運用を効率化するには、特に組み込み後の『OSの運用の効率化』が大事です Kickstart パッケージベース(yum) イメージベース(OStree) 独自 systemd systemd Container 構成管理ツール TO-BE AS-IS Kickstart Kubernetes+α Container Kubernetes Vault Ansibleなど Config / Secret Hardware OS Onboarding OS Installer Workload Dynamic Workload Static Workload Platform Hardware OS Onboarding OS Installer Config / Secret 12 ここの更新 も大事 そのためにOS運用 も効率化する FIDO Device Onboarding
  12. Copyright © 2023 Red Hat K.K. All Rights Reserved. 13

    クラウドネイティブで安全かつ迅速な更新へ挑戦 Kubernetes Kubernetes Kubernetes 効率的なOSデプロイメント 迅速なアプリケーションデプロイメント OSイメージ作成 自動プロビジョニング (FIDO Device Onboarding: FDO) Kubernetes 管理環境へ自動登録 CI/CD 開発環境 Kubernetesが自動インストール 自動化 アプリケーションを遠隔から展開 OSTree Repo/ Onboarding Server OSのAtomic更新 デバイス出荷後のOS/アプリケーションのデプロイメントの効率化
  13. Copyright © 2023 Red Hat K.K. All Rights Reserved. Red

    Hat Device Edge RHELのコンテナベースイメージもサポート Kubernetes cluster services Networking | Ingress | Storage | Helm Kubernetes Orchestration | Security Linux for edge Security | Containers | VMs Install | Over-the-air-updates Monitoring | Logging エッジデバイス CPU 2コア/MEM 2GB/Disk 10GB, x86_64 / AMD64 / ARM64 MicroShift 14 9.2 or later (Optional) Red Hat Device Edgeは、エッジに最適化されたOSである「RHEL for Edge」と 軽量版OpenShiftの「MicroShift」をまとめてエンタープライズサポートを提供するプロダクトです 管理 コンテナ App Base Image コンテナ App Base Image
  14. Copyright © 2023 Red Hat K.K. All Rights Reserved. a2

    a1 OSTreeベースのOS管理 Data and apps a2 Update Data and apps a1 Major release 16 新しいファイルシステムツリーをPull • パッケージ管理はyumやdnfでなく「rpm-ostree」を使う • ファイルシステム全体を置き換える 新しいファイルシステムツリーをStore • 複数のファイルシステムを保存し、内1つを適用 • ファイルシステムへの変更を追跡し続ける 新しいファイルシステムツリーをDeploy • OS再起動時に保存されたファイルシステムのいずれかを適用 • アプリに問題があったら自動ロールバック(Greenboot) • OS稼働中は /etcと/var以外 Read Only OSの更新運用にGitのアプローチを! ファイルシステムツリー全体をバージョン単位で管理できるツール
  15. Copyright © 2023 Red Hat K.K. All Rights Reserved. Image

    BuilderでOSイメージを構築 RPM Repo Management (cdn.redhat.com, Satelliteなど) Blueprint rpm-ostree image name = "microshift01" version = "0.0.1" distro = "rhel-8" [[packages]] name = "microshift" version = "*" [[packages]] name = "openshift-clients" version = "*" [customizations] hostname = "edge" [customizations.services] enabled = ["microshift"] Kickstart 17 • 編集およびバージョニングが可能 • 様々な環境(仮想、クラウド、エッジ)に対 応したイメージを作成 Toml形式でインストールしたいパッケージや各種設定を定義 OSブート時に実行されるスクリプト Image Builder 自動Installer ISO 『Blueprint』と呼ばれる定義ファイルでイメージバージョンを管理します
  16. Copyright © 2023 Red Hat K.K. All Rights Reserved. OSTreeのデプロイメント

    Network-based Deployment Non-Network-based Deployment NW経由で OSTree Repoにアクセス OSTree RepoをISOに埋め込みローカルアクセス file://run/install/repo/ostree/repo 18 Central site Edge site OSTree repository Edge site Edge site url=http://foo:port/repo/ Central site Edge site OSTree repository Edge site Edge site
  17. Copyright © 2023 Red Hat K.K. All Rights Reserved. <デバイス配置環境>

    <開発環境> Image Builder a1 a2 a3 コンテナ レジストリ Rev a1 Rev a2 Rev a3 OSTree Repo v1.0 v1.0 v1.1 v1.2 コンテナイメージの 構築、更新 v1.1 v1.1 a3 v1.2 ライフサイクルを分 離 a1 デプロイ [コンテナ] [OS] OSとアプリケーションの更新のイメージ 初期イメージの構築 (Option)Kickstartで カスタマイズ 19 バージョン付きファイルシステムツリー 随時更新 定期メンテで更新 (再起動)
  18. Copyright © 2023 Red Hat K.K. All Rights Reserved. エッジデバイスへのアプリケーションリリースは煩雑

    KubernetesのAPIを『人』が使う KubernetesのAPIを 『システム』が使う 21 システムがKubernetesを使う 人がKubernetesを使う MicroShift light-weight Kubernetes エッジデバイスの台数が増えてくると煩雑化
  19. Copyright © 2023 Red Hat K.K. All Rights Reserved. エッジデバイスで『GitOps』しよう!

    ソースコード / YAML / 設定... アプリケーションのプロビジョニング (Push型 or Pull型) CI Pipeline 22 Webhook Sync 脆弱性やバグの ないコンテナ イメージを作る MicroShift light-weight Kubernetes CD Pipeline 更新 Git操作で コンテナを 継続的に展開 Push Pull Container Registry 脆弱性Scan YAML更新 脆弱性Scan
  20. Copyright © 2023 Red Hat K.K. All Rights Reserved. 24

    クラウドネイティブで安全かつ迅速な更新へ挑戦 Kubernetes Kubernetes Kubernetes 効率的なOSデプロイメント 迅速なアプリケーションデプロイメント OSイメージ作成 自動プロビジョニング (FIDO Device Onboarding: FDO) Kubernetes 管理環境へ自動登録 CI/CD 開発環境 Kubernetesが自動インストール アプリケーションを遠隔から展開 OSTree Repo/ Onboarding Server 自動化 デバイス出荷後のOS/アプリケーションのデプロイメントの効率化 OSのAtomic更新
  21. Copyright © 2023 Red Hat K.K. All Rights Reserved. 『体験』から全てが始まります!

    25 https://play.instruqt.com/embed/openshift/trac ks/red-hat-edge-workshop-jp?token=em_Fq9rq H6LGRgsEean ※Webブラウザは Google Chrome、Firefox、IE Edgeで動作します。 OS Image Build for ZTP Application Deployment https://play.instruqt.com/embed/openshift/tracks/r ed-hat-device-edge-install-microshift?token=em__lf XU_pCdghwqIMZ 注)アクセスすると利用者毎に専用の環境が自動的に払い出されます。   そのため、環境構築に 15-20分程度かかります。 今日のお話しの一部を自己学習型で『無償』で体験いただけます
  22. Copyright © 2023 Red Hat K.K. All Rights Reserved. Developer

    for Individual Subscriptionで無料で試せる! https://developers.redhat.com/blog/2021/02/10/how-to-activate-your-no-cost-red-hat-enterprise-linux-subscription 1 2 アカウントを作る OSイメージをダウンロードする 26 有償のエンタープライズサポートが受けられないトライアル版です
  23. Copyright © 2023 Red Hat K.K. All Rights Reserved. IPC

    1台 IPC 3台 AWS プロビ Edge Fog Cloud レッドハットのブースへぜひお越しください! EdgeTech+にスマートファクトリーを再現! データ 27
 この辺 (B-M08) 写真参照. https://www.fischertechnik-education.jp/training_and_plc.html
  24. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Thank you Red Hat is the

    world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500.
  25. Copyright © 2023 Red Hat K.K. All Rights Reserved. 参考.

    エッジAIのCI/CDデモ 29 https://github.com/yd-ono/AI-for-edge-microshift-demo