Platform9は、同社が先日ローンチしたマルチクラウド対応のマネージドKubernetesと、そのKubernetes上で動作するオープンソースのサーバレスフレームワークである‘Fission’とを組み合わせて、Web-UIを装備したKubernetesクラスタのデプロイメントサービス‘Kube2Go’をリリースした。
Platform9の‘Kube2Go’デプロイメントサービスでは、StackpointやKClusterといった既存のサービスと同様の方法で、WebベースのUIから高可用性のKubernetesクラスタを作成することが可能になる。現時点ではAWSベースのクラウド環境へのデプロイのみがサポート対象だが、プロジェクトのブログによれば、Microsofe AzureとGoogle Cloud Platformのサポートも近日中に予定されている。
'kops' CLIツールを使用すれば、‘プロダクショングレード’のKubernetsクラスタを手作業でデプロイすることが可能である。ただし、クラスタのライフサイクル全体を自分で管理する必要がある点と、タスク独特の複雑さから、いくつかのSaaSベースの製品がこの分野に登場している。今回リリースされたKube2Goサービスを例にすれば、Platform9インフラストラクチャには依存しない、 一般性を持ったマネージドKubernetesサービスの可用性を提供している。このマネージドサービスでは、すべてがSaaSソリューションとしてデプロイおよび運用される。また、資料によれば、このプラットフォームがプロビジョンするKubernetesクラスタはすべて、オンプレミスのベアメタルサーバとパブリッククラウドインフラストラクチャを‘自由に組み合わせ’て使用することが可能だ。
Platform9マネージドKubernetesの主な機能は次のとおりである。
- ‘ピュアプレイ(pure-play)’ Kubernetes: Platform9が管理するKubernetesサービスは、オープンソースプラットフォームのアップストリームリリースをSaaSとしてパッケージする。
- エンタープライズ統合: エンドツーエンドのセキュリティ、SSOインテグレーションを使用したユーザクォータのマルチテナント制御、外部(クラウドベンダ)の永続ストレージおよびロードバランサとの統合など、いくつかのKubernetes統合がすぐに利用可能である。
- 高可用性:マネージドKubernetesは、プライベートクラウド環境およびパブリッククラウド環境のアベイラビリティゾーンにまたがった、可用性の高い、マルチマスタかつマルチetcdのKubernetesクラスタを生成する。
- OpenStackデプロイメントとの統合: Kubernetesマネージドサービスは、Platform9マネージドOpenStackサービスと同じユーザーインターフェイスポータルを使用して実行および管理可能である。
InfoQは先日、Platform9プロダクトの共同設立者で副社長のMadhura Maskasky氏から話を聞く機会を得た。氏は新サービスの特徴として、複数のクラウドを組み合わせ可能な点をあげている。
パブリック/プライベートのハイブリッドクラウドは企業にとって、ロックインを回避して異なるベンダの価格設定を活用してコストコンプライアンスを確保するための、必要悪であると見ることができます。この目標の実現は、純粋な仮想化テクノロジでは難しいかもしれません。そのため、コンテナがデファクトの展開単位になりつつあるのです。私たちはKubernetesを、既存の仮想化テクノロジを越えた重要な抽象化層であると考えています。
Platform9マネージドKubernetes製品に関する詳細な情報は、同社のWebサイトで確認できる。同じ種類のマネージドKubernetes製品としては、他にCoreOS Tectonic、Google GKE、Giant Swarm Microservices Platformなどがある。
Platform9はさらに、Kubernetes上に構築されたオープンソースのファンクション・アズ・ア・サービス(FaaS)‘サーバレス’フレームワークであるFissionもリリースした。Fissionは‘コードのみで運用’される。基盤となっているコンテナおよびスケジューラ技術であるDockerとKubernetesは、通常の運用においては抽象化されているが、拡張が必要な場合にはアクセスすることも可能だ。
FissionのコアはGo言語で書かれているが、言語固有のコンポーネントは‘環境’と呼ばれる部分に分離されている。これは本質的にWebサーバと動的ローダを備えたコンテナであり、Cloud FoundryやHerokuと概念的に近いものだ。現行のアルファ版ではNodeJSとPythonがサポートされているが、近日中により多くの言語(NETやphp7など)に対応する予定である。開発者が独自のカスタム環境を作成することも可能だ。
Fissionの‘関数(function)’は特定のインターフェースに従ったコードブロックで、イベントにマップされることで起動される。現在はHTTPルート、タイマ、Kubernetesイベントがイベントトリガとしてサポートされている。イベントトリガに対する応答性を高めるためにFissionは、小さなダイナミックローダを備えた“半起動(Warm)”状態のコンテナのプールを保持する。関数の最初の呼び出し、つまり‘コールドスタート’が行われると、実行中のコンテナが選択され、その関数がロードされる。資料によると、一般的なコールドスタートによる遅延は約100msである。
想定されるユースケースは次のようなものだ。
- シンプルなREST APIのデプロイ: サーバ管理の必要なく、Webアプリケーションやモバイルアプリケーション用のAPIバックエンドを開発することが可能になる。開発者がファンクションコードを記述すれば、FissionがKubernetesを介して展開、ルーティング、スケーラビリティ、および可用性の管理を行なう。
- 'ボット'およびWebフックの作成: FissionをWebフックの実装に使用することができる。関数をURLトリガにマップして、サードパーティのWebhookでそのURLをポイントすればよい。
- Kubernetesイベントの処理:FissionはKubernetesウォッチをベースにしたトリガ機能をサポートする。例として、あるラベルに一致する特定の名前空間内のすべてのポッドを監視するように関数を設定することで、イベントハンドラ関数を簡単なモニタ機能として使用することができる。
FissionのコードベースはFission GitHubリポジトリから取得可能である。同じような種類のオープンソースプロジェクトとしては、Skippboxのkubeless, fabric8のfunktion、ApacheのOpenWhiskなどがある。
この記事を評価
- 編集者評
- 編集長アクション