BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Supergiant.io - ステートフルアプリケーションのためのコンテナプラットフォーム

Supergiant.io - ステートフルアプリケーションのためのコンテナプラットフォーム

原文(投稿日:2016/05/16)へのリンク

Supergiantは、Kubernetesを使って構築された、分散ステートフルアプリケーションのためのコンテナホスティング・プラットフォームだ。Elasticsearchのホスティングを提供するQbox.ioチームによって作られた。

Supergiantは、ステートフルでクラスタ型のアプリケーションをホストするDockerコンテナを動かすフレームワークだ。Kubernetesを利用しているが、永続ストレージや外部ロードバランシングなど、Kubernetesがうまくいかない場合のために独自の構造とコードが含まれている。その技術詳細について知るため、InfoQはQboxのCEOで共同創業者でありSupergiantの作者、Mark Brandon氏にコンタクトした。

QBox.ioチームはElasticsearchのホスティングから始めたのだが、そこで「noisy neighbor」問題によりスケールできないなどの課題に直面したという。ブログによると、ネットワーク化されたコンテナおよびボリュームを管理するのに、DockerとKubernetesが適切な選択であるように思ったという。

Supergiantにデプロイされるアプリケーションのストレージは、高可用性アレイに割り当てられるが、Kubernetesの永続ボリュームを使っていない。SupergiantはAmazonのElastic Block Store (EBS) を使っており、ボリュームはクラスタを自由に動くことができる。EBSボリュームは、仮想マシンにプラグ/アンプラグ(マウント/アンマウント)できるハードドライブのように振る舞うという。EBSボリュームはノードサーバーのリブートを越えて永続されるため、ノードが落ちてもデータが失われることはない。

KubernetesにはネイティブのロードバランシングとHA機能がある。Brandon氏によると、Supergiantチームは特に、外部ロードバランシングのためのコードを書いたという。「Kubernetesは内部ロードバランシングをうまく扱えるのですが、その外部ロードバランシング戦略はElasticsearchのような分散アプリケーションにとって決して理想的なものではありません。」

Supergiant上のアプリケーションとして動かすには、ソフトウェアの一部を"Component"としてパッケージングする必要がある。コンポーネントはNoSQLデータベースや、Webサーバー、node.jsアプリになる。Brandon氏によると「Docker化されたアプリケーションはコンポーネントになる」という。Supergiantはコンポーネントを定義するHTTPベースのAPIを提供している。

AWS上で動くアプリケーションの要件のひとつは、次のレベルであるクロスリージョンをサポートし、アベイラビリティゾーン (AZ) 障害に耐性があることだ。Brandon氏によると、SupergiantはAWSゾーンを越えるクラスタの管理に取り組んでいるという。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT