2014年、Dockerが爆発的な人気を呼び、コンテナ技術はクラウド関係やデータセンター関係のコミュニティーにおけるホットな話題となった。しかし、その初期からDockerをサポートしてきた新興の大規模LinuxディストリビューションベンダーであるCoreOSは今回、Dockerと決別し、「Rocket」という独自コンテナ技術の開発に向けて舵を切ることを選んだ。
CoreOSは、Linux分野やシリコンバレー界隈を除けばさほど有名ではないものの、データセンターやクラウドの分野では前途有望なLinuxディストリビューションとして知る人ぞ知る存在だ。Dockerによる仮想化が大きな支持を得てきているため、ちっぽけな会社が非難の声を上げているわけではない。実際のところ、現在CoreOSをちゃんと稼働させるためにはDockerが必要であり、CoreOSの共同創業者であり、最高技術責任者(CTO)でもあるBrandon Philips氏はDockerに対するコントリビューターとして一番の存在であり、Dockerのガバナンス会議にも名を連ねている。
では、なぜCoreOSはDockerと決別しようとしているのだろうか?まず、「われわれCoreOSはUNIX哲学を強く信じている。つまりツールは、クリーンな統合ポイントを維持しながらも、独立性を保った有用なものでなければならない」という理由がある。しかし同社は、「Dockerは今や、クラウドサーバを起動するためのツールや、クラスタ化のためのシステムをはじめとして、イメージの構築やイメージの実行、アップロード、ダウンロード、そして最終的にはオーバーレイネットワークさえも含めた幅広い機能を作り上げようとしている。こういったものすべてが、モノリシックなバイナリへとコンパイルされ、サーバ上で主に特権を与えられた状態で実行される」とも述べている。
ひとことで言うとCoreOSは、DockerがUNIXスタイルのシンプルで再利用可能なコンポーネントではなく、プラットフォームになりつつあると考えているのだ。そしてCoreOSはそのようなものに興味を持ってはいない。
このため、CoreOSはRocketにより、Dockerが当初目指していた、コンテナのあるべき姿に戻ろうと提案しているわけだ。
CoreOSによると、Rocketには以下のような特徴があるという。
- 組み立て可能性:ダウンロードやインストール、コンテナ実行のためのツールはすべて、独立性と組み立て可能性を維持しながら、しっかりと統合されている必要がある。
- セキュリティ性:プラグイン形式の隔離が可能になっており、強固な認証のための暗号プリミティブ、イメージの監査(Audit)、アプリケーションの識別(Identity)は稼働開始時点で提供されていなければならない。
- イメージの配信:コンテナイメージの検索はシンプルに実行できなければならず、連合型の名前空間と、分散検索を支援できなければならない。これにより、BitTorrentといった代替プロトコルの可能性や、レジストリを必要とすることなしにプライベートな環境に配備するといった可能性がもたらされる。
- オープン性:フォーマットやランタイムはコミュニティーによって明確に定義され、開発されなければならない。われわれは独立して実装されたツール群を、同一のコンテナ上で整合性を維持したかたちで実行できるようにしたいと考えている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。