ペパ研 研究会 運用技術

コンテナ時代のWebサービス基盤モデル - FastContainerの研究発表をしてきました

ペパ研 研究会 運用技術

ペパボ研究所主席研究員の松本です。Twitter上ではまつもとりー(@matsumotory)と呼ばれています。2017年の6月24日に開催された、第38回インターネットと運用技術研究会で、「FastContainer: Webアプリケーションコンテナの状態をリアクティブに決定するコンテナ管理アーキテクチャ」について研究発表してきました。

論文(研究会予稿)とスライドを以下に公開します(論文画像をクリックするとPDFで読むことが出来ます)。

論文(研究会予稿)

FastContainer: Webアプリケーションコンテナの状態をリアクティブに決定するコンテナ管理アーキテクチャ

スライド

FastContainerを一言で表現すると、コンテナの状態遷移(停止・起動・複製・資源割り当ての変更処理など)の速度を効率化することに着目し、システム全体として恒常性を持ち、コンテナが高速に循環可能なWebサービス基盤を実現することによって、突発的なアクセス集中やライブラリのバージョンアップのような運用について効率的に対処する変化に強いアーキテクチャです。詳しくはスライドや論文をご覧ください。

本研究の立ち位置とコンテナ時代のWebサービス基盤モデル

FastContainerの研究をしていくなかで、FastContainerアーキテクチャとその実装は、これから増えていくであろうコンテナ技術に基づくWebサービスにおいて、どこを立ち位置にしているのかという点について、研究会でも議論が行われました。その中で、Webサービス基盤の研究開発を専門としているものとして、コンテナ時代のWebサービス基盤モデルを考えてみました。それが以下の図になります。

コンテナ時代のWebサービス基盤モデル

図のように上から、

  • サービス層
    • 実際のWebアプリやWebサービスのコンテンツ層
  • ストラテジー層
    • Webサービスの特性に合わせてコンテナ基盤をより特徴的に制御する層(FastContainerはここに属する)
  • オーケストレーション層
    • コンテナ群や収容ホスト群のモニタリングやリソース管理等によってCRIを介してコンテナを制御する層
  • コンテナランタイム層
    • コンテナそのものの制御層
  • インフラストラクチャ層
    • ハードウェアやVM、ベアメタル等のコンテナのリソースプールを実現する層

に大きく分類できるのではないかと考えています。ただし、ツール名やサービス名として具体的にあげているのは思いついたものを書いているだけで、他にも該当するツールはあるかと思います。

特に、オーケストレーション層の上のストラテジー層は、コンテナのオーケストレーションツール基盤の上に、さらにそれぞれのWebサービスの特性に合わせた戦略の層として位置するのではないかと考えました。例えば、今回はホスティングサービスのスケーリングや運用効率化に基づいた戦略としてFastContainerアーキテクチャを提案し、その上にのるWebアプリケーションのホスティング環境を改善していくことが目的でした。そういう意味では、ホスティングサービスにより特化した基盤として__FastContainerはストラテジー層に位置__し、オーケストレーション層に位置する各種ツールで実装可能であり、k8sやMarathonによって実現することも可能でしょう。ただ、現時点では、FastContainerアーキテクチャをより最適にオーバーヘッドなく実現するために、ペパボではHaconiwaと各種連携ツールによって構成される自社開発のNHHM Stackによって実装しています。

このようにコンテナ時代のWebサービス基盤をモデル化した時に、Haconiwaの実装においても、当然ながらContainer Runtime Interface(CRI)やOpen Container Initiative(OCI)に準拠した動きを将来的にできるようにすべきであることが明確になりますし、k8sのCRI APIにHaconiwaを対応させる未来も見えてくるでしょう。また、同様に、自社開発のNHHM Stackについても、その他のコンテナランタイムや、ここまでの議論ではストラテジー層に相当するRancherで動作するように対応すべきだといえますし、CRIに対応したコンテナランタイムは動作可能にすべきでしょう。このように、FastContainerアーキテクチャやHaconiwaのような新しいソフトウェアを自社や個人で開発していく中で、きちんとそのソフトウェアの立ち位置と比較対象を明確化し、各層の連携をより汎用化していくためにも、その他のツールとの連携や技術的背景を無視せずに、ツール開発者と議論しながら研究開発を続けていく必要があります。そういったことが、本研究会の中で明確になりましたので、引き続き広い視野を持つつつも、自分達の貢献の立ち位置を明確化して取り組んでいく予定です。

このように、私はWebサービス基盤技術について、__ユーザ体感と技術者体感を改善する__ことをテーマに継続的に研究開発しておりますので、是非興味をお持ちの方はご連絡下さい。以下が私の研究テーマになります。


【PR】パートナー積極採用中!

ペパボ研究所では、新しいパートナーを求めています。詳細については、当研究所のトップページをご覧ください。