先週の金曜日、Docker Desktop の新しいバージョン 4.15 がリリースされました。このバージョンでは、Docker Desktop に WasmEdge の containerd shim が正式に統合され、Docker + Wasm もテクノロジー プレビューからベータ段階に入りました。これは、1,000 万人の Docker Desktop ユーザーが WasmEdge をインストールし、Docker 開発者は使い慣れたツール チェーンを使用して WasmEdge アプリケーションを開発できることを意味します。
さらに、WasmEdge は先週 GitHub Tending で紹介されました。WasmEdge を愛してくださった開発者の皆様に感謝します!
WasmEdgeのソースコードを確認してください: https://github.com/WasmEdge/WasmEdge
完全なデータベースベースのマイクロサービス アプリケーションのサンプルを提供しています。Docker + Wasm を手早く体験したい場合は、このリポジトリから開始するのが最も便利です。
まず、ローカルで microservice-rust-mysql に git clone し、サンプルを開きます。
$ git clone https://github.com/second-state/microservice-rust-mysql.git
$ cd microservice-rust-mysql
次に、Docker Desktop を開き、Docker Desktop が実行されていることを確認します。最新の Docker デスクトップはここからダウンロードできます。
ダウンロードリンク: https://docs.docker.com/desktop/release-notes/
次に、 を使用してdocker compose up
マイクロサービス デモを構築して実行します。
docker compose up
このコマンド ラインを入力すると、docker はDokcerfile
に従ってイメージを構築します。Linux コンテナー イメージには Nginx と MariaDB という 2 つがあり、1 つは Rust ベースのマイクロサービスを実行する Wasm イメージです。
その後、docker がdocker-compose.yml
コンテナを起動し、ビルドされたイメージを実行します。
実行後、ブラウザーを開くhttp://localhost:8090/
と、このマイクロサービスの Web UI が表示されます。UI に示されているように、このマイクロサービスは、Wasm ベースのマイクロサービスを通じてフロントエンドの注文情報をデータベースに追加します。
Docker Desktop に戻ると、合計 3 つのコンテナーが実行されていることがわかります。そのうちの 1 つは Wasm32 とマークされており、これは wasm コンテナーであることを意味します。
イメージは 3 つあり、Wasm イメージはわずか 3 MB、Linux ベースの nignox イメージは 12 MB、MariaDB イメージは 100 MB を超えています。これはWasmの軽さを示しています。
Wasm はフットプリントが小さいだけでなく、パフォーマンスも高く、Linux コンテナーでは数百ミリ秒かかるのに対し、数ミリ秒で開始されます。
現在北米で Amazon が開催している AWSre:Invent 60,000 カンファレンスで、AWS が最も重要なソフトウェア製品をリリースしたことは注目に値します。ラムダサーバーレス関数の起動時間が 6 秒から 600 ミリ秒に短縮されました。WasmEdge ベースのマイクロサービスとサーバーレス機能の起動時間は、簡単にミリ秒以内に収まります。Docker の創設者が言ったように、サーバー側の WebAssembly はクラウド コンピューティングの未来です。
この記事では、Docker Desktop と Docker compose を使用して、Linux コンテナーと Wasm コンテナーを並行して実行する方法を紹介します。次の記事では、Dockerfile と docker-compose.yml を 0 から構成し、Docker ツールチェーンを使用して構成する方法を紹介します。独自の Wasm アプリケーションを構築します。
関連書籍: