Dockerは今や明らかにデベロッパコミュニティの大スターであり、Googleも当然、真剣に対応している。 今年はCompute EngineにDockerの基本的なサポートを加えたが、さらに今日(米国時間6/10)は、App EngineもDockerに対応する、と発表した。そしてそのためには、最近ローンチしたユーザ管理型仮想マシン(Managed VMs)を活用する。
またデベロッパによるDockerの利用を支援するために、Googleは今日、コンテナ管理ツールKubernetesをローンチする。さらにGoogleがDockerのコミュニティに本格的に参加するために、同社のインフラ担当VP Eric BrewerをDocker Governance Committeeにノミネートし、 “コミュニティと協力してコンテナのさらに良いオープンスタンダード構築に貢献していきたい”、との意思表示をした。
コンテナはGoogleにとって新しいものではない。同社はこれまで長年にわたって、大規模なデータセンターを管理するために内製のコンテナを使ってきた。今や同社は毎週、同社のデータセンター全体で20億あまりのコンテナをローンチしている。
GoogleのクラウドサービスプロダクトにおけるDockerの導入を推進してきた、プロダクトマネージャのCraig McLuckieは、Dockerのサポートは同社にとって当然なことだ、と言う。従来型のホスティングでは、新しいボックスを加えることが毎回、大仕事だった。しかし最近のアプリケーションは多くの小さなサービスの集合体であることが多いので、コンテナがうってつけの世界だ。だからMcLuckieは、“コンテナはうちにものすごく大量の価値をもたらす”、と言う。“多くのデベロッパにとってDockerは、大きな便宜を提供してくれるのだ”。
デベロッパがDockerをApp Engineで使うと、既存のDockerイメージの大きなライブラリにアクセスでき、またGoogleのストレージサービスを利用して自分のものを持ち込むこともできる。DockerイメージはManaged VMsに展開でき、するとデベロッパはGoogleのPaaSにない各種のサービスをApp Engineで動かせるので、多大な柔軟性 (自由度)が得られる。
またデベロッパが自分のApp Engineアプリケーションをパッケージして、それらからDockerイメージを作る作業を、ものすごく楽にしていきたい、と McLuckieは言っている。
App EngineにおけるDockerのサポートはまだベータだが、デベロッパはここでユーザ登録をして利用できる。
Dockerを使う場合、コンテナの管理やスケジューリングはユーザの責任だが、今ではそれらを支援するKubernetesのようなサードパーティツールがいろいろある。Kubernetesはギリシア語で“船の操舵手”という意味で、マシンの“艦隊”へのコンテナの展開を助けるオープンソースのコンテナマネージャだ。マシンを互いに連携させる機能のほかに、健康管理やレプリケーションの機能もある。なお、このコンテナマネージャはGoogleのサービスに縛られることなく、いろんなプラットホーム上のコンテナを一元管理できる。
Google自身はコンテナシステムとしてOmegaを使っており、Kubernetesも同社のデータセンターの運用にために作ったツールだが、今回はそれをDocker用にまったく新たに書き起こした。Googleが社内で使っているものよりもずっと、デベロッパフレンドリになっているそうだ。スタートアップ企業には、GoogleにあるようなDevOpsのチームがない場合が多いから、その点にも配慮している。
McLuckieによると、Kubernetesには多数のデベロッパが使えるという利点があり、ということは管理するコンテナ群が広範なデベロッパ集合にまたがっていてもよい、という意味だ。そのコードは、GitHubで入手できる。
〔関連記事(日本語訳)〕
[原文へ]
(翻訳:iwatani(a.k.a. hiwa))