ZeroVMは何を仮想化しますか?


12

ZeroVMで頭を包むのに少し苦労しています。

Wordpressを実行したいとしましょう。1つのオプションは、VMWare、Virtualbox、Xen、CoreOSなどを実行しているホストされた仮想サーバーをリースすることです。その場合、仮想化されているのはサーバーとそのハードウェアです。仮想サーバーがプロビジョニングされたら、SSHを実行したり、サービスを開始および停止したり、マシンを再起動したりできます。

私がオンラインで読んだものは、ZeroVMがアプリを仮想化すると言っていますが、その意味はわかりません。 ZeroVMはDockerに似たコンテナを提供していますか?

上記の例を続けて、Wordpressを実行するためにZeroVMをどのように使用しますか?それによりどのようなメリットが得られますか?

Wordpressの例を共有ホスティング環境に拡張しましょう。

ZeroVMホームページには次のように書かれています:

ZeroVM App(zapp)への各リクエストにより、独立したインスタンスが生成されます。各インスタンスは分離され、安全で、5ミリ秒未満でスピンアップし、リクエストの終了後に破棄されます。ZeroVMの速度は、各インスタンスが単一のプロセスを実行するために必要なもののみを仮想化することから得られます。

これは、ZeroVMアプリへの各リクエストが新しいプロセスを生成することを意味しますか?サーバーで複数のZeroVMアプリを実行している場合はどうなりますか?リクエストは正しいアプリにどのようにルーティングされますか?

回答:


9

良い質問!私はZeroVMチームで働いており、物事を解決できるよう願っています!

ZeroVMはDockerに似たコンテナーを提供していますか?

いいえ、そうでもありません。DockerはLXCおよびその他のカーネル機能を使用して、サンドボックス環境を提供します。ZeroVMは完全にユーザースペースで実行され、単一のアプリケーションをサンドボックス化します。

簡単に言えば、ZeroVMは、実行するアプリケーションを最初に検証し、次にそれを実行するだけで機能します。実行すると、アプリケーションは基本的に余分なオーバーヘッドなしで実行されます。その背後に仮想マシンはありません。

アプリケーションを検証するには、x86マシンコードの特別な形式にクロスコンパイルする必要があります。この特別な形式には、「安全」であることが静的に検証できるという素晴らしい特性があります。とりわけ、「安全」とは、ZeroVMが提供する特定のメモリセグメント外のアドレスにコードがジャンプしないことを意味します。また、プログラムは通常のシステムコールを呼び出すことはできません。ZeroVMが提供する非常に狭いsyscallインターフェイスのみを呼び出すことができます。この検証は、GoogleのNative Clientプロジェクトから取得されます

ZeroVMを使用してWordpressを実行するにはどうすればよいですか?それによりどのようなメリットが得られますか?

原則として、PHPインタープリターであるCプログラムをクロスコンパイルできます。ZeroVMは、サンドボックスでPHPインタープリターを起動し、WordPressを構成するPHPファイルをフィードします。ZeroVMは読み取り専用のメモリ内ファイルシステムを提供し、これを使用してSQLiteデータベースを読み取ることができます。それはあなたに読み取り専用のWordPressサイトを与えるでしょう-非常にエキサイティングではありません:-)

しかし、私が見るように、これはZerovMの主なユースケースではありません。既存のデータベースが重いアプリケーションは、ZeroVMで使用するために書き直す必要があります。ZeroVMは、多くのデータアイテムを並列処理する、非常にスケーラブルなシステム向けです。

1,000,000件のメールを検索する必要があるとします。メールは、OpenStack SwiftAmazon S3などのブロックストレージに保存されます。これは、物理ファイルがいくつかのストレージサーバーに保存されることを意味します。従来、メールを検索するには、すべてのメールをいくつかの計算ノードに引き渡す必要がありました。ZeroVMとSwiftとの統合により、コードをデータに送信できます。これは、コードがかさばる仮想マシンイメージに比べて小さいため(数メガバイト)、ZeroVMサンドボックスで信頼できないコードを実行しても安全であるため可能です。

そのため、ZeroVMは、各要求が異なるデータで動作する非常にスケーラブルなアーキテクチャを対象としています。

