スケーリングにおける Canary Upgrade の手法
Zilliz Cloud は、スケーリング操作に Canary Upgrade の手法を採用しています。プラットフォームはまず限定的な範囲でターゲット構成を検証し、ヘルスチェックが成功した後に段階的にロールアウトします。
Query CU の増減やレプリカ数の変更を行う際、Zilliz Cloud は新しい構成の準備と検証が完了するまで、クラスターを Modifying 状態にします。これにより、問題を早期に検出し、各ロールアウトステップの影響範囲を制限することで、サービスへの影響を最小限に抑えることを目的としています。
Canary Upgrade が重要な理由
Canary Upgrade は、変更を広く適用する前に、プラットフォームがターゲットリソースの健全性を検証する必要があるスケーリング変更のために設計されています。
-
Query CU の増減
-
レプリカ数の増減
-
手動、スケジュール、または動的スケーリングによるサービングリソースの調整
| メリット | 説明 |
|---|---|
| 初期の影響範囲の限定 | 新しい構成はまず限定的な範囲に導入されるため、変更を拡大する前に潜在的な問題を検出できます。 |
| ヘルスチェックに基づくロールアウト | Zilliz Cloud は、次のロールアウトステップに進む前に、準備状況とサービングの健全性を確認します。 |
| 段階的なトラフィック移行 | Canary ステージが正常であればトラフィックは徐々に移行されるため、キャパシティやレイテンシの急激な変動リスクを軽減できます。 |
| ロールバックパス | Canary が検証に合格しない場合、Zilliz Cloud はロールアウトを停止し、以前の利用可能な構成の使用を継続できます。 |
仕組み

Canary Upgrade を使用するスケーリング操作は、一般的に以下の順序で行われます。
| ステージ | 処理内容 |
|---|---|
| 以前の構成 | スケーリングジョブの開始中も、以前の利用可能な構成によるサービングが継続されます。 |
| ターゲットの準備 | Zilliz Cloud がターゲットの Query CU またはレプリカ構成を準備します。 |
| 限定 Canary | プラットフォームはまず限定的な範囲で新しいリソースを検証します。 |
| ヘルスゲート | チェックが失敗した場合、ロールアウトは停止され、クラスターは以前の利用可能な構成の使用を継続します。 |
| 段階的ロールアウト | チェックが成功した場合、Zilliz Cloud は制御されたステップでロールアウトを拡大し、スケーリングジョブを完了させます。 |
-
以前の構成を維持する スケーリングジョブの開始中も、クラスターは以前の利用可能な構成でサービングを継続します。この期間中、クラスターは
Modifying状態になる場合があります。 -
ターゲット構成を準備する Zilliz Cloud は、ターゲットの Query CU またはレプリカ構成に必要なリソースをプロビジョニングし、準備します。
-
限定 Canary を実行する プラットフォームはまず限定的な範囲で新しいリソースを検証します。Canary ステージでは、新しいリソースが必要なデータを読み込み、サービング状態を復元し、準備状況とヘルスチェックに合格できるかどうかが確認されます。
-
Canary の健全性を監視する Zilliz Cloud は Canary の準備状況、サービングの健全性、および遷移動作を監視します。Canary が期待される健全性基準を満たさない場合、ロールアウトは進行しません。
-
変更を段階的にロールアウトする Canary が正常であることが確認された後、Zilliz Cloud はロールアウトを拡大し、制御されたステップでサービングトラフィックをターゲット構成へ移行します。
-
スケーリングジョブを完了する ターゲット構成が完全に有効化され、健全な状態になると、スケーリングジョブが完了します。不要になったリソースは、サービングパスから外れた後にクリーンアップされます。
Canary Upgrade とクラウドネイティブストレージ
クラウドネイティブストレージは、永続データがコンピュートリソースから分離されているため、Canary ベースのスケーリングをより安全にします。
従来の多くのステートフルシステムでは、新しいノードを追加する際に、既存のノードがローカルデータを新しいノードへ再配置する必要があります。その間、既存のノードはオンライントラフィックへの対応とデータ転送を同時に行う必要があり、CPU、メモリ、ディスク I/O,、およびネットワークへの負荷が増大する可能性があります。
Zilliz Cloud では、永続データはオブジェクトストレージに保存されます。新しいリソースは、サービングトラフィックに参加する前に、必要なデータを独立して読み込むことができます。これにより、Canary ステージは、既存のサービングノードをローカルデータ転送のソースとして依存することなく、新しいリソースを検証できます。
スケーリング中に発生しうる事象
Canary Upgrade を用いたスケーリング操作中には、以下の現象が発生する可能性があります。
-
クラスターのステータスが
Modifyingに変わる場合があります。 -
Canary の準備と検証が行われている間、既存のサービスは通常、以前の利用可能な構成で実行を継続します。
-
一部の管理操作が一時的に利用できなくなる場合があります。
-
ロールアウトステージ間でトラフィックが移行される際、わずかなサービスのジッターが発生する場合があります。
-
新しい構成は、スケーリングジョブが正常に完了した後にのみ有効になります。
-
Canary またはその後のロールアウトステージが正常に完了できない場合、クラスターは以前の利用可能な構成の使用を継続します。
Canary Upgrade はスケーリング中のサービスへの影響を軽減しますが、すべての操作が完全にジッターフリーであることを保証するものではありません。レイテンシに敏感な本番ワークロードについては、可能な限りトラフィックの少ない時間帯に大規模なスケーリング変更を実行してください。