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

Containers at Edge and the future

Kohei Ota
August 20, 2020

Containers at Edge and the future

Kohei Ota

August 20, 2020
Tweet

More Decks by Kohei Ota

Other Decks in Technology

Transcript

  1. Containers at Edge
    and the future
    TechFeed Summit #3
    Presented by @inductor

    View Slide

  2. 自己紹介
    名前: Kohei Ota (@inductor)
    所属: HPE
    職種: Solutions Architect
    その他: CNCF Ambassador
    Docker Meetup Tokyo,
    CloudNative Days Tokyo 運営

    View Slide

  3. 今日お話すること
    ● エッジコンピューティングとIoT(前回のテーマ)
    ● エッジにおけるデリバリーの課題とその解決策
    ● Kubernetesにおけるエッジコンピューティングの取り組み
    ● KubernetesとWASM

    View Slide

  4. エッジコンピューティングとIoT
    01 エッジコンピューティングは、エンドユーザーの近くに計算リソースを分散させることで
    中央サーバーとの遅延を解消する技術
    02 IoTの文脈ではセンサーを搭載したラズパイなどが代表例として挙げられ、計測デー
    タをその場で処理して返却するためレスポンスが速くなり中央サーバーの負荷が下
    がるなどのメリットがある
    03 一方で、計算リソースを分散させるためネットワーク制約の大きい場所にアップデート
    を配信する際の考慮が必要

    View Slide

  5. エッジコンピューティングとIoT
    01 エッジコンピューティングは、エンドユーザーの近くに計算リソースを分散させることで
    中央サーバーとの遅延を解消する技術
    02 IoTの文脈ではセンサーを搭載したラズパイなどが代表例として挙げられ、計測デー
    タをその場で処理して返却するためレスポンスが速くなり中央サーバーの負荷が下
    がるなどのメリットがある
    03 一方で、計算リソースを分散させるためネットワーク制約の大きい場所にアップデート
    を配信する際の考慮などが必要
    電車みたいな常に動いているデバイスにどうやって
    最新のアプリケーションを配信するか?という課題

    View Slide

  6. エッジにおけるデリバリーの課題とその解決策
    軽量で、別環境でも動作保証できるパッケージング技術があ
    れば自動化がかんたんになるのでは?

    コンテナやWASM等の技術が利用できるという期待

    View Slide

  7. Case Study: Walmart
    ● 世界最大のスーパーマーケット
    ● レジの決済システムを各店舗でどうやってモダナイズ、展開していく
    かという課題にぶちあたった
    ● 結論としては、Kubernetesでシステムを管理しつつ、エッジにクラス
    ターを展開する方法を採用

    View Slide

  8. Case Study: Walmart

    View Slide

  9. Case Study: Walmart
    店舗ごとに小さなサーバーを配置しそこに
    Kubernetesクラスターを展開
    GitOpsによるクラスター構成の配信
    店舗のレジはストア内クラスターと通信することで決済システムが動作

    View Slide

  10. Case Study: Walmart

    View Slide

  11. Case Study: Walmart
    サービスメッシュによるResiliency(対障害性)の確保
    → 店舗と通信して失敗したらクラウドに通信
    IstioとEnvoyを用いたトラフィックのルーティング

    View Slide

  12. Case Studyからの学び
    ● コンテナによるパッケージング + Kubernetes with GitOpsで
    多数のクラスター構成管理が可能に
    → Kubernetesのエコシステムで完結できる強みを活かす
    他のIoTにおける利用でも参考にできそう

    View Slide

  13. その他のKubernetesにおけるEdgeの取り組み
    ● Rancher社のk3s
    ○ 軽量(しょぼいスペックでも動く)
    ○ オールインワンパッケージ
    ● KubeEdge
    ○ Kubernetesベース
    ○ k3sのような魔改造はしてない
    ● デンソーさんのMisaki(ロゴが見つからず)
    ○ 車に組み込むやつ

    View Slide

  14. KubernetesとWASM
    1. WASMのおさらい
    01 WASM(Web Assembly)はモダンブラウザでNative Codeを動かそうとするための試み
    CやRustなどで記述したコードをWASM用にコンパイルするとブラウザで爆速に動く
    !
    みたいなやつ(例: vimをブラウザ上で動かした人もいる
    )
    02 WASMを動かすにはランタイムが必要だが、ランタイムの仕様はオープンに公開されてい
    て誰でも作ることができる。
    V8のようにブラウザ向けのものもあるが、
    Non-webというブラウ
    ザ以外で動かせるランタイムも複数存在する
    (例: WASI)
    03 コンセプトが「Run anywhere」な上、実体がコンパイル済みのアプリケーションバイナリな
    ので、コンテナのように軽量でどこでも動作できる特徴を持つ

    View Slide

  15. KubernetesとWASM
    2. Krustletについて
    01 Deis Labsというプロジェクトにて開発中の
    OSS
    KubeletをRustで再実装したもの
    一番の特徴はWASMをサポートしていること(Dockerの代わりにWASIなどが使える)
    02 WASMモジュールをOCI形式に変換してコンテナレジストリに置くための仕様も作っていて、
    Kubernetesの既存のエコシステムがあれば
    WASMのアプリケーションが動かせる変態的
    な仕組み
    03 HelmやCNABなどを牽引するチームで、マイクロソフトが主体となって開発を進めて
    いる

    View Slide

  16. KubernetesとWASM
    3. Krustletのアーキテクチャ
    ホストマシン
    Docker
    Containerd
    CRI-O
    Kubelet
    Pod
    (OCIコンテナ)
    CRI
    OCI
    ホストマシン
    Krustlet
    (WASI or waSCC provider)
    Pod
    (WASM)
    コンテナレジストリ
    Pull OCI
    Image
    apiVersion
    : v1
    kind: Pod
    metadata:
    name: krustlet-tutorial
    spec:
    containers
    :
    - name: krustlet-tutorial
    image:
    mycontainerregistry007.azurecr.io/krustlet-tutorial:v1.0.0
    tolerations
    :
    - key: "krustlet/arch"
    operator: "Equal"
    value: "wasm32-wasi"
    effect: "NoExecute"

    View Slide

  17. まとめ
    ● Kubernetesでアプリケーションを動かすための選択肢は
    必ずしもコンテナ、だけではなくなってきている
    ● エッジにおける計算リソースの確保にはさまざまな方法がある
    ● WASMはコンテナと対応する形のパッケージング技術として
    見ても、とても面白い

    View Slide

  18. 謝辞
    今回WASMに関して調査するにあたり、同じTech Feed Proのエ
    キスパートである@chikoskiさんに、WASMの技術的背景や基本
    的な仕組みについて教えていただきました。
    この場を借りて感謝申し上げます!

    View Slide

  19. ありがとうございました

    View Slide