Azure Container Service を発表: 現時点の発表内容と今後について

このポストは、9 月 29 日に投稿された Azure Container Service: Now and the Future の翻訳です。

 

今回の AzureCon では、Azure でのコンテナー化されたアプリケーションのサポートに関する新たな発表がありました。マイクロソフトは Azure の新しいサービスとして、Azure Container Service を発表しました。Azure Container Service は、Docker と Mesosphere の協力のもとで開発が進められているもので、コンテナー化されたアプリケーションのデプロイメント、オーケストレーション、管理を行うホスト マシンのスケーラブルなクラスターを作成、管理することができます。

本日の発表内容

本日は 2 つのことを発表しました。1 つは Azure Resource Manager (ARM) で Azure Container Service Resource Provider を提供する予定であること、もう 1 つは Azure QuickStart テンプレートの形でこのサービスの初期プロトタイプが実装されたことです。ここではまず、Azure Container Service に関する発表内容をご説明しましょう。

ARM の活用により、Docker、Apache Mesos、Marathon、Docker Swarm で事前定義されたホストのクラスターの作成と管理を Azure Container Service で簡単に行うことが可能になります。そして Azure のハイパー スケールかつエンタープライズ クラスのクラウド サービスと、実績のあるオープン ソース テクノロジ (英語) が組み合わさることで、コンテナーのデプロイメント、オーケストレーション、管理の基盤が提供され、コンテナー アプリを構築するチームのニーズに対応します。

コンテナー アプリケーションの管理に対するこのオープンなアプローチにより、ユーザーの皆様はお好みのテクノロジを選択し、Azure Container Service 上で利用することができます。さらに、コミュニティによって定義された API がサポートされるため、サービスのあらゆるレベルで、開発者のワークステーションからオンプレミスのプライベート クラウドや Azure へのコードの移植性が維持されます。Azure Container Service を使用すると Azure インフラストラクチャの作成と管理が容易になります。また、Docker の協力により、お客様のアプリケーション コードを Docker がサポートされている環境に移植することが可能になります。

現在利用可能な機能

マイクロソフトは皆様のご意見に耳を傾けることが重要であると考え、オープン ソースにおける「早期リリース、頻繁にリリース」の原則に従うことにしました。現在のところ、Docker 対応の Apache Mesos クラスターを Azure QuickStart プロジェクト (英語) からデプロイすることが可能です (Azure アカウントをお持ちでない方は、こちらのページから簡単に評価版をご利用いただけます)。この Azure QuickStart テンプレートは、今年中にリリースが予定されている Azure Container Service の最終版の基礎となるもので、正式リリース前に Azure Container Service のプレビューとしてご利用いただけます。

このテンプレートをデプロイすると、下図のアーキテクチャがプロビジョニングされます。このすべての機能を備えた Mesos クラスターを使用すると、対応する API に準拠した任意のツールで、Docker を基盤とするアプリケーションを構築、デプロイすることができます。

Docker を使用したことがない方は、Mark Russinovich のブログ記事「コンテナー: Docker、Windows、およびその傾向 (英語)」をご参照ください。より実践的な資料としては、Corey Sander による Docker の紹介ビデオ (英語) や、私が解説しているこちらのビデオ (英語) をご覧ください。これらのセッションでは、Docker のインストールからコンテナー開発者のワークフロー、完全にコンテナー化されたアプリケーションのデプロイメントやスケーリングまで取り上げています。Azure での Docker のサポート範囲については、こちらの Azure ドキュメントを参照してください。Azure Container Service に関するさらに詳しい記事は、今後数週間から数か月にかけて公開していく予定ですので、どうぞお楽しみに。

Azure Container Service の今後

現在提供されているテンプレートは Azure Container Service の作業用プロトタイプで、これを使用したインフラストラクチャでワークロードのデプロイメントや実行は可能ですが、これからさらに機能の追加が予定されています。Azure Container Service の第一の目標は、クラスターの作成と構成をシンプルにすることです。このクラスターの既定の構成では Docker および Docker Swarm によるコードの移植性が確保され、Marathon、Chronos、Apache Mesos が含まれているため、アプリケーションを数千~数万のコンテナーにスケーリングすることができます。

今後リリースが予定されている ARM 対応の Azure Container Service Resource Provider では、生成されたクラスターを標準の ARM API で定義、管理できるようになる予定です。現時点でこの構成を行うには、これらのテクノロジを十分に理解している開発者が数千行ものコードを作成する必要がありますが、Resource Provider を使用すれば大幅に簡略化できるため、既定の構成を使用する場合、構成用のコードは数十行にまで短くできます。このようにシンプルになることで、複雑なクラスターのデプロイメントや管理の際の構成エラーも減少します。

また、新しい Resource Provider ではリソースの統合的なタグ付け、Roles Based Access Control (RBAC)、Azure 管理ポータルといった Azure の機能を利用できるようになります。そのため、Azure のエンタープライズ クラスの機能を活用しながら、同時にオーケストレーション層から上位のコードの移植性が維持されます。

アプリケーションを完全にスケーラブルにするには、ソフトウェア コンポーネント以外にハードウェアも拡張可能である必要があります。そのため、Azure の新機能である Virtual Machine Scale Set (VMSS) を活用できるようにすることも目標にしています。VMSS は 1 つの API 呼び出しで同一構成の VM のグループを作成、削除、更新する操作が可能になる機能で、これからリリースが予定されています。Azure Container Service では、この同一構成の VM は、コンテナーのホスト先のエージェントに当たります。VMSS のすべての VM が同一構成であるため、VMSS を使用すると VM の自動スケーリングを迅速に行うことができます。

他にも、Windows Server コンテナーをこのサービスに完全に統合することが予定されています。その中核部分は既に Windows Server TP3 での Docker Engine のサポート (英語) から実装されており、8 月には Apache Mesos の Windows Server の対応 (英語) に向けた Mesosphere とマイクロソフトの共同プロジェクトが発表されています。この取り組みにより、Azure Container Service が Windows Server コンテナーでサポートされるようになり、お客様のニーズに最適な OS でコンテナーを管理できるようになります。

Azure Container Service の利用とフィードバックのお願い

ここでは、Azure Container Service によって、Marathon、Mesos、Docker、Compose、Swarm などで事前定義されたクラスターをデプロイできるようになったことをお伝えしました。Azure Container Service を使用した感想は、こちら (英語) までお寄せいただければ幸いです。