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

スケーリングにおける 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 はスケーリング中のサービスへの影響を軽減しますが、すべての操作が完全にジッターフリーであることを保証するものではありません。レイテンシに敏感な本番ワークロードについては、可能な限りトラフィックの少ない時間帯に大規模なスケーリング変更を実行してください。

Ctrl I