Wasm 気候が到来しました!

Wasm 気候が到来しました!

著者 |ピーター・ヴェテレ

翻訳者 |崔英鋒

サーバー上でもエッジ上でも、Wasm を使用すると、これまでよりもデータに近いカスタム ロジックを作成できます。これを安全かつ効率的に、そしてより柔軟に行うことができます。

Wasm は最も重要な新興テクノロジーの 1 つであり、聞いたことがあるかどうかにかかわらず、それが重要であることに疑いの余地はありません。

Wasm は WebAssembly 言語の略称で、Web 向けに開発されています。しかし、Wasm テクノロジーは Web ブラウザーを超えて拡張されました。現在、一部の組織ではサーバー側で Wasm を実行し始めています。たとえば、私の会社 SingleStore では、データベースでこれを使用しています。

Wasm がコンテナ技術と JavaScript の普及に取って代わると考える人もいます。

信じられないかもしれませんが、Wasm はクラウド コンピューティングに影響を与えています。なぜ、どのように影響するのでしょうか?一つずつ説明させてください。

クロスプラットフォーム: クラウドコンポーネントをより安全に、より簡単に組み合わせる

人々はソフトウェアを書くためにさまざまな言語を使用します。これらの言語を相互運用することは困難です。 Wasm は、任意の言語で記述できるフレームワークを提供します。これを使用して、共通のシミュレーション マシン形式が作成されました。

この形式により、さまざまな言語 (Rust、C/C++、Go など) で記述されたコンポーネントが相互に通信できるようになります。 Wasm は、モジュールがどのように生成されたかを知ったり気にしたりすることなく、データベースなどのサーバー側システムにさまざまな言語のコンポーネントを埋め込む機能も提供します。

Wasm を汎用プラグイン形式として考えてください。システムの機能を強化するために、サードパーティによって開発されたコンポーネントを使用したいとします。 Wasm を使用すると、アドオンの統合に通常伴うリスクなしに、システムに新しいコンポーネントを導入できます。たとえば、外部コンポーネントによってシステムがクラッシュしたり、予期しない誤動作が発生したりする可能性があります。 Wasm は、さまざまなシステムやコンポーネントが相互にやり取りするための非常に安全なフレームワークを作成することで、これらの問題を軽減します。

クラウドは Wasm の拡大の重要な原動力です。 Wasm は仮想化されており、Wasm ランタイムをサポートするあらゆる環境で動作するため、クラウドに最適です。さらに、クラウド システムは、さまざまな方法で組み合わせられ接続された多数のサービスから構成されることがよくあります。複雑になる可能性があります。ただし、クラウド環境を簡素化すればするほど、クラウド システムのすべての側面が正しく連携しやすくなります。

セキュリティ: コードの実行方法と関数の表現方法によってリスクを軽減します

ほとんどの言語ランタイムでは、関数にはアドレスがあります。これらのアドレスはメモリ内の実行可能ポイントです。メモリを単なるバイトの集まりとして考えると、関数アドレスがどこにあり、通常のバイトがどこにあるのかを区別する方法がありません。これにより、誰かが関数のエントリ ポイントを見つけてコードを挿入したり、特権モードで関数を呼び出して関数が実行すべきでない操作を実行したりできるようになります。 Wasm はこれらの問題を解消するように設計されています。

Wasm は、悪用できない方法で関数を表現します。また、サンドボックス内でコードを実行するため、信頼できないコードの実行に関連する一般的なセキュリティ問題が軽減されます。 Wasm はプログラム メモリを安全なエンクレーブ内にカプセル化するため、その領域を超えてプログラムを実行しているホストに影響を与えたり、セキュリティを侵害したりする可能性のあるものにアクセスすることはできません。

Wasm の機能ベースのセキュリティ モデルにより、ホストは Wasm プログラムが実行できる特権操作の種類を完全に制御できます。たとえば、ファイル アクセスが必要な場合、ホストはディレクトリへのアクセスを明示的に許可する必要があります。

スピード: 不要なものを排除してスピードと効率を高める

明らかに、Wasm は、物事をより安全かつ簡単な方法でまとめるために人々が使用している最初のテクノロジーではありません。ただし、Wasm は他のテクノロジーよりもはるかに高速です。

