Bryan Cantrill氏に聞く - Trironを使ったベアメタル上でのコンテナ運用

InfoQは先日,JoyentのCTOであるBryan Cantrill氏にインタビューして,コンテナテクノロジ,ベアメタル上でのDockerの利用,さらには同社がTritonプラットフォーム開発を通じて技術的イノベーションをいかに推進していくのかなど,氏の考えを聞いた。

Cantrill氏は,ソフトウェア開発や運用にフォーカスした会議では顔なじみの人物だ。最近ではDockerCon 2015で“Running Aground: Debugging Docker in Production”,Container Camp SF 2015で“Building and Scaling Container Driven Cloud Infrastructure”,さらにO’Reilly Software Architecture Conference 2015では“The Peril and Promise of Early Adoption: Arriving 10 Years Early to Containers”といった,数々のプレゼンテーションを行っている。

これらの講演で繰り返し語られているのは,ベアメタルサーバ上でコンテナを利用することのメリットだ。明白なものもある(仮想マシンのオーバーヘッドの排除など)が,一方でセキュリティに関する未解決の問題もいくつかある。InfoQでは,これらの問題に対する氏の考えについて,最近のJoyentの活動を含めて聞くことにした。

InfoQ: Joyentではかなり前からコンテナテクノロジに取り組んでいると思うのですが,これについて詳しく説明して頂けますか?

Cantrill: Joyentは10年近く前から,ハードウェアVMの高性能な代替品としてコンテナを使用してきました。運用面および経済面でのメリットがVMをはるかに上回っていることに,早い段階から気が付いていたからです。セキュアで柔軟なベアメタルコンテナを提供するクラウドは,私たちをおいて他にはありません。これを可能にしたセキュリティは,元をたどればZonesにたどり着きます。ZonesはSun Microsystemsが開発して,Open Solarisとともにオープンソースになったテクノロジです。

Linuxのコンテナは多くの面で,まだ非常に若い技術(例えばネームスペースは,現在もなお,すべてのディストリビューションで完全にサポートされてはいません)なのですが,JoyentのSmartOSコンテナハイパーバイザは,Open SolarisのZonesという枯れた基盤の上に構築することで,強化されたセキュリティと強力なリソースアイソレーションという,他よりも10年先行した機能を提供しています。

TritonはZonesの成熟性と安全性を,DockerとLinuxに提供します。Tritonのコンテナは,Dockerクライアントから簡単に起動できます。あるいは,ワークロードをDocker化せずにOS仮想化のメリットを享受したいのでしたら,Canonicalによるサポートの付いた正規のUbuntuを始めとして,CentOSやDebian,その他コンテナネイティブなLinuxオプションも提供しています。

InfoQ: JoyentのWebサイトには,あなた方の‘Triton Elastic Container Infrastructure’が仮想マシンのスケール性とベアメタルのパフォーマンスを実現する,と説明されていますが,これは正確には,どのような意味でしょう - コンテナが実際にベアメタル上で動作する,ということでしょうか?

Cantrill: インフラストラクチャコンテナとDockerコンテナのどちらも,Triton上のベアメタルで実際に動作します。ハイパフォーマンスとハードウェアの有効利用を両立することが可能なのです。I/O集中型のワークロードであれば,パフォーマンスが大幅に向上する場合もあります。また,優れたパフォーマンスと高い利用率を組み合わせることによって,ユーザとプロバイダ両方のコストを削減します – この面は特に,プライベートクラウドを運用中のユーザには,大いに期待して頂けると思います。先程も延べたように,私たちの計算インフラストラクチャはZonesのセキュアな基盤の上に構築されているため,ベアメタル上でコンテナを実行することが可能です。これがユーザを,他のベンダのようなVM依存から解放してくれます。

InfoQ: IBM SoftLayerPacketといった,API経由でベアメタルサーバを管理可能な同種製品と比較した場合はどうでしょう?

Cantrill: サーバ全体をプロビジョン可能なベアメタルプロバイダはたくさんありますが,Tritonのコンテナインフラストラクチャは,それらのプロバイダとは比較にならない柔軟性を,ベアメタルのパフォーマンスで提供している点が違います。128メガバイトの小規模なコンテナから,スケールアップして64ギガバイト,さらには224ギガバイトまでという,コンテナ利用のフレキシビリティを,適切なパフォーマンスと価格で提供します。

さらにTritonは,コンテナのプロビジョニングを合理的に実行するための,リッチで統合されたインフラストラクチャ自動化ツールのセットも提供しています。必要なソフトウェアとネットワークやストレージをすべて,正確にイメージ化することが可能です。パブリッククラウドにおいてこのことは,ハードウェア仮想マシンで望まれる柔軟性とセキュリティをすべて備えた,ベアメタルプラットフォームが手に入る,ということを意味します。また,プライベートクラウドでは,新たにラックに収められて実際にワークロードを提供できる計算ノードが,わずか60秒で手に入る,ということになります。

肝心なのは,ここで手にしたベアメタルが,あくまでベアメタルであるという点です。機器とアプリケーションのギャップを埋めて,コンテナの実行と管理のためのプラットフォームを構築しなくてはならないことに,変わりはありません。それを行ってくれるのがTritonなのです。

