AHPA Resilience Forecasting Best Practices
クラウドネイティブシナリオでは、リソースキャパシティを事前に把握することが困難な場合が多く、K8s ネイティブの HPA を使用すると、スケーリングの遅れや複雑な設定といった問題に直面することがよくあります。Alibaba Cloud Container Service が Dharma Academy の Decision Intelligence Timing チームと協力して立ち上げた AHPA(Advanced Horizontal Pod Autoscaler)弾力的予測は、ビジネスの履歴指標に基づいて弾性周期を自動的に識別し、キャパシティを予測できるため、事前に弾性計画を立て、弾性の遅れ問題を解決できます。AHPA を設定して最適な使用方法を実現するにはどうすればよいでしょうか?この記事では、AHPA 弾力的予測のベストプラクティスをご紹介します。以下、いくつかの側面から紹介します。
• AHPA 弾力的予測の概要
• 指標ソースと AHPA 設定パラメータの紹介
• 境界保護の適用
• ノイズリダクションとアルゴリズム分位数でできること
• 典型的なシナリオ:HPA から AHPA へ
• 典型的なシナリオ:弾力的レコメンデーション
AHPA 弾力的予測の概要
なぜ弾力的予測が必要なのでしょうか?まず、現在のアプリケーションにはコールドスタートの問題があります。アプリケーションの起動ステージを見てみると、リソーススケジューリング、イメージのプル、コンテナ作成、コンテナ起動、アプリケーション起動などが含まれます。IaaS リソース割り当て、Kubernetes スケジューリング、イメージのプルなどの問題を解決するだけでなく、コールドスタートにはアプリケーションの起動時間も含まれます。アプリケーションの起動時間はミリ秒から分までさまざまです。アプリケーションの起動時間は完全にビジネス動作に依存し、基盤プラットフォームレベルで制御することはほとんどできません。
さらに、現在の一般的な弾性ソリューションは、可用性の低さ、キャパシティの推定不可、数量不足、過剰な浪費などの問題に直面しています。安定性リスク後の弾性設定が固定化され、可用性が低く、設定が煩雑です。たとえば、スケジュールされた CronHPA では、各期間でどの程度のキャパシティを拡張・縮小するかを評価する必要があり、ビジネスの変化に応じて随時調整する必要があります。
私たちは弾性の中核問題を次のように考えています。ビジネスの安定性を確保しながら、リソースの利用率を向上させることです。
履歴データと機械学習アルゴリズムに基づいて、将来必要なリソース数を事前に予測できれば、上記の問題を回避できます。このアイデアを中心に、何が必要でしょうか?
まず、履歴指標データが必要です。これが予測の前提条件です。次に、予測アルゴリズムが必要です。アルゴリズムを通じて将来必要なリソース数を予測します。最後に、ワークロードに適用します。これを弾力的予測の三点セットとしてまとめました。もちろん、目標はリソースを事前にウォームアップし、柔軟に自動計画を行い、安定性を確保するために柔軟なダウングレードをサポートすることです。
スキームは次のように実装されます。
• 豊富なデータ指標:CPU、Memory、QPS、RT、外部指標を含む
• 安定性保証:AHPA の弾性ロジックは、アクティブなウォームアップ戦略とパッシブなボトムアウト戦略に基づき、ダウングレード保護と組み合わせてリソースの安定性を確保します。
• アクティブ予測:履歴に基づいて、一定期間の将来のトレンド結果を予測します。周期性のあるアプリケーションに適用できます。
• パッシブ予測:リアルタイム予測。急激なトラフィックシナリオでは、パッシブ予測を通じてリアルタイムにリソースを準備します。
• ダウングレード保護:最大値と最小値の時間範囲を持つ複数のインスタンスの設定をサポートします。
• 複数のスケーリング方法:AHPA は、Knative、HPA、Deployment を含むスケーリング方法をサポートします。
• Knative:サーバーレスアプリケーションシナリオで、同時実行数/QPS/RT に基づく柔軟なコールドスタート問題を解決します。
• HPA:HPA の弾性ポリシー設定を簡素化し、ユーザーの弾性しきい値を下げ、HPA 使用時のコールドスタート問題を解決します。
• Deployment:Deployment を直接使用して、自動的にキャパシティを拡張・縮小します。
利点:
AHPA を通じて、ミリ秒レベルの予測と秒レベルの弾性を実現でき、複雑な周期の識別率は 95% 以上に達します。同時に、堅牢性と分レベルの境界保護設定をサポートしています。
AHPA ベストプラクティス設定
指標ソースの設定
まず、指標ソースの設定について紹介します。ここでは、ConfigMap を通じて対応する指標ソースを設定します。詳細は以下の通りです。
AdvancedHorizontalPodAutoscaler の設定
AHPA では、AdvancedHorizontalPodAutoscaler を使用して、弾性ポリシー、ターゲットオブジェクト、拡張・縮小の時間境界を設定します。詳細は以下の通りです。
指標の前処理
指標データの品質が均一でないため、AHPA では指標の前処理が必要です。これには、指標の重複排除、指標の補充、指標のクレンジングが含まれます。アプリケーションが起動する際、起動プロセス中に CPU 使用率が比較的高くなる現象に遭遇することがよくあります。Java アプリケーションを例にとると、クラスローディングプロセスは CPU を集中的に使用します。この状況はビジネスフロー自体によって引き起こされるものではないため、このような指標は予測指標の入力に参加させる必要がなく、クレンジングしてフィルタリングする必要があります。したがって、指標の前処理を通じて、この部分の予測干渉を排除します。
境界保護設定の柔軟な使用
AHPA では、異なる時間期間の最大値と最小値を設定できるため、指標の異常や弾力的予測の不正確な場合でも、ボトムアップ戦略を持つことができます。
• AHPA 弾力的予測の概要
• 指標ソースと AHPA 設定パラメータの紹介
• 境界保護の適用
• ノイズリダクションとアルゴリズム分位数でできること
• 典型的なシナリオ:HPA から AHPA へ
• 典型的なシナリオ:弾力的レコメンデーション
AHPA 弾力的予測の概要
なぜ弾力的予測が必要なのでしょうか?まず、現在のアプリケーションにはコールドスタートの問題があります。アプリケーションの起動ステージを見てみると、リソーススケジューリング、イメージのプル、コンテナ作成、コンテナ起動、アプリケーション起動などが含まれます。IaaS リソース割り当て、Kubernetes スケジューリング、イメージのプルなどの問題を解決するだけでなく、コールドスタートにはアプリケーションの起動時間も含まれます。アプリケーションの起動時間はミリ秒から分までさまざまです。アプリケーションの起動時間は完全にビジネス動作に依存し、基盤プラットフォームレベルで制御することはほとんどできません。
さらに、現在の一般的な弾性ソリューションは、可用性の低さ、キャパシティの推定不可、数量不足、過剰な浪費などの問題に直面しています。安定性リスク後の弾性設定が固定化され、可用性が低く、設定が煩雑です。たとえば、スケジュールされた CronHPA では、各期間でどの程度のキャパシティを拡張・縮小するかを評価する必要があり、ビジネスの変化に応じて随時調整する必要があります。
私たちは弾性の中核問題を次のように考えています。ビジネスの安定性を確保しながら、リソースの利用率を向上させることです。
履歴データと機械学習アルゴリズムに基づいて、将来必要なリソース数を事前に予測できれば、上記の問題を回避できます。このアイデアを中心に、何が必要でしょうか?
まず、履歴指標データが必要です。これが予測の前提条件です。次に、予測アルゴリズムが必要です。アルゴリズムを通じて将来必要なリソース数を予測します。最後に、ワークロードに適用します。これを弾力的予測の三点セットとしてまとめました。もちろん、目標はリソースを事前にウォームアップし、柔軟に自動計画を行い、安定性を確保するために柔軟なダウングレードをサポートすることです。
スキームは次のように実装されます。
• 豊富なデータ指標:CPU、Memory、QPS、RT、外部指標を含む
• 安定性保証:AHPA の弾性ロジックは、アクティブなウォームアップ戦略とパッシブなボトムアウト戦略に基づき、ダウングレード保護と組み合わせてリソースの安定性を確保します。
• アクティブ予測:履歴に基づいて、一定期間の将来のトレンド結果を予測します。周期性のあるアプリケーションに適用できます。
• パッシブ予測:リアルタイム予測。急激なトラフィックシナリオでは、パッシブ予測を通じてリアルタイムにリソースを準備します。
• ダウングレード保護:最大値と最小値の時間範囲を持つ複数のインスタンスの設定をサポートします。
• 複数のスケーリング方法:AHPA は、Knative、HPA、Deployment を含むスケーリング方法をサポートします。
• Knative:サーバーレスアプリケーションシナリオで、同時実行数/QPS/RT に基づく柔軟なコールドスタート問題を解決します。
• HPA:HPA の弾性ポリシー設定を簡素化し、ユーザーの弾性しきい値を下げ、HPA 使用時のコールドスタート問題を解決します。
• Deployment:Deployment を直接使用して、自動的にキャパシティを拡張・縮小します。
利点:
AHPA を通じて、ミリ秒レベルの予測と秒レベルの弾性を実現でき、複雑な周期の識別率は 95% 以上に達します。同時に、堅牢性と分レベルの境界保護設定をサポートしています。
AHPA ベストプラクティス設定
指標ソースの設定
まず、指標ソースの設定について紹介します。ここでは、ConfigMap を通じて対応する指標ソースを設定します。詳細は以下の通りです。
AdvancedHorizontalPodAutoscaler の設定
AHPA では、AdvancedHorizontalPodAutoscaler を使用して、弾性ポリシー、ターゲットオブジェクト、拡張・縮小の時間境界を設定します。詳細は以下の通りです。
指標の前処理
指標データの品質が均一でないため、AHPA では指標の前処理が必要です。これには、指標の重複排除、指標の補充、指標のクレンジングが含まれます。アプリケーションが起動する際、起動プロセス中に CPU 使用率が比較的高くなる現象に遭遇することがよくあります。Java アプリケーションを例にとると、クラスローディングプロセスは CPU を集中的に使用します。この状況はビジネスフロー自体によって引き起こされるものではないため、このような指標は予測指標の入力に参加させる必要がなく、クレンジングしてフィルタリングする必要があります。したがって、指標の前処理を通じて、この部分の予測干渉を排除します。
境界保護設定の柔軟な使用
AHPA では、異なる時間期間の最大値と最小値を設定できるため、指標の異常や弾力的予測の不正確な場合でも、ボトムアップ戦略を持つことができます。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