コンパイラは、LLVM バックエンドを活用して LLVM 中間表現にコンパイルすることで Wasm プログラムを生成できます。 LLVM (Low Level Virtual Machine の略) は、多くの言語のコンパイル バックグラウンドとして使用できます。このアプローチと、LLVM プロジェクトをめぐる長年のコミュニティの努力のおかげで、Wasm プログラムを高度に最適化されたマシン コードにコンパイルできるようになりました。

SingleStore では、Wasm のスピードと軽さを紹介するために、データベース内の仮想リアルタイム宇宙である「Wasm Space Program」を作成しました。このシミュレーションでは、宇宙船はさまざまな戦略を使用してエネルギーを充電し、広大なリアルタイムの「宇宙」で他の宇宙船と戦います。これには大量のデータが関係しており、システムには 100 万隻以上の船舶があり、1 秒あたり約 300 万件のデータベース更新が行われています。

従来、このデータを統合して中間層に組み立てるには、大量のデータを中間層に抽出する必要がありました。これにより大きな遅延が発生する可能性があり、リアルタイムの応答を実現するには高度なキャッシュが必要になります。 Wasm Space Program はこのアプローチを採用せず、代わりに各宇宙船の戦略を Wasm で記述し、それを UDF としてデータベースにロードします。毎秒、各宇宙船の戦略関数が呼び出され、次の動きが決定されます。

フロントエンド (ブラウザで実行される JavaScript プログラム) には、これらのポリシーを理解するロジックはなく、宇宙の状態に関する情報もありません。その役割は、単にデータベースに直接 SQL クエリを発行し、返された情報をグラフィカルに表示することです。データベースはすべての状態情報を保持し、Wasm ではデータのすぐ隣で計算を実行できるため、計算速度が大幅に向上します。中間層も必要ありません。

しかし、Wasm は楽しいことばかりではありません。これを使用して、他の無数のアプリケーションやユースケースを解決できます。たとえば、Wasm を使用して感情分析を実行できます。感情分析に必要な複雑なロジックは、データベース SQL 言語では簡単に表現できません。そのため、これを実行するには、通常、より複雑な言語でアルゴリズムを実装し、すべてのデータをダウンロードしてアルゴリズムに入力する必要があります。次に、感情分析の評価をデータベースに戻す必要があります。つまり、使用するデータベース内のすべての行でラウンドトリップが必要になります。データが何百万行もある場合、トラフィック量は膨大になります。ただし、SingleStore が Wasm を統合する方法では、アルゴリズムがすでにデータベース内にあるため、そのオーバーヘッドは発生しません。

機能: 標準を作成することで、より強力になります

Wasm はすでに非常に優れています。そして、新しいテクノロジーと新しい標準の登場により、Wasm はさらに強力になります。

たとえば、W3C WebAssembly コミュニティ グループは、Bytecode Alliance などの組織のメンバーの協力を得て、現在 WebAssembly System Interface (WASI) の標準化に取り組んでいます。 WASI は、Wasm モジュールがサーバー上で実行されるときに使用できる API とサービスの標準セットを提供します。ガベージ コレクション、ネットワーク I/O、スレッドなど、多くの標準提案がまだ進行中であるため、他のプログラミング言語で行うすべてのことを必ずしも Wasm にマッピングする必要はありません。最終的に、WASI はこの目標を達成するための完全な標準を提供するからです。多くの点で、WASI の目標は POSIX の目標と似ています。

Wasm は現在、他の Wasm モジュールとリンクしたり通信したりする機能には対応していません。しかし、Wasm コミュニティは、コンピューティング業界のメンバーの支援を受けて、コンポーネント モデルと呼ばれるものの作成に取り組んでいます。 Wasm モジュールの周囲に動的にリンクされたインフラストラクチャを作成し、コンポーネントの起動方法と相互通信方法を定義することを目的としています (従来のオペレーティング システムのプロセス モデルと同様)。

さらに、WIT (WebAssembly Interface Types) と呼ばれる新しい標準 IDL 構文により、言語に依存しない方法で Wasm インターフェースを記述できるようになります。したがって、バインディング ジェネレーターは IDL の内容を取得して、Wasm ホストとクライアントが共通の方法でデータを通信できるようにするコードをコンパイルできるようになります。

