Hippo で WebAssembly を始める

Hippo で WebAssembly を始める

導入

WebAssembly は、Microsoft のクラウド ネイティブ コンピューティング チーム (子会社のDeis LabsAzure の両方) が非常に興味を持っている、非常に有望な新しいテクノロジです。新しいWebAssemblyツールが急速に登場しているため、それらを試すことができる環境が必要です。

だからこそ、 Deis Labs新しい Hippo WebAssembly プラットフォームのリリースは非常に重要です。 Deisの多くのツールと同様に、これは、ブラウザでホストされるか、 WebAssembly System Interface (WASI)を使用してスタンドアロンで、 WebAssembly (WASM)コードをすばやくインストール、管理、実行する方法です。組み込みチャネルをGitサーバーと組み合わせて使用​​すると、1 つの環境で異なるバージョンを作成してデプロイし、運用、ステージング、開発ビルドを分離できますが、必要な Hippo サーバーは 1 つだけです。

Hippoでは複数のアプリケーションをホストできますWebAssembly は、デフォルトでサンドボックス化されており、ホスト システムまたは外部デバイスにアクセスするには明示的な権限が必要であることを意味します。コードも移植可能です。 WebAssembly用にコンパイルされるとWindows Linux macOS Intel RISC-V ARMなど、どのWebAssemblyシステムでも実行できます Hippo は、一度ビルドして一度テストすれば、どこでもコードを実行できる方法を提供します。

開発用PCにHippoを設定する

Hippoのようなツールはクラウドネイティブ操作に適していますが、現在の開発者リリースはデスクトップ システムでのみテストされています。私は、最新バージョンのWSL2を実行し UbuntuをホストしているWindows PCで試してみることにしました。 Deis は、macOS および Linux システムの詳細とともに、 Hippo をローカルで実行するための手順を提供しています

WSL2 Ubuntu 20.04 LTSシステムHippoを実行するための前提条件を取得する際にいくつか問題がありますまず、 WAGI (WebAssembly Application Gateway Interface) をインストールする必要があります。これは簡単にインストールできます。GitHub リポジトリにホストされているダウンロード可能なtar ファイルにバイナリが含まれていますダウンロードして解凍し、ユーザーのバイナリ ディレクトリに移動すると、簡単に実行できます。 Deisツールを再コンパイルする必要がある場合に必要になる可能性があるため、この機会にRustをインストールしました

この手順は、 ビルド必須ツール パッケージのコピーが必要になるため、 WSL2ではおそらく最も困難です。 Ubuntu 20.04 には正しい依存関係セットがないため、特定の重要なライブラリを適切なバージョンにダウングレードできる代替パッケージ インストーラーが必要です。 Stack Overflow の回答で、 aptitude を紹介されました。これは apt の代替であり、インストールに適切な依存関係を選択して、2 つの低レベル C ライブラリを置き換えることができます。最後に、インストール スクリプトを使用してbuild-essentialをインストールし Rust準備ができました

バインディングとは何ですか?

Hippo インストールの一部として Rust をインストールする主な理由は DeisWebAssemblyバンドラーである Bindleのためです Bindle は、「集約オブジェクト ストレージ」システムとして説明されています。そのドキュメントでは、「 バインダーはデジタルの銀色の引き出しである」という比喩が使われています私たちは皆、銀食器の引き出しの中にいくつかの異なるアイテムを入れているかもしれませんが、引き出しを使って銀食器を分類し、保管しています。 Bindle は、最新のアプリケーションを構成する成果物に対してほぼ同じことを行いますが、アプリケーションがどのように、どこで、どのように使用されるかに基づいて、アプリケーションがどのように組み立てられるかについての理解レベルも提供します。

推奨ホワイトペーパー

Raspberry Piなどのリソースが制限されたエッジ ホストや、パブリック クラウドの中核にある高性能サーバー上のスパース インストールに必要な要素を含むアプリケーションのBindle記述を作成できます。アプリケーション ホスト内のBindleクライアントは、要素と依存関係を取得し、適切にデプロイできます。その結果、リポジトリとインテリジェントな記述を使用して複数のビルドを回避し、適切なコードを適切な環境に配信する、アプリケーション中心のデプロイメント モデルが実現します。