WordPressサイトの場合、これは、各ブログ投稿を別々のデータに保存し、各投稿を担当する専用のZeroVMインスタンスを持つ必要があることを意味します。現在、ファイルシステムは読み取り専用ですが、読み取り/書き込み可能にする計画があり、特定のブログ投稿を担当するZeroVMインスタンスがコメントなどを処理できます。トラフィックを適切にルーティングできるロードバランサーが必要です。結果は、現在のWordPressとは非常に異なるアーキテクチャですが、よりスケーラブルなものです。実際にこれを実装することは、読者の演習として残されています。


4

最先端のようです。RackspaceはLXCを比較して「安全でない」と考えていますが、このトピックに関するホワイトペーパーが掲載されるまで、判断を保留します。

  • ZeroVMはDockerに似たコンテナを提供していますか?

From:Info World「ZeroVMとDockerのようなプロジェクトとの間で明らかな比較が可能ですが、意図は少し異なります。Dockerはさまざまな環境での展開のためのパッケージングです。ZeroVMはアプリを仮想化する方法を提供します完全なVMソリューションが過剰であり、実際には必要ではない特定の環境で、軽量な方法で。」

  • ZeroVMを使用してWordpressを実行するにはどうすればよいですか?

おそらく、AeroacheをZeroVM用にコンパイルする必要があります。このような状況でWordpressのコードベースがどれだけ壊れるかはわかりません。

  • 利点は何ですか?

Rackspaceのマーケティング部門がこれに最適です:ここ

  • どのような課題に直面しますか?(将来の読者のために追加)

ソフトウェア/プラットフォームは最先端であるため、最先端ソフトウェアの実行に関連するすべての試行と困難が適用されます。(サポートのための大規模なユーザーベースの不足を含む)。また、新しい「プラットフォーム」でもあります。ソフトウェア開発者は、仮想化プラットフォームに対処することに慣れています... 。ゲームの初期段階で期待どおりに機能するものがなくても驚かないでください。


2

上記の例を続けると、ZeroVMを使用してWordpressを実行するにはどうすればよいですか?これによりどのようなメリットが得られますか?

ZeroVMは基本的にPaaSを構築するためのプラットフォームです。したがって、上記の質問は「ZeroVMの世界」ではほとんど意味がありません。しかし、誰かがZeroVMインフラストラクチャをインストールしていると仮定しましょう(「プロバイダー」と呼びます)。次に、そのインフラストラクチャ上に独自のPaaSまたはSaaSを作成できます。WordPress:Providerの場合、プロバイダーのインフラストラクチャ上で任意のコードを実行できます。コードの実行中にWordPressを実行できます。コードが実行されていないとき-あなたは支払いません。すなわち、誰かがワードプレスのページを開くと、ユーザーに応答が送信された後、リクエストに対して支払うことになります-支払いを停止します。それ以上に、各ZeroVMインスタンスは1つの要求を処理するため、WordPressサイトは基本的に1ページを1ユーザーに処理するだけで済みます。そして、WordPressは現在MySQLデータベースへのPHPインターフェースであるため、「WordPress」は実際には必要ないと主張します。1人のユーザーと1つのリクエストの場合、集中型データベースは不要です。等々。

これは、ZeroVMアプリへの各リクエストが新しいプロセスを生成することを意味しますか?

はいといいえ。どのように使用するかによって異なります。各リクエストがまったく異なるコードベースを持つまったく異なるアプリである場合-はい、まったく新しいプロセスが必要になります。ただし、各リクエストがPHPまたはWSGI Webアプリの呼び出しである場合、ZeroVMはプラットフォームのセットアップ時間を節約することで、リクエストをより速く処理する「デーモン」として動作できます(WSGIアプリの場合、ファイルシステム+ python + wsgi )。

リクエストは正しいアプリにどのようにルーティングされますか?

現在、インフラストラクチャはSwiftオブジェクトストアに統合されています。Swiftオブジェクトのリクエストは、特定のコードの実行をトリガーします。または、特定のURLへのPOSTは、POST要求ペイロードの実行をトリガーします。もちろん、Webサーバーや分散キューなど、他の種類の統合も可能です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.