将来: 物事をより速く、より安全に、より効率的にまとめる方法を提供する

Wasm はより軽量ではありますが、おそらくすぐにはコンテナに取って代わることはないでしょう。ただし、将来的には Wasm が多くのソフトウェアに組み込まれることが予想されます。

サーバー上でもエッジ上でも、Wasm を使用すると、これまでよりもデータに近いカスタム ロジックを作成でき、これを安全かつ効率的に、より柔軟に行うことができます。

SingleStore を使用すると、既存のプログラムを Wasm にコンパイルし、データベースにプッシュして、そこで実行できるようになりました。つまり、そのコードを書き直してデータから離れた場所に置く必要はおそらくありません。 Wasm テクノロジーを使用すると、両方の長所を活かすことができます。

元のリンク:

https://www.infoworld.com/article/3678208/why-wasm-is-the-future-of-cloud-computing.html

翻訳者について

51CTO コミュニティ エディターの Cui Yingfeng 氏は、1970 年代生まれで 10 年以上の職務経験を持つプログラマーです。長年にわたり、Java 開発、アーキテクチャ設計、コンテナ化などの関連業務に従事。

<<:  ガートナーは、パブリッククラウドに対する世界のエンドユーザーの支出が2023年に約6,000億ドルに達すると予測している。

>>:  年末レビュー: 2022 年に最も注目される DevOps スタートアップ 10 社

推薦する

Ramnode は少なくとも 3 つの無料 IP を取得できることをご存知ですか?

Ramnode では最近、最大 58% オフの割引コード [おすすめ: Ramnode - 4 月は...

SEO を SEO のために行っていますか、それともウェブサイトのランキングのために行っていますか?

これら2つの文は似たような意味を持っているようです。ただし、ここでは 2 つの側面が関係しています。...

高度な SEO 戦略: 目に見えない太極拳

ここ数日、ブログ記事を書いていません。多くのSEO担当者や最適化担当者がKステーションの問題について...

2020年のクラウドコンピューティングの展望: マルチクラウド管理がさらに高レベルへ

過去 1 年間、ハイブリッド クラウドとマルチ クラウドが話題となってきました。サービスを提供するた...

HP、新しいZシリーズワークステーションを発売

米国カリフォルニア州パロアルト、2009 年 3 月 30 日 – HP は本日、新しい HP Z ...

Ceph オブジェクト ストレージに基づく階層型ハイブリッド クラウド ストレージ ソリューション

パブリッククラウドストレージサービスは簡単に拡張できます。ユーザーは、ストレージ容量のニーズに応じて...

プレビュー: Hostgator - ホスティング/ドメイン名が 50% オフ、たったの 4 ドル

3 月 25 日の正午から 24 時間、新規購入に限り、仮想ホストが 50% 割引になります。ホスト...

百度のアルゴリズムアップグレードは不正サイトの掲載や低品質サイトのランキングに影響を与える

6月末に不正行為防止アルゴリズムを更新して以来、良い結果が得られています。検索結果の一部の低品質コン...

ダンサーが外部リンクの秘密とヒントを共有

外部リンクを投稿するのはいつも面倒です。 Fengjie にはインターネットを征服する武器があり、S...

オグルヴィのブランドマーケティングモデルと戦略

今回は、定番の4Aブランドの中から、オグルヴィのブランドマーケティングツール、3つの定番モデルと1つ...

ウェブサイトが格下げされた理由は、外部リンクの大量投稿に関連している可能性がある。

Baidu は外部リンク、バックリンク、リンクの不正行為を繰り返し取り締まってきたため、最近多くのウ...

香港のVPSを推奨、Alipay支払いも受け付けます

香港 VPS: 速度が速く、中国本土からのアクセス速度が超高速で、登録の必要がないため、登録の手間が...

ゲームメタバースの開発動向の分析

ブロックチェーンやXRなどの分野における技術の急速な発展に伴い、メタバースは概念から現実へと徐々に実...

簡単な議論: WeChat でお金を稼ぐときに最初に考慮すべきことは何ですか?

最近、WeChatでお金を稼ぐ方法や、フォロワーを増やす経験を共有する記事、WeChatをうまく操作...