Bindleをインストールしたら、それを実行して、Hippo が使用するデフォルト設定でローカル Bindle サーバーをセットアップできます。次に、 Microsoft が提供する WSL の手順に従ってNode.jsをインストールしました。これには、 curlを使用してnvmをダウンロードし、それを実行して、 node.js最新かつ長期サポートバージョンをインストールする必要があります。 Ubuntu の手順を使用してノードをインストールしないでくださいインストールにはsnapを使用しますが、 snap はWSL2では十分にサポートされていません

HippoでホストされるRust WebAssemblyアプリケーションには、 Rustwasm32-wasiサポートと、 yo-wasm Yeomanアプリケーション スキャフォールディング ツールをインストールする必要がありますこれにより、 RustコードをWASIターゲットコンパイルし、 Hippoで実行できるようになります

これで、 .NET 5 をインストールできるようになりました。まず .NET 5 SDKとランタイムをインストールする前に、 MicrosoftDebianパッケージ リポジトリのサポートを設定します。 .NET ランタイム ASP.NET Coreをサポートするオプションとサポートしないオプションの 2 つがあります。 Hippoはモデル・ビュー・コントローラー Web アプリケーションなのでランタイムのASP.NETバージョンを使用する必要があります。

Hippoの構築と実行

すべての前提条件がインストールされたら、 Hippoをビルドできます。まず、 Hippo GitHubリポジトリをWSLシステム上のローカル ディレクトリ複製しますインストールが完了したら、 BINDLE_URL環境変数を追加してアプリケーションをビルドして実行し、ローカルのBindleサーバーを指定することができますアプリケーションの開発とデプロイメントにはHippoCLI が必要なので、この時点でインストールしておくのも良いでしょう

これで、 Hippoサーバーに接続して、正常に動作しているかどうかをテストできます。 localhostポート5001で見つかるはずです最新バージョンのWSL 2 を実行している場合はlocalhostを使用してWindowsデスクトップ ブラウザーから接続できるはずです。これは、 Microsoft がWSL 2の長年の問題であったネットワーク問題をようやく修正し、独自のIPアドレスと仮想ネットワーク スイッチを保持しながら、仮想マシンのネットワークをWindows経由でプロキシするようになったためです。ネットワーク アドレスを抽出して共有するためのスクリプトはもう必要ありません。

サーバーに接続する前に、アカウントを登録する必要があります。ローカルで実行されるため、好きなアカウント詳細を選択できます。最初のアプリケーションを構築するときに詳細が必要になるので、覚えやすいものにしてください。アカウントを作成したら、ログインします。「新しいアプリケーションの作成」ボタンのある「アプリケーション」ページが表示されます。

最初の Hippo WebAssembly アプリケーションを作成する

Hippo用のアプリケーションWeb UI から構築できますが、コマンド ラインを使用する方が簡単になりました。 Yeoman はHippo CLIを使用してアプリケーションをスキャフォールディングするため Hippo CLI がインストールされていることを確認してください。始める前に、 Hippoアカウントとパスワード、およびそのエンドポイントの環境変数を設定します確かに、これは優れたセキュリティ対策ではありませんが、ここでは、まだ本番環境に対応していないソフトウェアを使用して、隔離されたPC上でテスト コードを構築して実行しているだけです

基本的なHello Worldアプリケーションを構築するには、 yo-wasmツールを使用してWebAssembly Rustアプリケーションを構築します。スクリプトに従って適切な値を入力すると、ソース コードがビルドされ、 Hippoサーバーにロードされます。次に、 Rustカーゴ ツールを使用してWASIアプリケーションをコンパイルおよびテストします。コマンドラインで実行した後、 HippoCLIツールを使用してBindleにプッシュすると Hippoで表示できるようになります。プロジェクトを開き、構築した開発環境を選択し、リンクをクリックしてコードを実行します。