InfoQ: JoyentのWebサイトには,Tritonの主な差別要因としてセキュリティ,ネットワーク,イントロスペクション/デバッグがあげられています。これら以外で,特に指摘したいものはありますか?

Cantrill: シンプルさ,ですね。Tritonは,セキュリティやネットワークやデバッグといった領域で,運用面での堅牢性を提供しますが,本当のトリックは,コンテナベースのアーキテクチャのデプロイや運用が簡単になるような方法でそれらを実行できる,という点にあります。さらに,私たちが提供しているのは,エンタープライズサポートのソフトウェアとしてオンプレミスでも,サービスとしてクラウドでも利用可能な,100%オープンソースのソリューションとしては唯一のものです。

InfoQ: MesosKubernetes,あるいはEngine/Compose/SwarmといったDockerスイートとは,どのように連携する(あるいは併用できる)のでしょう?

Cantrill: MesosとKubernetesはどちらも,アプリケーションライフサイクルの管理と構成を支援する,優れたツールを提供しています。Dockerスイートでも,いずれは同じような機能を提供するようになると思いますが,インフラストラクチャの問題は解決していません。コンテナのスケールとロードバランスや,旧バージョンから新バージョンへの交換も重要な問題です。コンテナはどこで実行するのでしょう?基盤である計算ノードの管理はどうしますか?アプリケーションに提供するストレージやネットワーク,計算能力については?

私たちは,インフラストラクチャとアプリケーションフレームワークとの間に,明確な線を引いています。ユーザの選んだアプリケーションオーケストレーションツールの基盤として,最善のインフラストラクチャを提供することが私たちの目標です。私たちは現在,DockerコンテナとDockerツールスイートのために最高の実行環境を提供しています。同じことをKubernetesやMesosでも行うべく,開発を急ピッチで進めているところです。

InfoQ: DockerとTritonを使った開発から運用までの一般的なワークフローとして,どのようなものを想定していますか?

Cantrill: 私たちがDockerに惚れ込んでいる理由は,他の多くの開発者たちと同じで,ラップトップでの開発が簡単になるからです。ですから私たちは,私たちのクラウドでのアプリケーションのデプロイを,ラップトップで”docker run”を実行するのと同じくらい簡単にするために,努力を続けているのです。Docker ComposeやSwarmを加えれば,さらに簡単になります。

Couchbaseをベースとするアプリケーション開発の基本構造については,スクリーンキャストでご覧ください。私たちのクラウドが備える高度なネットワークとホスト管理機能が,デプロイを簡略化し,スケーリングをさらに容易にしてくれます。ただし,忘れないでください - ベアメタルコンテナのパフォーマンスを得るために,アプリケーションをDocker化する必要はありません。Couchbaseをインフラストラクチャコンテナに展開する方法は他にもあります。もうひとつの例もご覧ください。

InfoQ: Cloud Native Computing Foundation(CNCF)とOpen Container Initiative(OCI)との組み合わせは,非常に興味深く思えますが,両方の創設メンバとして,さらにCNCFではToC初期メンバのひとりとして,2つの組織にどのようなことを期待していますか?

Cantrill: 世界中の主要なベンダやオープンソースプロジェクトが協力して,確固としたリファレンスアーキテクチャを定義すれば,そしてCNCFが,そのようなコラボレーションを生み出すためのフォーラムを提供することができるならば,コンテナネイティブなアーキテクチャの広範な採用にさらに弾みがつくと思います。例えばTritonならば,CNCFの管理ソフトウェアコンポーネントと組み合わせることで,コンテナネイティブなソリューションのデモやPOC(Proof of Concept/概念実証),オンプレミスでの運用向けデプロイメントを目的とした,ベンダニュートラルで100%オープンソース,100%コンテナネイティブという”完璧なスタック”を提供することが可能です。Tritonは,CNCF管理ソフトウェアコンポーネントの標準APIセットをネイティブにサポートしているので,プロプライエタリな実行環境のリプレースを望むユーザに選択肢を提供すると同時に,何よりもスピードとシンプルさを評価するマーケットの多数派に対しては,“クラウドネイティブ”移行への手掛かりを与えてくれるのです。

InfoQ: 質問に答えるために時間を頂いて,本当にありがとうございました。他に付け加えておきたいことはありますか?

Cantrill: すべてを要約すると,Tritonソフトウェアは,ごく一般的なハードウェアを使用して,コンテナネイティブなアーキテクチャをベアメタル並のパフォーマンスで,なおかつセキュアに実行可能な,“ハイパーコンバージド(hyper-converged)”インフラストラクチャを実現します。ラップトップやサーバ,あるいはラックサーバにも簡単にデプロイ可能な上に,マルチリージョンのパブリッククラウドの要求に応えるスケール性も備えています。またはJoyentが提供するパブリッククラウド・アズ・ア・サービス上で,Tritonを活用することも可能です。

JoyentのTritonに関する詳しい情報は,同社Webサイトの開発者FAQページで見ることができる。