メインコンテンツまでスキップ

スケーリングにおける Canary Upgrade の手法

Zilliz Cloud は、スケーリング操作に Canary Upgrade の手法を採用しています。プラットフォームはまず限定的な範囲でターゲット構成を検証し、ヘルスチェックに合格した後に段階的にロールアウトします。

Query CU の増減やレプリカ数の変更を行う際、Zilliz Cloud は新しい構成の準備と検証を行っている間、クラスターを Modifying 状態にします。これは、問題を早期に検出し、各ロールアウトステップで影響を受ける範囲を限定することで、サービスへの影響を軽減することを目的としています。

Canary Upgrade が重要な理由​

Canary Upgrade は、変更を広く適用する前に、プラットフォームがターゲットリソースが正常であることを検証する必要があるスケーリング変更を対象としています。

  • Query CU の増減

  • レプリカ数の増減

  • 手動、スケジュール、または動的スケーリングによるサービングリソースの調整

メリット説明
初期の影響範囲の限定新しい構成はまず限定的な範囲に導入されるため、変更を拡大する前に潜在的な問題を検出できます。
ヘルスチェックに基づくロールアウトZilliz Cloud は、次のロールアウトステップに進む前に、準備状況とサービングの健全性を確認します。
段階的なトラフィック移行Canary ステージが正常になった後にトラフィックが徐々に移行されるため、キャパシティやレイテンシが急激に変動する可能性を軽減できます。
ロールバックパスCanary が検証に合格しない場合、Zilliz Cloud はロールアウトを停止し、以前の利用可能な構成の使用を継続できます。

仕組み​

ITCnb4yRSoNlvgxb5cGcLjNInig

Canary Upgrade を使用するスケーリング操作は、通常、次の順序で実行されます。

ステージ処理内容
以前の構成スケーリングジョブの開始中も、以前の利用可能な構成によるサービングが継続されます。
ターゲットの準備Zilliz Cloud は、ターゲットの Query CU またはレプリカ構成を準備します。
限定 Canaryプラットフォームはまず限定的な範囲で新しいリソースを検証します。
ヘルスゲートチェックが失敗した場合、ロールアウトは停止し、クラスターは以前の利用可能な構成の使用を継続します。
段階的ロールアウトチェックに合格した場合、Zilliz Cloud は制御されたステップでロールアウトを拡大し、スケーリングジョブが完了するまで続けます。
  1. 以前の構成を利用可能な状態に保つ クラスターは、スケーリングジョブの開始中も、以前の利用可能な構成でサービングを継続します。この期間中、クラスターは Modifying 状態になる場合があります。

  2. ターゲット構成を準備する Zilliz Cloud は、ターゲットの Query CU またはレプリカ構成に必要なリソースをプロビジョニングして準備します。

  3. 限定 Canary を実行する プラットフォームはまず限定的な範囲で新しいリソースを検証します。Canary ステージでは、新しいリソースが必要なデータをロードできるか、サービング状態を復元できるか、準備状況とヘルスチェックに合格できるかが確認されます。

  4. Canary の健全性を観察する Zilliz Cloud は、Canary の準備状況、サービングの健全性、および移行動作を監視します。Canary が期待される健全性基準を満たさない場合、ロールアウトは進行しません。

  5. 変更を段階的にロールアウトする Canary が正常になった後、Zilliz Cloud はロールアウトを拡大し、制御されたステップでサービングトラフィックをターゲット構成へ移行します。

  6. スケーリングジョブを完了する ターゲット構成が完全に有効になり、正常な状態になると、スケーリングジョブが完了します。不要になったリソースは、サービングパスから外れた後にクリーンアップされます。

Canary Upgrade とクラウドネイティブストレージ​

クラウドネイティブストレージは、永続データがコンピュートリソースから分離されているため、Canary ベースのスケーリングをより安全にするのに役立ちます。

従来の多くのステートフルシステムでは、新しいノードを追加する際に、既存のノードがローカルデータを新しいノードへ再配置する必要があります。その間、既存のノードはオンライントラフィックへの対応とデータ転送を同時に行う必要があり、CPU、メモリ、ディスク I/O,、およびネットワークへの負荷が増大する可能性があります。

Zilliz Cloud では、永続データはオブジェクトストレージに保存されます。新しいリソースは、サービングトラフィックに参加する前に、必要なデータを独立してロードできます。これにより、Canary ステージは、既存のサービングノードをローカルデータ転送のソースとして頼ることなく、新しいリソースを検証できます。

スケーリング中に発生しうる事象​

Canary Upgrade を用いたスケーリング操作中には、次のような現象が発生する可能性があります。

  • クラスターのステータスが Modifying に変わる場合があります。

  • Canary の準備と検証が行われている間、既存のサービスは通常、以前の利用可能な構成で実行を継続します。

  • 一部の管理操作が一時的に利用できなくなる場合があります。

  • ロールアウトステージ間でトラフィックが移行される際に、わずかなサービスのジッターが発生する場合があります。

  • 新しい構成は、スケーリングジョブが正常に完了した後にのみ有効になります。

  • Canary またはそれ以降のロールアウトステージを正常に完了できない場合、クラスターは以前の利用可能な構成の使用を継続します。

Note

Canary Upgrade はスケーリング中のサービスへの影響を軽減しますが、すべての操作が完全にジッターなしで実行されることを保証するものではありません。レイテンシに影響されやすい本番ワークロードでは、可能な場合は、トラフィックの少ない時間帯に大規模なスケーリング変更を実行してください。