カバには好きなところがたくさんあります。 WebAssemblyに欠けているものが 1 つあるとすれば、それは開始するのに役立つ、効果的なHerokuのようなプレイグラウンドですHippo はまだそのような遊び場ではないかもしれませんが、初期段階でも、今すぐに独自の開発ワークフローの一部として使用できるものであることは間違いありません。サードパーティのシステムに依存する必要がないため、開発用PCで実行できることはさらなる利点です。これはWSL 2環境の一部として実行できるほど影響が少ないため Visual Studio Codeなどのツールのリモート開発機能を使用してWindowsからWSLRustコードを編集できます

WebAssemblyに興味があるなら Hippo は始めるのに必要なツールである可能性が高いです。これにより、開発の実行に必要なさまざまな要素が 1 か所にまとめられ、 WebAssemblyコードの操作がはるかに簡単になります。まだ初期リリースであることは明らかですが、始めるには十分な内容が含まれているため、 WebAssemblyを扱うすべての人にとって必須のツールとなっています

<<:  Red Hat はポートフォリオを更新し、クラウドネイティブ アプリケーション開発のパフォーマンスとスケールをさらに向上させました。

>>:  可用性、同時実行性、パフォーマンスに優れたクラウドネイティブ コンテナ ネットワークを構築するにはどうすればよいでしょうか?

推薦する

新しいサイトをどのように計画しますか?

最近記事をあまり書いていませんが、その理由の1つは時間の問題で、もう1つは新しいウェブサイトを計画し...

音楽業界委員会:音楽の支払いは差し迫っており、さもなければ業界全体が崩壊するだろう

中国新聞社、北京、12月18日(記者:尹立)中国オーディオ・ビデオ協会録音作業委員会の陸建事務局長は...

hostflyte: cn2 vps、20% 割引、年間わずか 14 ドル、内蔵防御、自動変更 IP、Windows システム

HostflyteのCN2 VPS(CN2 GT、片道)が20%オフで販売されています。国内の往路は...

3年間の運営経験: タオバオSEOランキング最適化のヒント

1. キーワードの選択2. タイトルデザインとキーワードの組み合わせ3. 画期的なキーワードを特定す...

ウェブマスターネットワークニュース:ウェブサイト取引が急増、民生銀行が電子商取引に挑戦

1. アリババとテンセントがWeChatプラットフォーム上で競争し、起業家が損害を被るA5ウェブマス...

Kube-Mgmt を使用して OPA を Kubernetes クラスターに統合する

OPA と呼ばれる Open Policy Agent は、オープン ソースの汎用ポリシー エージェ...

クラウドサービス市場は本当に暗い冬を迎えているのでしょうか?

まだ初秋ですが、クラウドサービス市場はすでに寒い冬に突入しています。すべての兆候は、この発言が根拠の...

Baidu Share はウェブサイトにトラフィックをもたらし、ランキングを向上させることができますか?

最近、Baidu で検索すると、図に示すように、一部の Web サイトに余分な「小さな手」と数字が表...

Pinterestの画像ウォーターフォールモードが中国で人気に

中国人が模倣と創造の能力において一流であることは否定できない。 Pinterest の画像ウォーター...

ipxcore-$2.39/KVM/192m メモリ/10g ハードディスク/300g トラフィック/サンディエゴ/ニュージャージー

小規模ながら優れた VPS 販売業者である ipxcore が、40% 割引コード 40june を...

Baidu の外部リンク ツールの統計における外部リンクが不完全なのはなぜですか?

百度は11月25日、百度ウェブマスターツールの外部リンク検索ツールのベータ版をリリースした。武漢SE...

クロスボーダーボーイ | 画像 SEO 最適化: 実用的な 16 のヒント

目を道に向け、足を地につけ、心の中に壮大な計画を持ちなさい。みなさんこんにちは。Riven@Cros...

2019年上半期中国広告市場レポート

2019年上半期は、「安定と変化、変化と懸念」の経済環境の影響を受け、2019年の経済市場全体に対す...

Baidu のセキュリティリスク警告が再び強化されました。ウェブマスターは何をすべきでしょうか?

Baidu のすべてのアップデートとアップグレードは、私を含むウェブマスターにとって大きな関心事です...

chicagovps-6$/Windows/2g メモリ/40g SSD/2T トラフィック + 安価な VPS 以上のもの

Chicagogovs は、その男 (あらゆる場所で悪事を働き、死に値する) を記念して Windo...