DockerベースのプライベートPaaSをオープンソースとして実装 - Rancher Labs CEOのSheng Liang氏とのQ&A

DockerCon EU 2015でInfoQはRancher Labsチームと会談して,PaaS(Platform as a Service)やコンテナベースのアプリケーションプラットフォームの現状,それらを取り巻くネットワークやストレージの問題について,同社の考えを聞くことができた。

Rancher Labsは,Docker上での動作を前提としたミニマルオペレーティングシステム(OS)であるRancherOSと,Engine YardのDeis PaaSやVMwareのPhotonプラットフォームと同じようなプライベートコンテナサービス開発用オープンソースプラットフォームのRancherを開発している企業だ。InfoQは同社CEOのSheng Liang氏と会談して,Rancherプラットフォームについて,ネットワークやストレージなどのコンテナプラットフォームに共通な問題について,さらに標準的な開発フローに対するコンテナプラットフォームの適用性について話を聞いた。

InfoQ: Shengさん,こんにちは。InfoQとの会談に応じて頂いてありがとうございます。あなた自身とRancherについて,簡単に紹介して頂けますか?

Liang: 分かりました。私はRancher Labsの共同創設者でCEOのSheng Liangです。当社はコンテナ化されたワークロードを対象とした,次世代クラウドソフトウェア開発を専門とする企業です。AmazonのECSやGoogle Container Engineといったパブリックコンテナサービスの人気が非常に高まっていますが,同じような手法を用いて,コンテナ化された自身のワークロードを実行する方法を模索している企業もたくさんあります。当社のフラッグシッププロダクトであるRancherは,企業自身のプライベートコンテナサービス立ち上げを実現した,初のオープンソースプラットフォームです。また第2の製品であるRancherOSは,Dockerコンテナ上で実行する,極限的に軽量(30MB未満)なLinuxディストリビューションです。

InfoQ: RancherOSで貴社を知ることになる人は多いと思いますが,PaaS市場に移行した理由は何だったのでしょう?

Liang: そうですね。RancherOSはDockerコンテナを動作させるための最も小さく,最もセキュア,かつ最も効率的な方法として,Dockerコミュニティから多くの関心を集めています。ですが,当社が最初から持っていた製品はRancherの方です。Rancherは,企業が専用のコンテナサービスを構築するための製品です。厳密に言うと,コンテナサービスと従来のPaaSとは異なります。コンテナサービスは,アプリケーションの自動管理やインフラストラクチャ非依存など,PaaSと同じメリットを持つ一方で,独自性が少ないことから,アプリの適応はPaaSより簡単なのです。

InfoQ: 貴社の製品のユニークな部分はどこにあると思われますか?例えばDeisやKubernetes(GKE), Amazon ECS, Mesosなどと比較した場合はどうでしょう?

Liang: Rancherがユニークなのは,コンテナサービスを構築する手段として,Docker中心のソフトウェアスタックを提供している点です。Dockerの最も大きな価値は,その優れた開発者エクスペリエンスに加えて,開発者に広く採用されている点にあると私たちは考えています。Dockerをラップして独自の開発者エクスペリエンスを提供しようというツールは他にたくさんありますが,私たちはDocker CLIやDocker API, Docker Swarm, Docker Machine, Docker Composeといった,ネイティブなDockerエクスペリエンスを残すことを重視しているのです。

私たちはDockerの下や,その周りに付加価値を構築しています。ネイティブなDockerエクスペリエンスを提供することの副次的なメリットとしてRancherでは,Docker上に開発されたフレームワークやKubernetesのようなフレームワークをサポートし,価値を加えることが可能です。実際にRancherにはKubernetesディストリビューションが含まれていますし,Kubernetesアプリケーションの実行プラットフォームとしても優れています。

InfoQ: コンテナベースのPaaSを構築する上での一般的な問題として,ストレージとネットワークの2つがあります。ワークロードの移行を図る企業にとっては大きな問題なのですが,Rancherではどのように対処しているのでしょうか?

Liang: Rancherでは,高度に最適化された,ポータブルなネットワークとストレージの実装を提供することに重点を置いています。Dockerランタイムは移植性に優れた実行エンジンですが,Rancherではこれに,ポータブルなストレージとネットワークのインフラストラクチャを加えています。Rancherが利用するLinuxサーバは,どのクラウドや仮想クラスタ,あるいはベアメタルサーバでも運用可能なものです。その上に独自のSDNレイヤを実装することにより,複数のホストとクラウド上のコンテナでの相互通信を実現すると同時に,環境およびユーザそれぞれのコンテナ間でのネットワーク的な分離を維持しています。

永続的ストレージとステートフルなワークロードを実現するために,Rancherでは2つのストレージテクノロジを採用しています。ひとつはDockerボリューム用のストレージドライバであるConvoyで,コンテナからアクセス可能な,NASやSANのような永続的ストレージシステムを実現しています。さらに私たちは先日,Persistent Storage Serviceを発表しました。これはGlusterやNexentaのようなSDS(Software Defined Storage)システムで,アプリケーションコンテナと合わせてデプロイされます。Persistent Storage Serviceを使うことで,NASやSANを必要とせずにステートフルなアプリケーションを実行することが可能になります。

InfoQ: (おそらくはJenkins, Go, CD, TeamCity経由で)DockerとRancherを対象とする,継続的デリバリ/ビルドパイプライン関係のツールを提供する予定はありますか?

Liang: 現時点では,コンテナ化されたアプリケーション用の優れた実行環境を提供して,SwarmやKubernetesなど一般的なコンテナオーケストレーションフレームワークをサポートする計画です。Docker CLI, Swarm, Kunernetesを統合したCI/CDツールはすでにたくさんありますから,Rancher用の新たなインテグレーションは必要ありません。

InfoQ: Rancherは現在ベータ版ですが,GAリリースのスケジュールはありますか?

Liang: はい, 来年(2016年)初めに提供する予定です。

InfoQ: 改めて,お時間を頂いてありがとうございました。InfoQの読者に伝えておきたいことがあればお願いします。

Liang: お話できてとても楽しかったです。私たちRancher Labsは,Dockerコミュニティが作り上げた機会に,とても感謝しています。コンテナは私たちに,インフラストラクチャや管理スタック全体に対する見方を変えると同時に,パブリッククラウドやプライベートクラウド,仮想化クラスタ,ベアメタルサーバのすべてを共用化されたリソースプールとして使用するという,新たな方法を提供してくれます。

これまでのクラウドコンピューティングは,必ずしもエキサイティングなものではありませんでした。ですが今,コンテナのパワーによって,ワークロードのポータビリティやインフラストラクチャのコモディティ化,アプリケーションのデプロイと管理の自動化,アプリケーション定義によるインフラストラクチャといったクラウドコンピューティングの理想の多くが,これまでになく現実に近づいているのです。

Rancherに関する詳しい情報は同社のWebサイトで,Rancher Platformのインストールに関する手順はRancher GitHubリポジトリで,それぞれ見ることができる。質問やフィードバックはRancherフォーラム経由か,あるいは#rancher IRCチャネルで受け付けている。