DockerがコンテナのオーケストレーションをDocker Engineに統合、単独サービスを不要に

img_20160619_175158

Dockerが今週シアトルで行ったデベロッパーカンファレンスは、事前にチケットが売り切れてしまう盛況だったが、そこでは同社のメインの製品であるDocker Engineに新しい大きな要素が加わった。これまで同社は、コンテナの構築、それらのデプロイ、オーケストレーションなど、主な工程を分割して提供していたが、今回はDocker Engineの中にコンテナのオーケストレーション機能を組み込んだ。

同社はまた、そのツールをMicrosoftのAzureやAmazonのAWSの上で、より容易にデプロイできるようにした。

DockerのCOO Scott John Johnstonによると、これらはすべて、コンテナをもっと使いやすくし、またCEOのBen Golubが今日(米国時間6/20)のキーノートで強調したように、コンテナのオーケストレーションを民主化するための努力の一環だ。コンテナのオーケストレーションは、KubernetesやMesosなど、そのためのフレームワークがすでにいろいろあるにも関わらず、依然としてデベロッパーにとって大きな痛点だ。

docker_engine_swarm_mode

今回Dockerがやったことは、昨年11月にベータを終えたクラスタリングサービスDocker Swarmと、オーケストレーションサービスComposeの、Engine本体中への統合だ。これからは、デベロッパーが”Swarmモード”をonにすると、Dockerエンジンの自己治癒型でお互い同士を発見できるクラスターが作られる。Swarmモードにはオーバレイネットワークのサポートが含まれ、それにより自動的サービス発見とロードバランシングのツールが利用できる。また新たに提供されるService Deployment APIにより、デベロッパーはこれから使うサービスや画像、ポートなどを宣言できる。

Johnstonによると、Dockerの既存のSwarmとComposeツールには何も変更がない。それはユーザーの既存のデプロイを壊したくないからであり、また、サードパーティのツールと併用できるという約束に、違反したくないからだ。同社によると今回の統合化によって“Dockerプラットホームを軸とする構築の機会がさらに拡大され”、またそのプラグイン方式のアーキテクチャにより、今後はネットワーキング、ストレージ、ログ取り、パートナーのモニタリングなど、これらのネイティブなオーケストレーション機能を利用する多方面の進化が期待できる。

docker_swarm-commands

しかしそれと同時に、彼によれば、これらの新しい機能を使いたいと思っているデベロッパーとシスアドミンの両方が、すでに使い慣れている同じDockerコマンドラインを使えるし、アプリケーションをテストしデプロイするために必要なインフラストラクチャをより容易に構成稼働できる。“分散コンピューティングは難しいが、シスアドミンは分散アプリケーションを管理するために学校へ戻るわけにもいかない”、とJohnstonは語る。“これを構築することによって、ノードが複数ある場合にも、必要なことをすべてオーケストレーションツールがやってくれる”。

またDockerの主張によれば、そのシステムは、外部のインフラストラクチャに依存する特定のエラー発生箇所を持つことがない。セキュリティ機能をSwarmモードにも拡張したため、すべてのノードがTLSとDockerのCryptographic Node Identityを使って通信し、アドミンがやることは、ワークロードを信頼できるノードへディスパッチするだけだ。

これらの新しい機能をすべて揃えたDocker 1.12は今、リリース候補(リリースキャンディデート)を利用できる。一般公開は、7月を予定している。その後さらに徹底的なテストを重ねて、Swarmモードなどの新しい機能が商用製品として提供されるのは、今年の後半だ。

IMG_20160620_092304

DockerをAWSやAzureで使う

これらの新しい機能と並行してDockerは今日、Docker for AWSとDocker for Azureを発表した。これにより、Docker Engineをこれら両プラットホームで容易にデプロイできるようになる。Johnstoneは語る、“最近の弊社の拡大した市場には、これまで自分たちが選んで使ってきたインフラストラクチャの上でそのまま、Dockerを使いたい、というユーザーが少なからずおられる”。そこでたとえばDocker for AWSは、AWS自身のインフラサービス(AWS Autoscaling, Elastic Load Balancer, Elastic Block Storeなど)とタイトに統合され、Azureエディションは同様に、Microsoftのクラウドサービスと統合化されている。

ここにGoogleのCloud Platformが抜けていることについてJohnstonは、まず市場の圧倒的多数派に対応した、という。Google Cloudのユーザーは、まだ少数派だ。しかし、複数のクラウドを使いたいというエンタープライズも少なくないので、今後のDocker製品のスケーリングと拡張においては、GoogleやRackspaceなどもサポートしていきたい、と彼は述べる。

IMG_20160620_100449

さらにまた、Docker for OS X(近未来のDocker for macOS?)とDocke for Windowsが非公開ベータを終えて今では公開ベータが提供されている。いずれもDocker体験としては同じだが、AWSやAzureの場合と同様、これらのプラットホーム向けに特別にチューニングされているバージョンだ。

ただしDocker for AWSとDocker for Azureの方は、当面、非公開ベータでのみ提供される。

 

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))