Skip to main content
QUICK REVIEW

[論文レビュー] Fractal: Automated Application Scaling

Masoud Koleini, Carlos Peñaherrera|arXiv (Cornell University)|Feb 25, 2019
Cloud Computing and Resource Management参考文献 22被引用数 4
ひとこと要約

Fractalは、開発者がアプリケーションコードにオ케ストレーションロジックを直接埋め込むことで、リアルタイムの負荷に基づいて動的かつアプリケーションに特化したレプリカのスケーリングを可能にする自己スケーリング型アプリケーションフレームワークを提案する。JitsuおよびOpen vSwitchと統合することで、レプリカの作成、ライフサイクル管理、障害回復、および透過的な負荷分散を自動化し、自己スケーリングウェブサイトのプロトタイプにおいて、性能オーバーヘッドがほとんどないことを実証した。

ABSTRACT

To date, cloud applications have used datacenter resources through manual configuration and deployment of virtual machines and containers. Current trends see increasing use of microservices, where larger applications are split into many small containers, to be developed and deployed independently. However, even with the rise of the devops movement and orchestration facilities such as Kubernetes, there is a tendency to separate development from deployment. We present an exploration of a more extreme point on the devops spectrum: Fractal. Developers embed orchestration logic inside their application, fully automating the processes of scaling up and down. Providing a set of extensions to and an API over the Jitsu platform, we outline the design of Fractal and describe the key features of its implementation: how an application is self-replicated, how replica lifecycles are managed, how failure recovery is handled, and how network traffic is transparently distributed between replicas. We present evaluation of a self-scaling website, and demonstrate that Fractal is both useful and feasible.

研究の動機と目的

  • 現代のクラウドアーキテクチャにおけるアプリケーションロジックとデプロイ構成を分離することの複雑さと硬直性に対処すること。
  • 一般的なオーケストレーションポリシーを越えて、アプリケーションレベルでのスケーリング意思決定を可能にすること。
  • マイクロサービスおよびユニコーンベースのシステムにおける完全自動化・アプリケーション主導のスケーリングの実現可能性を検討すること。
  • Kubernetesのような従来のオーケストレーションツールに伴う性能および管理のオーバーヘッドを低減すること。
  • アプリケーションに特化したスケーリングが、実世界のデプロイにおいても効率的かつ実用的であることを実証すること。

提案手法

  • アプリケーションがレプリカをプログラム的に作成および破棄できるようにするため、Jitsu制御スタックを単純なRPC APIで拡張する。
  • Open vSwitchとOpenFlowを用いて、共有IPアドレスを介してレプリカ間でネットワークトラフィックを透過的に分散する。
  • Irmin(分散型でバージョニングされたキー値ストア)を用いて、スケールダウン時にレプリカ間でアプリケーション状態(例:ログ)を管理およびマージする。
  • ミラージョーオペラシブ(MirageOS)ユニコーンを活用し、コンパクトで安全かつ型安全なアプリケーションイメージを実現し、細粒度のレプリケーションを可能にする。
  • ステート永続化を伴う、自己作成(負荷時)および自己破棄(アイドル時)を含むレプリカライフサイクル管理を実装する。
  • APIを介して公開されるアプリケーション固有のメトリクスにスケーリング意思決定をバインドすることで、細粒度で行動に特化した制御を可能にする。

実験結果

リサーチクエスチョン

  • RQ1アプリケーション開発者が、完全自動スケーリングを可能にするためにオーケストレーションロジックを直接コードに埋め込めるか?
  • RQ2パフォーマンスおよびリソースオーバーヘッドの観点から、アプリケーションレベルのスケーリングは従来のオーケストレーションと比べてどうか?
  • RQ3スケールダウン時に、データ損失や不整合を起こさずに、レプリカ間でステートを信頼性高くマージできるか?
  • RQ4自己スケーリングが応答時間、メモリフットプリント、ネットワーク構成に与える影響は何か?
  • RQ5このアプローチは、ユニコーンやMirageOSを越えて一般化可能か、どの程度まで?

主な発見

  • 自己スケーリングウェブサイトのプロトタイプは、負荷が増加する中で動的レプリカ作成により、パフォーマンス目標を維持した。
  • 負荷が低下すると、使用されていないレプリカは破棄され、そのログは主インスタンスに最小限のオーバーヘッドでマージされた。
  • パフォーマンスオーバーヘッドはほとんどなく、メモリフットプリントおよび応答時間のわずかな増加にとどまった。
  • OpenFlowスイッチルールの数は低く保たれ、スケーラブルなネットワーク構成であることが示された。
  • システムは、アプリケーションに特化したスケーリングが実世界のシナリオにおいて実現可能かつ効率的であることを実証した。
  • このアプローチは、プラグインインタフェースを通じて、従来のコンテナにも拡張可能であり、適応可能であることが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。