一年前にFastContainer構想という記事を書いてから、主にアカデミアでFastContainerに関する研究をすすめたり、FastContainerに基いて実装されている「ロリポップ!マネージドクラウド」というロリポップ!の新しいプランのリリースに向けて取り組みを行ったりしておりました。
そこで、ブログでも「FastContainer: 実行環境の変化に素早く適応できる 恒常性を持つシステムアーキテクチャ」についての構想からのアップデートをまとめておきたいと思います。
英文タイトルは、
A Homeostatic System Architecture Rapidly Adapting Execution Environment Changes
です。
- はじめに
- 背景
- 目的
- 提案の概要
- Serverlessアーキテクチャによる実装との違い
- Herokuとの違い
- 仮想化基盤のスケーリングと運用技術の課題
- インスタンスの追加処理が低速であること
- ハードウェアリソースの利用効率の低さ
- その他の運用技術やセキュリティの課題
- Webサーバ機能のプロアクティブ性とリアクティブ性
- FastContainerアーキテクチャ
- アーキテクチャの要件
- 恒常性を持つアーキテクチャ
- FastContainerとコンテナ関連技術
- Haconiwa: コンテナランタイム
- 既存のコンテナランタイムとの比較
- コンテナのオーケストレーションソフトウェアとの比較
- コンテナを利用したWebサービス基盤モデル
- 状態遷移のアーキテクチャ
- HTTPベース
- TCP/UDPベース
- FastContainerの循環モデルとサービスレベル
- 負荷検知からスケールまでのアーキテクチャ
- FastContainerまとめ
- 実験と考察
- 実験環境の構成
- 実験方法
- 実験結果
- スケールアウト型
- スケールアップ型
- まとめ
- 今後の課題
- リソース効率化の実証実験
- サービスレベルとライフタイムや起動時間との関係性の定義
- コンテナの起動時間の影響を減らす取り組み
- スケーリングすべき状況の迅速な検知または誤検知の扱い
- スライド
- 参考文献
クラウドサービスやWebホスティングサービスの低価格化と性能の向上に伴い、コンテナ型の仮想化技術を活用することにより、複数のユーザ環境の収容効率を高めると同時に、セキュリティの担保とリソース管理を適切に行うことが求められている。一方で、障害時の可用性やアクセス集中時の負荷分散については依然として各システムに依存している。
本研究では、 HTTPリクエスト毎に、コンテナの起動、起動時間、起動数およびリソース割り当てをリアクティブに決定する、実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャを提案する。
提案手法により、アクセス集中時にはコンテナがHTTPリクエストを契機に、アクセス状況に応じて複製・破棄されることで、迅速に自動的な負荷分散が可能となる。さらに、コンテナが一定期間で破棄されることにより、収容効率を高め、ライブラリが更新された場合には常に新しい状態へと更新される頻度が高くなる。
続きを読む