基調パネルディスカッション:WebAssemblyでクラウドネイティブアーキテクチャに革命を起こす
このページのタイトル、字幕、要約、読書メモは保存済みの AI 翻訳です。誤りが含まれる場合があります。タイムスタンプは原文と同じです。原文の字幕を開き、元の動画と照合できます。
クラウドネイティブのパネルが仮想マシン、コンテナ、WebAssemblyを比較し、SpinKubeとKubernetes上でのWasmアプリケーションの実行について説明します。
文字起こしの出典:Vidleafによる自動音声認識(誤りを含む可能性があります)。AIによる句読点はVidleafが追加しました。元の文言とタイムスタンプのアンカーは保持されています。元の文字起こしは以下でご覧いただけます。
AI生成の要約
この講演では、ボクシングの体重別階級をクラウドランタイムの比喩として用いています。仮想マシンはヘビー級で、多くのことができるが起動に数分かかることが多く、コンテナはミドル級で数秒で起動し単一の長時間稼働サーバーに適しており、WebAssemblyはライト級で、一度コンパイルすればアーキテクチャやオペレーティングシステムをまたいで再利用でき、コールドスタートは約半ミリ秒です。SpinKubeはKubernetes上でWebAssemblyを実行するのに役立ちます。SpinAppカスタムリソースがWebAssemblyバイナリを含むOCIアーティファクトを参照し、Spinオペレーターが対応するポッドとサービスをデプロイし、ポッドはコンテナランタイムではなくWasmランタイムを使用します。二ノードのAKSクラスターで、レプリカを50に増やすと、ポッドはx86ノードとAmpere ARM64ベースのノードに分散されます。ZeissのKaiは、セマンティックと技術的な粒度をより近づけるためにクラウドでのWebAssemblyを検討していると述べています。デモでは、三つのSpinアプリが通常のKubernetesプリミティブでスケールし、通常のデプロイをWebAssemblyアーティファクトを使うSpinアプリに置き換えることで、Node.js Expressアプリが400メガからほぼ2メガに削減されることを示しています。x86からARMに切り替えるだけでコストが60%削減されました。RunWazi上に構築された、Spin用のWebAssembly ContainerDシムにより、Kubernetesは迅速にスケールし、マルチアーキテクチャビルドなしでオペレーティングシステムやCPUをまたいでワークロードを移動できます。また、WebAssemblyワークロードはコンテナと同じポッドで実行できます。Fermion、Microsoft、SUSE、Liquid Replyは、ランタイムクラスマネージャーとSpinオペレーターを含むオープンソーススタックであるSpinKubeを発表し、SpinCubeをCNCFに寄贈するための申請を提出しました。
文字起こしから生成されました。リンクされた箇所を元の動画と照合して確認してください。
タイムスタンプ付きの章の要約
ボクシングの体重別階級とクラウドコンピューティング
- [0:00] 講演者は最近ボクシングにハマっているが、主にソファから観戦しているだけです。
- [0:09] ボクシングにはヘビー級、ミドル級、ライト級などの体重別階級があり、ボクサーはその階級で戦うために一定の体重を満たす必要があります。
- [0:30] これらの体重別階級は、講演者にクラウドコンピューティングの雲を思い起こさせます。
- [0:36] 仮想マシンはヘビー級です。強力ですが、倒されると立ち上がるのに時間がかかります。
- [0:54] 仮想マシンはクラウドの元祖ヘビー級ランタイムであり、起動に数分かかることがよくあります。
- [1:02] 仮想マシンはカーネルからアプリケーションまでオペレーティングシステム全体を含むため、多くのことができます。
クラウドにおけるコンテナとWebAssemblyの比較
- [1:10] コンテナはより軽量で小さく、クラウドコンピューティングにおけるミドル級に位置づけられます。
- [1:19] ミドル級はスピードとパワーのバランスを取ります。
- [1:23] コンテナは、単一の長時間稼働するサーバーを実行するのに適した環境を提供します。
- [1:30] コンテナは数分ではなく数秒で起動し、仮想マシンよりもリソース消費が少なくなります。
- [1:39] WebAssemblyはクラウドコンピューティングの第三の波、ライト級と表現され、スピードと俊敏性が最も重要です。
- [1:39] アプリは一度WebAssemblyバイナリ形式に直接コンパイルすれば、複数のアーキテクチャやオペレーティングシステムをまたいで変更なしに再利用できます。
- [2:01] WebAssemblyアプリは約半ミリ秒でコールドスタートできます。
- [2:09] その半ミリ秒の起動により、WebAssemblyはコンテナよりもはるかに高速に起動できます。
SpinKubeでKubernetes上でWebAssemblyを実行する
- [2:30] SpinKubeは、Kubernetes上およびクラウドネイティブ環境でWebAssemblyを実行するのに役立つプロジェクトです。
- [2:36] KubernetesのSpinAppカスタムリソースは、WebAssemblyバイナリを含むOCIアーティファクトを参照します。
- [2:57] SpinAppカスタムリソースの背後ではSpinオペレーターが動作します。
- [3:11] Spinオペレーターは適用されたSpinAppを取得し、対応するデプロイメントPodとServiceをデプロイします。
- [3:18] Podは、アプリを実行するためにコンテナランタイムではなくWasmランタイムを使用するように構成されています。
- [3:25] 外部からは通常どおりPodとServiceが存在しますが、内部的にはコンテナではなくWebAssemblyアプリです。
- [3:35] 二ノードのAKSクラスターでレプリカ数を50に増やすと、ポッドはx86ノードとAmpere ARM64ベースのノードに分散されます。
- [3:59] さらにスケールするには、同じバイナリをその時点で安価な任意のバースタブルインスタンスに配置できます。
- [4:12] こうしたことはZeiss Groupのチームにとって重要でした。
より高速で小さいクラウドサービスのためのWebAssembly
- [4:24] ZeissのKaiは、同社が球面、レンズ、光学製品を扱っており、顕微鏡からAppleシリコンやNVIDIA GPUの製造に使われる高NAリソグラフィシステムまで手がけていると述べています。
- [5:18] 彼らのビジネスモデルの多くは、情報の膨大な規模であれ製品仕様の添付であれ、情報を電子的に処理することを必要としています。
- [5:36] プロジェクト開始時には資金は問題ではなく、プロジェクトリスクが高くコミットメントがなされ、DAPやKEDAなどのCNCFツールを追加します。
- [5:55] ビジネスが落ち着くと、財務部門はよりコストを意識した設計アプローチを要求します。
- [6:08] サービスは当初、ドメイン駆動設計を用いて境界づけられたコンテキスト内で設計されますが、後にコンテナランタイムのサイズやパーツの制限といったロジスティクス面が、技術的な粒度をセマンティックな粒度から乖離させます。
- [6:32] 彼らはセマンティックな粒度と技術的な粒度をより近づけるために、クラウドにおけるWebAssemblyを検討し始めました。
- [7:34] デモでは、三つのSpinアプリが通常のKubernetesプリミティブで負荷を処理し、注文が届くにつれてレプリカをスケールアップし、スループットが増加する様子を示しています。
- [8:26] 全体のスループットは約34秒になり、Kaiはこれを他の環境と比べてかなり良いと述べています。
- [8:47] 通常のデプロイの代わりにWebAssemblyアーティファクトを使うSpinアプリを使用すると、Node.js Expressアプリが400メガからほぼ2メガに削減され、さらにロジックを追加してもそのサイズが劇的に増えることはありません。
- [9:06] 小さいサイズにより、サービスは迅速にスケールアップおよびスケールダウンできるため、同じリソースを後続の処理ウェーブがわずかな重複を伴って再利用でき、しかも既知のツールと環境を使い続けられます。
- [9:42] より小さなパッケージングにより、同じリソースにより多くのサービスを詰め込むか、より安価なリソースを使うことができ、スケーリングが速く、リソースの再利用性も高まります。
- [10:09] x86からARMに切り替えるだけでコストが60%削減され、60%安価なリソースを利用できるようになりました。
SpinKube: Kubernetes上のWebAssemblyワークロード
- [10:28] CNCFとBytecode Allianceの財団が世界中で支援する、GoとRustによるオープンソースプロジェクトからのKaiのデモ結果です。
- [10:55] 最初に取り上げるプロジェクトはKubernetesです。WebAssemblyの取り組みは依然としてKubernetesに依存しています。
- [11:04] プラットフォームとしてのKubernetesの成熟度と安定性により、その周辺での継続的なイノベーションが可能になります。
- [11:12] CNCFのContainerDプロジェクトには、さまざまな種類のワークロードをKubernetesに統合するための多くのシムがあります。
- [11:23] MicrosoftはRustベースのContainerDプロジェクトを作成しました。これはFermion、Docker、Second Stateなどのコントリビューターによって使用され、既存のコンテナに影響を与えることなくKubernetesに柔軟性とスケーリングの俊敏性を追加します。
- [11:56] Spin用のWebAssembly ContainerDシムであるRunWazi上に構築されており、Kubernetesが迅速にスケールし、マルチアーキテクチャビルドなしでワークロードをオペレーティングシステムやCPU間でオンザフライに移動できるようにします。
- [12:19] WebAssemblyワークロードはコンテナと同じポッド内で実行できるため、既存のコンテナワークロードは引き続き動作します。
- [12:30] Liquid ReplyのKWASMオペレーターは、新しいクラスターやブートストラップを必要とせずにSpinShimを簡単にインストールします。
- [13:14] Fermion、Microsoft、SUSE、Liquid ReplyはSpinKubeを発表しました。これは、コンテナと並行してKubernetes上でWebAssemblyワークロードを開発、デプロイ、運用することを合理化するオープンソーススタックです。
- [13:32] SpinKubeには、RunWaziベースのシムなど、ContainerDシムのインストール、アップグレード、アンインストールを処理するランタイムクラスマネージャーが含まれています。
- [14:01] Spinオペレーターは、Zeissが行っていたように、密度とスケーリングの俊敏性のためにワークロードを最適化します。
SpinCubeをCNCFに提出
[0:00] 最近ボクシングにハマっています。実際にボクシングはしません。もっぱらソファの快適な場所から観戦するだけです。ボクシングにはヘビー級、ミドル級、ライト級などの体重別階級があります。その名の通りです。ボクサーはその階級で戦うために一定の体重を満たす必要があります。そして、これらの体重別階級は、クラウドコンピューティングの波のクラウドを思い出させます。
[0:35] ありがとうございます。まず最初は仮想マシンです。これがヘビー級です。ボクシングでヘビー級にいるということは、パワフルだということです。しかし、ノックダウンされたら、立ち上がるのに時間がかかります。これは基本的な物理法則ですよね?仮想マシンはクラウドの元祖ヘビー級ランタイムです。多くの場合、起動に数分かかりますが、カーネルからアプリケーションまでオペレーティングシステム全体を含んでいるため、多くのことができます。
[1:10] コンテナはより軽量で小型です。そしてクラウドコンピューティングの世界では、これがミドル級になります。ミドル級は速度とパワーのバランスを取ります。コンテナは、単一の長時間稼働サーバーを実行するための完璧な環境を提供してきました。起動には数分ではなく数秒かかり、仮想マシンよりも少ないリソースを消費します。そこに、クラウドコンピューティングの第三の波であるWebAssemblyを加えましょう。これがライト級です。ここではスピードと俊敏性が肝心です。アプリを一度直接WebAssemblyバイナリ形式にコンパイルし、その同じバイナリを変更なしで複数のアーキテクチャやオペレーティングシステムで使用できます。
[2:01] そして、WebAssemblyアプリは約半ミリ秒でコールドスタートできます。半ミリ秒です。これにより、コンテナよりもはるかに高速に起動できます。では、Kubernetesやクラウドネイティブ環境でWebAssemblyをどのように実行するのでしょうか?今日はSpin Cubeについてお話しします。これはまさにそれを実現するためのプロジェクトです。
[2:36] これはKubernetesのSpinAppカスタムリソースです。6は、WebAssemblyバイナリを含むOCIアーティファクトへの参照です。ええ、それは可能なことです。このSpinAppカスタムリソースの背後にはspinオペレーターがいます。spinアプリをクラスターに適用すると、ここでクラスター内で実行されているのがわかります。
[3:11] spinアプリを、spinオペレーターが実際にピックアップし、対応するデプロイメントポッドとサービスをデプロイします。ポッドを構成して、アプリを実行するためにコンテナランタイムではなくWasmランタイムを使用するようにします。つまり、外側では通常どおりポッドとサービスがありますが、内側では実際にはコンテナではなくWebAssemblyアプリです。これが同じアプリです。レプリカ数を50に増やし、クラスターに適用します。
[3:43] ここでは二ノードのAKSクラスタで実行しています。ポッドを確認すると、それらは分散されています。私の二つのノードをよく見てください。一つはx86ノードで、もう一つはAmpereのARM64ベースノードです。ありがとうございます。さらにスケールしたいなら、同じバイナリを任意のバースト可能なインセンスに載せればよく、当時はそれが安価でした。ありがとうございます。これらはZeiss Groupのチームにとって重要な種類のことです。
[4:18] そして今からカイに、この分野での経験について話してもらいたいと思います。ありがとう、カイ。メルシー、ミシェル。というわけで、サイズの話から来ているので、物理学には共感できます。私たちのロゴにあるARCが示すように、私たちは球体、レンズ、光学を扱っています。顕微鏡から、金属の塊のように見えるこの大きな立方体まで、それは高NAリソグラフィカテーテルシステムであり、皆さんが愛するAppleシリコンやNVIDIA GPUを製造するために基本的に必要なものです。これらは地球上で唯一それを可能にする光学デバイスです。
[4:58] 私のR&Dの専門家たちは、いつもこの種の光学を私に説明しようとしますが、そこには助けがありません。ですから私はその基本しか理解できません。しかし私が理解しているのは、情報技術上でそのようなビジネスモデルを運用する方法です。私たちのビジネスモデルの多くは、情報を電子的に処理することを必要とします。それが処理しなければならない情報の純粋な規模のためであれ、添付された製品仕様のためであれ。
[5:34] ああ。ですから、こうしたプロジェクトを始めるとき、最初はお金は問題ではありません。プロジェクトのリスクは高く、コミットメントがなされ、そして私たちは基本的にそのケースを徹底的に再クーポン化しました。DAPやKEDAなど、CNCFの良さをいくつか擦り込んだりもしました。塵とビジネスが落ち着くとすぐに、財務の人たちが追いついてきて、そのとき私たちは基本的によりコスト設計重視のアプローチに入る必要があります。
[6:06] 第二に、しばしば最初は、境界づけられたコンテキスト内でそれらのサービスを設計し、ドメイン駆動設計を適用するという贅沢を持つことができます。つまり、本当に素晴らしいシステムを作るのです。さらに先へ進むと、しばしばロジスティクスの側面が介入します。コンテナランタイムのサイズ、部品数の制限などです。そしてすぐに私たちは基本的に、実行するものの技術的粒度が意味的粒度から乖離することを受け入れざるを得なくなります。そしてこれが、私たちがクラウドにおけるWebAssemblyを検討し始めた理由の一つです。基本的に、意味的粒度と技術的粒度をより近づけるためです。
[6:58] そのために、私たちは多くのフローの一つを一般化します。それは私たちが通常その処理をどのように行うかを反映しています。つまり、多数のメッセージや注文が私たちの玄関先に落とされ、そして期待されるのは、これらのメッセージが所定の時間内に処理されることです。つまり、いつ、どのように私たちがそのものを生産または配送するかに答えることです。そしてこれがまさに私たちが測定するものです。注文の到着から、それらがいくつかのバケットに着地するまでを。
[7:30] では、実際の動作を見てみましょう。さようなら。ここに見えるのは、負荷を処理した三つのスピンアプリと、それぞれのデプロイメントです。ご覧のとおり、かなり規則的なKubernetesプリミティブです。負荷を生成してみましょう。レプリカの基本的な形が見えます。負荷が上がります。最初のレプリカセットがすでに最初の注文の塊を受け取ります。環境がスケールアップするとすぐに、同じ時間スライスで処理できる注文数が劇的に増加します。まず、いくつかのディストリビューター機能が注文を選び、基本的な判断を行い、それをキューを介して第二波のサービスに渡し、そのサービスが基本的にそれをバケットに入れて他の判断に回します。
[8:20] ここで見えるのは、サービスがどれほど速くスケールアップし、トラフィックを拾い上げているかです。ありがとう。最終的に、全体のスループットは約34秒になります。これは、私が他の環境で行った他の投稿をフォローするなら、かなり立派なものです。ですから結局のところ、それはただの物理学です。通常のデプロイメントの代わりにWebAssemblyアーティファクトを使ったspinアプリを使うことで、このようなNode.js Expressアプリの場合、サイズを400メガからほぼ2メガに削減できます。
[8:57] したがって、さらにロジックを追加しても、そのサイズは劇的に増加しません。そして、それによってスケールが速く上がり、また速く下がることも可能になり、その結果、わずかな重なりを持つ同じリソースを、処理の第二波、第三波、第四波、あるいはどの波であっても、すでに再利用できるようになります。つまり、そのようなプロセス内で同じリソースを複数回使用できるのです。
[9:29] そしてそれは、私たちがすでに知っているすべてのツール、すべての環境を依然として適用しながらです。ええ。繰り返しますが、結論として、より小さなパッケージサイズにより、同じリソースにより多くのサービスを詰め込むことができ、あるいは逆に、同じ量のサービスを処理するためにより安価なリソースを使用できます。より速くスケールアップおよびダウンでき、同じリソースの再利用度が高まります。
[10:02] 私たちが知っているツールを保ちながら。ここでも数字で言うと、x86からARMに切り替えるだけで、60%で削減でき、そのため60%安価なリソースを使用できました。そしてそれをもって、同じ髪色の兄弟であるラルフに引き継ぎたいと思います。ありがとう。今ご覧になり、カイから聞いたことは、GoとRustの両方のオープンソースプロジェクトの集合体と、明らかにCNCF、そしてBytecode Alliance Foundationというオープンソース財団が世界中で協力した結果です。そして、この種のイノベーションを実際に可能にしている、おそらく皆さんがよくご存じの重要なプロジェクトのいくつかを強調したいと思います。
[10:55] まず第一にKubernetesです。WebAssemblyと言うと、どこかKubernetesの話ではないように考えがちですが、そうではありません。Kubernetesというプラットフォームの成熟性と安定性があるからこそ、その内部や周辺で革新を続けられるのです。例えば、CNCFのContainer Dプロジェクトには多くの異なるシムがあり、さまざまな種類のワークロードをKubernetesに統合できます。Microsoftは、RustベースのContainer Dプロジェクトを生み出したことを非常に誇りに思っています。これにより、失礼、コールドランが可能になり、Fermion、Docker、Second Stateなど多くの人々とともに貢献者がこのプロジェクトを使って、現在クラスタで使用しているコンテナに影響を与えることなく、Kubernetesにさらなる柔軟性とスケーリングの俊敏性をもたらすことができます。そしてZEISSも、すでに多くの人々が行っていることと変わりません。
[11:56] さて、RunWazi上に構築されているため、spin用のWebAssemblyコンテナDSHIMにより、Kubernetesはご覧いただいたように非常に迅速にスケールアップおよびスケールダウンできるだけでなく、WebAssemblyのワークロードをあるオペレーティングシステムから別のオペレーティングシステムへ、またあるCPUから別のCPUへ、マルチアーキビルドなしでオンザフライで移動できます。また、WebAssemblyワークロードを同じポッド内でコンテナとして実行できるため、現在使用しているコンテナワークロードを引き続き使用できます。最後に、ここに掲げたオペレーターフレームワークについて言及したいと思います。
[12:30] そしてLiquid ReplyのKWASMです。このオペレーターはSpinShimを簡単にインストールするために使用されます。それがKaiとZeissが新しいクラスタを必要とせずに使用したものです。何かを新たにブートストラップする必要はありません。そして、私たちが行ったすべてのことの背後にはコミュニティがあります。しかし、ほとんどの人は個々のツールを探すことを本当は好みません。皆さんの多くが細部を掘り下げたいと思っていることは知っていますし、それらはプロジェクトなので可能です。
[13:02] そうですよね?しかし、ほとんどの人は単一のツールスタックを使いたいのです。それらをすべて見つけて正しい順序に並べ、それぞれを設定したいとは思いません。そこで、Zeissや他の人々のフィードバックをもとに... Fermion、Microsoft、SUSE、Liquid Replyは、先ほどスライドでご覧いただいたSpinCubeの創設を誇らしく発表します。これはオープンソースのスタックで、コンテナのワークロードとともにKubernetes上でWebAssemblyワークロードを開発、デプロイ、運用する体験を合理化するために使用できます。SpinCubeにはランタイムクラスマネージャーが含まれており、ここで使用しているRunWaziベースのシムのようなコンテナDシムのワークロードのインストール、アップグレード、アンインストールを処理します。
[13:44] そしてそれらを実行するために、実際に一連のシムがあります。SpinCubeでは、RunWaziベースのシムを使用しています。ええと、spin用のシム、spinプロジェクトです。そしてそれらのワークロードを最適化し、Zeissが行っていたように、密度とスケーリングの俊敏性を調整するために、spinオペレーターを使用します。そして、この非常に充実したKubernetesツールのスタックが一体となって、ここにいる皆さんと世界中の人々が、どこにいてもKubernetesワークロードを最大限に活用できるようにします。ぜひSpin Cubeを試してみてください。
[14:16] その最善の方法は、QRコードをスキャンしていただくことです。そしてご意見をお聞かせください。プロジェクトのリポジトリに参加してフィードバックをお寄せいただき、参加して、すでにそうである以上にさらに良くするのを手伝ってください。さて、Michelleにもう一度ここに来てもらいたいと思います。ありがとう。ありがとう。そして本日、SpinCubeをCNCFに寄贈するための申請を提出したことを発表したいと思います。クラウドネイティブコミュニティの多くの人々が、ここ数年にわたりWebAssemblyに非常に興奮してきました。
[15:00] 多くの人々が集まり、多くのプロジェクトが協力して、この技術を私たちのエコシステムでより利用しやすいものにしています。そして、WebAssemblyの力を私たちの分野でさらに利用しやすく活用しやすくするこの取り組みに、皆さんも参加してくださることを願っています。さらに詳しく知りたい方は、MicrosoftのブースとFermionのブースにいます。そして本日後ほど、2.30のS3、SO6で講演があります。どうもありがとうございました。
英語の原文字幕を見る
[0:00] So I've recently gotten into boxing. I don't actually box. I mostly just watch from the comfort of my couch. And in boxing, there are weight classes like heavyweight, middleweight, lightweight, and so on. And it's exactly how it sounds. A boxer must meet a certain weight to box within a class. And these weight classes, Remind me of the clouds of the waves of cloud computing.
[0:35] Thank you. So first up, you've got your virtual machines. This is your heavyweight class. Being in the heavyweight class in boxing means you are powerful. But if you get knocked down, it's going to take some time for you to get back up. That's basic physics, right? Virtual machines are the OG heavyweight runtime for the Cloud. Often, they take minutes to start, But they contain an entire operating system from kernel to applications, so you can do a lot with them.
[1:10] A container is lighter and smaller. And in the world of Cloud Computing, this would be your middleweight class. Middleweight strikes a balance between speed and power. containers have given us the perfect environment for running a single long-running server. They take seconds, not minutes, to start, and consume fewer resources than virtual machines. Now, add to that WebAssembly, the third wave of Cloud computing. This is your lightweight class. Speed and agility is the name of the game here. Compile your app once directly to the WebAssembly binary format, and use that same binary across multiple architectures and operating systems with no changes.
[2:01] And a WebAssembly app can be cold started in about half a millisecond. half a millisecond, making it vastly faster than even-- making its startup speed vastly faster than even containers. So how do we run WebAssembly on Kubernetes and in cloud-native environments? I'm going to talk to you about Spin Cube today, which is a project that helps you do just that.
[2:36] So this is a SpinApp custom resource in Kubernetes. Online 6 is a reference to an OCI artifact containing... A WebAssembly binary. Yeah, that's a thing you can do. Behind this SpinApp custom resource lives a spin operator. Once I apply my spin app to my cluster, we're going to see it running in our cluster here.
[3:11] The spin app, the spin operator will actually pick it up and deploy the corresponding deployment pod and service. It's configuring the pod to use a Wasm runtime instead of a container runtime to execute our app. So on the outside, you still have your pods and services, same as usual, but on the inside, they're actually WebAssembly apps, not containers. This is that same app. We're going to increase the replica account to 50, and apply it to our cluster.
[3:43] I'm running on a two node AKS cluster here. And if I check out my pods, they're being distributed, look closely on my two nodes. One is an x86 node and the other is Ampere's ARM64 base node. Thank you. And if I want to scale even further, then I can just throw that same binary on Any burstable incense, that's cheap for me at that time. Thank you. These are the kinds of things that have been important to the team over at Zeiss Group.
[4:18] And I'd like to invite Kai now to talk to us about their experience in this space. Thank you, Kai. Merci, Michel. So coming from size, I can relate to physics. As the ARC in our logo suggests, we handle with spheres, lenses, optics. From microscopes up to this bulk cube like looking clunks of metal, which are high NA lithocatheter systems, which you basically need to produce your beloved Apple silicon or NVIDIA GPUs. These are the only optic devices on the whole planet which can do that.
[4:58] So my R&D experts, they always try to explain this kind of optics to me, but there's no help there, so I can only grasp the basics of it. But what I understand is how to operate such business models on information technology. Many of our business models require that we process the information electronically, be it just for the pure scale of information we have to process or the product specifications which are attached.
[5:34] Oh. So in the beginning, money is not the issue when we start such projects. We The project risks are high, the commitments are made, And we basically recouponated the hell out of that case. Even rubbed some CNCF goodness on it like DAP or KEDA, whatever. As soon as the dust and the business settles, our finance folks catch up with us, which then requires us to basically go into more design for cost approach.
[6:06] Secondly, Often in the beginning, we are capable to have the luxury of designing those services Within bounded contexts, applying domain-driven design So really doing nice systems. Further down the road, often logistic aspects kick in, like container runtime sizes, number of parts limitations, whatever. And soon we are forced to give in basically that the technical granularity of what we run diverges from the semantic granularity. And this is one of the points why we started looking into WebAssembly in the cloud, basically to get those two closer together, the semantic and technical granularity.
[6:58] For that, we generalize one of our many flows, which reflects how we usually do that processing. That means we get a number of messages or orders dropped at our doorstep, and then the expectation is that these messages, they are processed in a given time. answering, okay, when, how we produce or deliver that thing. And this is exactly what we measure. from the arrival of the orders to until they are landing in some buckets.
[7:30] Now let's see that in action. Bye. So what we see here are these three spin apps which had handled the load and their respective deployments. So you see quite regular Kubernetes primitives. Let's generate some load. You see the basic shape of replicas. The load picks up. The first set of replicas already takes in the first chunk of orders. And as soon as the environment is scaling up, the number of orders that can be processed in the same time slice increases dramatically. First, some distributor functions picks the orders, does some basic decisions, and then hands it over over queues to a second wave of services, which basically put it in buckets to some other decisions.
[8:20] What we can see here is how fast the services are scaling up and picking up the traffic. Thank you. In the end, the whole throughput will be around 34 seconds, which if you follow other posts I did with other environments, is pretty darn good. So in the end it's just physics. By using a spin app with WebAssembly artifact instead of a regular deployment, we can for such a Node.js Express app, we can reduce the size from 400 megs to almost 2 megs.
[8:57] So even if we would add more logic, that size will not dramatically increase. And that allows that the... that the scale goes up fast and scales down also as fast, which then on the other hand allows that the same resources with a slight overlap can be reused already by the second or third or fourth wave, whatever wave of processing you have. So we can use the same resources multiple times within such a process.
[9:29] And that's by still applying all the tools, all the environments we already know. Yeah. Again, to conclude, The smaller packaging size allows that we pack more services into the same resources or on the other hand use cheaper resources to process the same posture of services. We can scale up down faster, have a higher grade of reusability of the same resources.
[10:02] while keeping the the the tools we know Here again in numbers, even when switching from just from x86 to ARM, we could reduce with 60%, so we could use 60% cheaper resources for that. And with that, I want to hand over to my brother in hair color, Ralph. Thank you. What you've just seen and heard from Kai is a result of a collection of open source projects in both Go and also Rust and open source foundations, obviously the CNCF and also the Bytecode Alliance Foundation across the entire world in collaboration. And I want to highlight just some of the important projects that you're probably familiar with that actually make this kind of innovation possible.
[10:55] First and foremost is Kubernetes. It's easy to think when we mention WebAssembly that we're somehow not talking about Kubernetes. We are. It's the maturity and the stability of Kubernetes as a platform that allows us to continue innovating in and around it. And for example, the Container D project in the CNCF has many different shims. that allow you to integrate different kinds of workloads into Kubernetes. And Microsoft is very proud of having created the Rust-based Container D project right that allows a cold run was the excuse me and that allows the contributors along with people like Fermion, Docker, Second State, and many others, can use this project to bring even more flexibility and scaling agility to Kubernetes without affecting the containers you're already using in your clusters right now. And ZEISS is no different than what many, many others are already doing.
[11:56] Now, because it's built on RunWazi, the WebAssembly container DSHIM for spin allows Kubernetes to scale up and down very quickly, as you just saw. but also move your WebAssembly, your workloads from one operating system to another and from one CPU to another on the fly and without multi-arch builds. And because they enable WebAssembly workloads to run in the same pod. As containers, you can continue using your workloads, your container workloads that you use right now. Now finally I want to call out, as I put up here, the operator framework.
[12:30] And KWASM from Liquid Reply, that operator is used to install the SpinShim easily. That's what Kai and Zeiss used without requiring a new cluster. You don't have to bootstrap something new. And there's a community behind all of this work, every single thing we've done. So, most people, though, would really prefer not to search for individual tools. I know a bunch of you are curious to dig into the bits, and you can because they're projects.
[13:02] Right? But most people would like to use a single stack of tools. They don't want to find them all together and then line them up the right way and configure each one. So working with the feedback of Zeiss and others... Fermion, Microsoft, SUSE, and Liquid Reply are proud to announce the creation of SpinCube, which you saw the slide before, which is an open source stack that you can use to streamline the experience of developing, deploying, and operating WebAssembly workloads on Kubernetes along with your container ones. Now, SpinCube includes a runtime class manager, which handles the installation upgrade and uninstallation, of the workloads, the container D shims, like RunWazi-based shims that we're using here.
[13:44] And to run them, we actually have a series of shims. In SpinCube, we're using the RunWazi-based Shims. uh, shim for spin, the spin project. And to optimize those workloads, to do what Zeiss was doing, trying to dial in the density and scaling agility, We use the spin operator. And together, this very full stack of Kubernetes tools allows everyone here and around the world to go ahead and get the very best of their Kubernetes workloads wherever they are. We'd love you to give Spin Cube a try.
[14:16] And the best way to do that is go ahead and snap the QR code. and tell us what you think. Jump into the project repos, give us feedback, and join up and help us make it even better than it already is. Now I want to ask Michelle to come back up here for a second. Thank you. Thank you. And today we'd like to announce that we have submitted the application to contribute SpinCube to the CNCF. Many of us in the cloud native community have been so excited over the last several years about WebAssembly.
[15:00] got lots of people and you got lots of projects working together to make this a more accessible technology in our ecosystem. And we hope that you join us in this endeavor of trying to make the power of WebAssembly even more accessible and leverageable in our space. And if you want to learn more, we'll be at the Microsoft booth as well as the Fermion booth. And we have a talk later today at 2.30 in S3, SO6. Thank you so much.
Vidleafワークベンチで開く
トランスクリプトを検索し、行を選択し、タイムスタンプ付きの引用をコピーし、翻訳します。
帰属
「基調講演パネルディスカッション:WebAssemblyでクラウドネイティブアーキテクチャに革命を起こす」CNCF [Cloud Native Computing Foundation](https://www.youtube.com/@cncf)による、CC BY 3.0(https://creativecommons.org/licenses/by/3.0/)の下でライセンスされています。ソース動画:https://www.youtube.com/watch?v=tu8a-GefJL8。このページは、段落区切りとタイムスタンプを追加した動画のテキスト文字起こしです。作成者はVidleafと提携しておらず、Vidleafを推奨するものでもありません。VidleafはAIによる句読点とAI生成の要約を追加しました。元の文言はこのページで引き続き利用可能です。
あなたは制作者または権利者ですか?訂正や削除をリクエストする:copyright@vidleaf.app(これらのページについてを参照)。
最終更新