vSphere

VMware Photon Controller をオープンソース化

VMwareは、クラウド ネイティブ アプリのために 2 種類のプラットフォームを用意しています。既存の vSphere を拡張することでコンテナに対応する「vSphere Integrated Containers」と、コンテナに最適化された新しいプラットフォーム「VMware Photon Platform」です。本記事では、Photon Platform のコア コンポーネントである Photon Controller について説明します。

Photon Controller の GitHub ページを公開

Photon Platform は、大規模なクラウド ネイティブ アプリの環境を作るための新しいプラットフォームで、コンテナ専用の軽量なマイクロバイザーである「Photon Machine」と、分散型の制御系である「Photon Controller」から構成されます。Photon Platform は、分散型で API 指向、そしてマルチテナントに対応可能であり、超大規模で瞬時に構成が変更されるようなクラウド ネイティブ アプリ環境に合わせて設計されています。
8 月に VMworld でクラウド ネイティブ アプリのためのこの新しいプラットフォームを発表したとき、Photon Controller をオープンソース化すると私たちは発表しました。本日、この約束を私たちが果たしたことをお伝えできることを嬉しく思います。私たちは、Photon Controller の GitHub ページを公開しました。
スクリーンショット 2015-11-18 7.03.26
開発者や顧客、パートナーはこの新しいテクノロジーに直接アクセスすることができます。もしあなたがコードの内容またはフォークに興味がある開発者なら、GitHub ページをぜひご覧ください。
もしあなたが、このソフトウェアをどのように使えるかに興味があるなら、Getting Started Guide をぜひご覧ください。このドキュメントに沿って作業すれば、あなたのデスクトップ/ラップトップ上で完全な Photon Controller システムを起動することができます。

Photon Controller のアーキテクチャ

Photon Controller は、分散型で高度にスケーラブルなファブリックとして構築されています。Photon Controller 自身が、クラウド ネイティブ アプリのアーキテクチャに基づいて設計されていると言えるでしょう。Photon Controller の技術的なアーキテクチャを下図に示します。
PC-Architecture2
Photon Controller は優れた分散型のスケジューラを実装しています。各スケジューラ サービス ノードは、ツリー上の階層型に組まれています。各ノードは負荷および利用率に関する重要な統計情報を親ノードに送り、親ノードはその情報をベースにリクエストを子ノードにルーティングします。このようにして、スケジューラは負荷が特定の箇所に集中することを防ぎます。
Photon Controller はたくさんの疎結合のコンポーネントやサービスから構成されます。それらは Apache Zookeeper にエンドポイントとして登録され、分散型のコーディネーションを通して管理されます。Zookeeper を使うことで、アクティブ/アクティブ型のスケールアウトのサービスやアクティブ/パッシブ型のサービスなどを構成できます。
外部 API は REST/JSON インタフェースで提供されています。外部 REST/JSON API は、スケールアウトされる API サーバのセットを通して公開され、状態は永続的なデータベース CloudStore に保持されます。ロードバランサーが API サーバの手前に置かれます。
CloudStore は、コンテナ、クラスタ、VM、ディスク、ネットワークなどの、Photon Controller で管理される全てのオブジェクトに対する情報を管理します。CloudStore は、高いスケーラビリティや可用性の要件に合うように設計されています。
CloudStore は、私たちがまた本日オープンソース化した Project Xenon という、全く新しいフレームワークを用いて実装されています。Xenon は、高度にスケーラブルなコンポーネントをマイクロサービスの集合体として構築することを可能にします。すべてのサービスは Java を使って、そしてほとんどのサービスが Xenon を使って書かれています。
Photon Controller により管理される各物理ホストは、RPC インタフェースを提供するエージェントを持っており、これを通してホストと各コンポーネントが通信します。このエージェントはハイパーバイザー非依存で設計されていますが、いまのところ ESX 用に python で書かれており、ESX とパブリック API を通して通信します。
多くの特別なコンポーネントが、他のコンポーネントの健全性を監視しています。たとえば、’Chairman’ はスケジューラの健全性とツリートポロジを監視しています。そして、’Housekeeper’ コンポーネントがクリーンアップ処理を行います。システムはセルフヒーリングを指向した設計になっているため、クリーンアップは外部 API で開始されるのではなく、内部のコンポーネントによって開始され、単にログを残すだけでなく自動的な解決を図るようになっています。
Photon Controller を利用されたら、ぜひ Google Group からフィードバックをお願いします!
また、Photon Platform 自体は、現在プライベートベータとして提供されています。ご興味ある場合は、ぜひヴイエムウェアの担当までお知らせください。

参考記事: VMware Photon Controller Deep Dive
参考記事: vSphere Integrated Containers テクノロジー ウォークスルー
参考記事: 企業のコンテナ利用を加速する vSphere Integrated Containers