Docker Open Sources Compose for Amazon ECS and Microsoft ACI

現在、Amazon ECS と Microsoft ACI Compose の統合に関するコードをオープンソース化しています。 DockerがComposeをクラウドで利用できるようにしたのはこれが初めてであり、開発者はローカルで実行していたComposeプロジェクトを取得し、コンテキストを切り替えるだけでクラウドにデプロイできます。

Dockerは開発者に焦点を当てているため、デスクトップ、ハブ、そしてもちろんComposeなど、開発者が愛するDockerの部分を倍増させてきました。 世界中の何百万人もの開発者がComposeを使用してアプリケーションを開発し、そのシンプルさを気に入っていますが、これらのアプリケーションをクラウドで実行する簡単な方法はありませんでした。

Docker は、2 つの方法でクラウドでコードを簡単に実行できるようにするために取り組んでいます。 まず、 Compose 仕様 をコミュニティ プロジェクトに移動しました。 これにより、Composeはコミュニティとともに進化し、より多くのユーザーニーズをより適切に解決し、ランタイムプラットフォームに依存しないようにすることができます。 次に、Amazon および Microsoft と協力して、Compose アプリケーションをクラウドに直接デプロイするために使用できる docker compose up Amazon ECS と Microsoft ACI の CLI 統合に取り組んでいます。

これらの統合を実装する際に、既存のCLIコマンドが影響を受けないようにしたいと考えました。 また、新しいバックエンドを簡単に追加し、一般的な言語で SDK を提供できるアーキテクチャも必要でした。 これは、次のアーキテクチャで実現しました。

CLI アーキテクチャ

この図の ノード SDKCompose CLI の部分は、現在オープンソース化されているものです。 このアーキテクチャは最終的なものではなく、後で Compose CLI を既存の CLI とマージする予定です。

ユーザーが選択した Docker コンテキストに応じて、Compose CLI はコマンドまたは API 呼び出しに使用するバックエンドを切り替えます。 これにより、既存のコンテキストを使用するコマンドを既存の CLI に透過的に渡すことができます。 バックエンド インターフェイスの抽象化により、任意のコンテナー ランタイムにバックエンドを実装できるため、ユーザーは新しい API と SDK と共に、使い慣れた同じ Docker CLI UX を取得できます。

作成 CLI は、CLI コマンドと同様の機能を提供するために gRPC API を提供できます。 gRPC を使用することを選択したのは、Node.js、Python、Golang などの一般的な言語で高品質の SDK を生成できるためです。 現在、ACI での単一コンテナー管理をサポートする Node SDK のみを提供していますが、近い将来、Compose サポートを追加し、ECS やその他のバックエンドに拡張し、他の言語 SDK を追加する予定です。 ノード SDK は、ACI で Docker エクスペリエンスを実装するために VS Code によって既に使用されています。

この作業は、Microsoft と AWS のパートナーがそれぞれのプラットフォームで可能な限り最高のエクスペリエンスを構築するのを支援してくれなければ不可能でした。 私たちのチームはあなた方全員と一緒に仕事をすることを楽しんでいます! Microsoft からは、Mike Morton、Karol Zadora-Przylecki、Brandon Waterloo、MacKenzie Olson、Paul Yuknewicz に感謝いたします。 AWS からは、Carmen Puccio、David Killmon、Sravan Rengarajan、Uttara Sridhar、David Duffey に感謝します。

これらのツールは現在ベータ版であるため、フィードバックやプルリクエストを歓迎します。

クラウドで作成の使用を開始するには、 ここから Docker Desktop をダウンロードし、ここからイメージをデプロイするための無料のハブ アカウント を取得します。イメージを Docker Hub に保存したら、ECS または ACI にデプロイして、これを行う方法の詳細を確認できます。