分散モノリスとWebAssemblyランタイムを用いた新しいアプリプラットフォーム「Wasmer Edge」登場。オーケストレーションもサービスメッシュも不要

2023年6月19日

WebAssemblyランタイム「Wasmer」の開発元であるWasmer社は、エッジロケーション上のデータセンターにWebAssemblyランタイムを展開し、分散モノリスなアーキテクチャを用いたサーバレス型の新しいアプリケーションプラットフォーム「Wasmer Edge」を発表しました

上記のツイートに示されているように、Wasmer Edgeは「The Cloud is dead,」(クラウドは死んだ)と従来のクラウドを否定した上で、高いスケーラビリティを備えつつ、Herokuのように簡単にデプロイできて、安価に利用できることが特長だと説明されています。

どのような仕組みなのか、見ていきましょう。

分散モノリスによるシンプルなデプロイとスケーラビリティ

Wasmer Edgeの発表を行ったブログ「The Cloud is dead, long live the Cloud! Announcing Wasmer Edge」では、今のクラウドはアプリケーションのデプロイに、KuberenetesのようなオーケストレーションやIstioのようなサービスメッシュ、プロキシ、サービスディスカバリなどを考慮する必要があり、あまりに複雑で、しかもこうした仕組みを持つ大手クラウドにロックインされてしまっており、それが高額な費用に転嫁されていると指摘します。

この複雑さを解決するためにWasmer Edgeが採用したのが分散モノリスなシステムです

現状のクラウドネイティブなアプリケーションでは、それぞれ異なる機能を備えた複数のサービスが連携して1つのアプリケーションを構成するという分散システムの考え方が主流です。

しかし分散モノリスでは、1つのノードが単独のアプリケーションとなり、そこに必要な機能がすべて含まれています。その上でノード数が負荷によって増減することでスケーラビリティを実現するわけです。

これにより基本的に負荷に対するノードの増減だけを気にすれば良くなるため、オーケストレーションやサービスメッシュなどを不要にしたシンプルなデプロイを実現しています。

さらにWasmer Edgeはその名前の通り分散したエッジロケーション上の複数のデータセンターで構成されていますが、全体はWasmer Runtimeのレイヤで実装されたオーバーレイのメッシュネットワークで構成されており、それを支えるのが分散ネットワークのDNETだと説明されています。

これにより分散したエッジロケーション全体が、論理的には1つの分散モノリス基盤になっています。

POSIX対応のWebAssemblyランタイムによるアプリケーション基盤

分散モノリスを支えているもう1つの基盤が、Wasmerが提唱した、WebAssemblyでファイルやネットワーク、メモリなどのシステムリソースを抽象化する業界標準のAPI仕様である「WASI」(WebAssembly System Interface)を拡張してPOSIX対応にした「WASIX」です。

WASIXでは、POSIXで定義されているスレッドやソケット、フォークなどの多くの機能をWebAssemblyアプリケーションから利用できるため、Rust言語などWebAssemblyに対応した言語で、Linuxアプリケーションを開発するのと同じようにフル機能のアプリケーションを記述し、WebAssemblyにコンパイル可能です。

参考:WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表

POSIX準拠のおかげで、Linuxなどの既存の知識を用いて、WebAssemblyでモノリスなアプリケーションを容易に開発できます。これをWASIX対応のWebAssemblyランタイム、現時点ではWasmer Runtimeにデプロイすれば、そのまま実行可能なシンプルなアプリケーションランタイムが実現します。

Wasmer Edge上のWasmer Runtimeにデプロイすれば、前述のようにそのままスケーラブルな分散モノリスが実現することになります。

しかもWebAssemblyは最初から堅牢なサンドボックスの仕組みを備えた軽量な仮想マシンの仕組みを備えているため、従来使われていたハイパーバイザやコンテナなどのレイヤが不要となります。すると、これらのレイヤで発生していたオーバーヘッドもすべてなくなります。

Persistent volumesやPrivate Networkなども

今後の機能としてデータを保存するPersistent volumes、セキュアなプライベートネットワークを実現するPrivate Network、負荷がないときでもノードを0にせずに設定されたインスタンス数を維持するPersistent workloads、定期実行などを実現するScheduled tasks/cronjobsなどの機能提供が予定されています。

現時点でWasmer Edgeはアルファ版としてまだ開発途上であり、利用にはウェイトリストへの登録が必要です

あわせて読みたい

WebAssembly クラウド サーバレス Wasmer




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本