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 社

推薦する

SEOは成果を生む必要があります

端午の節句が近づいており、多くの友人がすでにこの素晴らしい休日を楽しむ準備をしていると思います。それ...

gigsgigscloud: 米国 VPS、トリプルネットワーク CN2 GIA、月額 4.99 ドル、500g トラフィック、500Mbps 帯域幅

gigsgigscloud の CLOUDLET V シリーズ VPS (米国西海岸ロサンゼルス、ト...

企業はどのようにしてクラウド移行のコストを効果的に削減できるでしょうか?

[51CTO.com からのオリジナル記事] 今日、クラウド コンピューティングは企業にとってトレン...

北京に登録された大手オンラインストアは商標認可を推進する

北京ニュース(記者:廖愛玲、インターン:葛南南)今後、北京に登録された大手オンラインストアは商標許諾...

あらゆる職業にインターネットセレブが存在します!

どの業界にもネットセレブは存在します。一般の人々がインターネットを通じてネットセレブになりたいと望む...

bluevm-2g メモリ KVM/4 コア/40g ハードディスク/月間トラフィック 4T/月額 10 ドル

bluevmさん、512MメモリのKVMを年間25ドルで手に入れようとみんなが殺到したようですが、ま...

ウェブサイト分析: 60 秒間滞在するとコンバージョンの機会が増える

最近、いくつかのデータを調べて、さまざまな業界の Web サイトを比較しました。ほとんどの Web ...

王通:ネガティブリスクコミットメントの性質と応用スキルについて

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス10年以上前、私が初めて...

Baidu ウェイトが存在しない場合、SEO 最適化では何をすべきでしょうか?

今月19日以来、Baiduは多くのSEO担当者からの度重なる質問から正式に回復しました。「Baidu...

2018年成豊会議石家荘駅は中小企業のインテリジェントマーケティングを支援します

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています8月3日、...

ウェブマスター向け情報サイトが復活しつつあるが、草の根ウェブマスターは持ちこたえなければならない

ウェブマスター業界の台頭に伴い、その派生品も多くの草の根ウェブマスターに歓迎されてきました。SEOト...

非常に詳細なウェブサイト外部リンク構築SEO体験の概要

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています外部リンク...

心理的な戦術を通じてターゲット消費者を獲得する方法を説明します

今日、もっと効果的なマーケティングの方法があるかと聞かれたら、私は、ターゲットとなる消費者の心理に立...

情熱に集中し、他の人から学び、この分野の専門家になりましょう

2008 年、Microsoft Search Engine (Bing) のブログは、Web マス...