エラスティック クラウド製品とサービス: Snowflake の Protect ウォッチ オーバー プレーンのスケーリング
学習内容は?
Snowflakeは、グローバルに分散した情報ウェアハウスを作成する組織です
このホワイト ペーパーでは、エラスティック クラウド製品およびサービス (ECS) のアセンブルと実装について説明します。 は、ワークロードのオーケストレーションを担当する会社のインフラストラクチャの重要な要素です。 ECS により、プラットフォームは効率的に、最小限のダウンタイムでより多くの情報を処理できます。 「スノーフレーク」を参照Elastic Data Warehouse および
- Disaggregated Storage での Elastic Ask Engine の構築。 後者には、
- この論文の貢献は何ですか?
この論文は 2 つの重要な貢献をしています:
- private と の実装) エラスティック クラウド製品とサービス、大規模な防衛監視機
見張りの飛行機を守るには、古い紙のレビューで達成することが含まれています、 シャード スーパーバイザー: 地理的に分散されたアプリケーションのための汎用シャード管理フレームワーク のように. Snowflake
- 本番展開からの ECS の評価と特徴付け
背景Snowflake インフラストラクチャは 3 つの重要なレイヤーに分割されます。 エラスティック クラウド製品とサービス (本書の焦点)、ユーザー クエリの実行を担当する Ask Processing レイヤー購入者のデータセット、および オブジェクト ストレージ (保持されます)データベース データ)。 Snowflake の頑丈な構造は、このホワイト ペーパーの焦点ではなくなり、古い学習
古い学習へのハイパーリンクについては、このホワイト ペーパーの概要の冒頭にあるサイドバーを参照してください。 .
Snowflake インフラストラクチャは 3 つの重要なレイヤーに分割されます。 エラスティック クラウド製品とサービス (本書の焦点)、ユーザー クエリの実行を担当する Ask Processing レイヤー購入者のデータセット、および オブジェクト ストレージ (保持されます)データベース データ)。 Snowflake の頑丈な構造は、このホワイト ペーパーの焦点ではなくなり、古い学習
すべての Snowflake バイヤーは、1 つまたは追加の Snowflake ウェアハウスを構成できます 倉庫の詳細はこちら ここ. 、さまざまなツールのユーザー間の分離を提供します。 バイヤーが倉庫を構成すると、バージョンが割り当てられます
どのように機能しますか? エラスティック クラウド製品とサービス (ECS) この論文は、ECS の 3 つの重要な側面を専門としています:
コンピューター化されたコード管理:製品を動かしているコードは正確な基礎の上でアップグレードされ、ECS はこれらのアップグレードに自動的かつ確実に対処するように設計されています。- アベイラビリティ ゾーン間での負荷の分散 : ECS は、uncover のいくつかのクラウド企業間で負荷を調整し、障害の片側を削減します。
)スロットリングと自動スケーリング: お客様からのリクエストの変更劇的に拡張でき、ECS c おそらくまた、これらの質問に手を貸す準備ができている可能性があります(追加のリソースを含めることでこれを達成する全体について)
ECS
クラスタースーパーバイザーがこれらの業務を担当します。 ユーザーが最近のクラスターの導入を要求すると、Cluster Supervisor 親愛なるリソースをプロビジョニングし、指定されたクラウド会社
にクラスターを作成しますSnowflake がサポートするクラウド企業 (およびその方法) に関する詳細情報は、
彼らのドキュメント
. 。 Cluster Supervisor も、クラスターを防御監視に登録します。これは、ECS クラスターのアクションを調整し、コンピューティング リソースに対するユーザー クエリをスケジュールする責任があります ( ウェアハウス の使用率で表されます) ))。 クラスターが登録されるとすぐに、バイヤーのクエリを受け入れ、dear 処理を生成する準備が整います。
コンピューター化されたコード管理
さらに彼らは
保留中の習慣の調整 をシステムにファイルします。 。 ECS は、段階的に調整をロールアウトして、購入者に悪影響が及ぶ可能性を大幅に減らすように設計されています。 このジョブは完全にコンピュータ化されており、人為的エラーを大幅に削減し、最近のコードの迅速かつ評判の良いロールアウトを検証します。 また、VM がシャットダウンする前にクエリを完全に実行できるようにするなど、購入者のクエリが中断されないようにする手段も含まれていますこの論文は、ECS の 3 つの重要な側面を専門としています:
- コンピューター化されたコード管理:製品を動かしているコードは正確な基礎の上でアップグレードされ、ECS はこれらのアップグレードに自動的かつ確実に対処するように設計されています。
- アベイラビリティ ゾーン間での負荷の分散 : ECS は、uncover のいくつかのクラウド企業間で負荷を調整し、障害の片側を削減します。
)スロットリングと自動スケーリング: お客様からのリクエストの変更劇的に拡張でき、ECS c おそらくまた、これらの質問に手を貸す準備ができている可能性があります(追加のリソースを含めることでこれを達成する全体について)
ECS
クラスタースーパーバイザー にクラスターを作成しますSnowflake がサポートするクラウド企業 (およびその方法) に関する詳細情報は、
彼らのドキュメント
クラウド製品に更新をロールアウトするにはおよびサービス クラスターの場合、ECS は最初に最新の仮想マシン (VM) を up as now ツール バージョンで準備します。 次に、ECS はキャッシュをウォーミングしてマシンを準備します この論文では、キャッシュがどのように機能するかについての詳細は示されていません。ウォームアップしましたが、おそらく、2番目に実行するバイヤークエリが最近のマシンに転送される「影のロールアウト」によるものであることに間違いなく賭けることができます. 、最近の VM へのユーザー クエリの送信を開始します。
進行中のクエリの中断を最小限に抑えるため、VM の使用率は古いバージョンは、ワークロードが完了するまで目標を達成し続けます。 ツールの最近のバージョンと脆弱なバージョンを同時に使用して仮想マシンを動作させることは、リソースの面で非常に高価ですが、購入者の影響のトーナメントで急いでロールバックすることができます
SRE電子書籍
. 。 さらに、顧客は、最近のバージョンでのリグレッションのスキルがあれば、Snowflake のコードの特定のバージョンにピン留めすることができますプール
大規模な場合、マシンは非常に多様な理由で失敗したり、最適に生産されなかったりします
基本的にこの監視に基づいて、ECS クラスター スイミング プール の間で VM を攻撃し、すべてのリソースが一致します。 VM のライフサイクルの 5 つの決定された段階の 1 つ:
- 無料プール
この論文では、スイミング プールの 2 つの具体的な用途について説明しています。 1 つ目は、ツールの脆弱なバージョンを実行している VM が から循環するため、クラスターがアップグレードされたときに発生する想定遷移の住居の場所です。 – を 検疫
2 番目のインスタンスは、マシンが Free Pool へ Quarantine Pool
ECS (エラスティック クラウド プロバイダー) は、購入者の影響が最小限になるように、uncover のアベイラビリティ ゾーン全体で負荷分散を行います。クラウドプロバイダー地域内の失敗のトーナメントで クラウド プロバイダーの混乱については、古い論文の概要 で詳細に説明されています。 野生のメタステーブルの失敗 . VM (仮想マシン) をさまざまなアベイラビリティ ゾーンに均等に分散することで、1 つのゾーンで障害が発生したり、さまざまな原因で利用できなくなったりした場合に、ECS はさまざまなゾーン内の VM に要求をリダイレクトできます。 この流行は、予期しない混乱に直面した場合でも、プロバイダーが手元にあり、顧客に対応できる木材を作るのに役立ちます. アベイラビリティ ゾーン間の負荷分散は、プロバイダーの回復力と信頼性を強化するのに役立つため、クラウド コンピューティングでは総合的に意識する必要があります。
このホワイトペーパーでは、ECS が 2 つの形式の負荷分散を実装する方法について説明しています: クラスター段階の分散 (購入者のクラスタの VM をいくつかのゾーンに分散することを目的としています) および グローバル ステージ バランシング
この論文は、ハイステージのエギギュアス pr を提供します。 ロードバランシングの仕組みに関する int:
クラスターをスケールアウトするとき、ECS は最小のものを選択します。そのクラスターの負荷が最も低いゾーンの住居の場所からグローバルに負荷がかかっているゾーン。 同様に、クラスターをスケールインする場合、ECS はそのクラスターの最も負荷の高いゾーンの場所から、最も負荷の高いゾーンをグローバルに選択します。
この2つの提案を利用したスケーリングがうまくいかない場合や、彼らはあらゆる種類の人と戦争します。 例として、特定のゾーン内のクラスターに割り当てる VM がない場合、クラスター ステージのバランシングを組み立てることは考えられなくなります。 バランシングがおそらく最適ではない可能性があるもう 1 つのつぶやきは、ゾーン間でクラスタを「正確に」バランシングすると、単一のゾーンに VM を持つ多くのクラスタを含む世界の不均衡に終わる場合です。
- スロットリングと自動スケーリング
顧客が送る重量スノーフレークは時間とともに変化します。 ECS は、予測できないユーザー トラフィックに対処するために、2 つの重要なアプローチを利用しています。
これらの合併症に対する ECS の選択を設計する際、著者は次の 5 つの要素のバランスを取りました:
応答性: クエリは、ユーザーが考えた遅延なしに動作を開始する可能性があります
- Note-efficiency: Snowflake は無意味なリソースを待つべきではありません
- レイテンシー: クエリはおそらく、おそらく完全に落ち着く可能性があります効果的にタイミングを合わせます(そして、スキューのようなポイントの影響を受けることはありません
スロットリングを実装するには、Snowflake ダイナミック スロットリング として知られる方法を利用します。購入者のクエリに対する VM の使用率と一致するスケーリングの選択。 影響を与える静的同時実行制限の他のすべての使用率は、すべてのワークロードの明示的な要求を考慮に入れる必要がなくなるため、動的スロットリングは、CPU とメモリの使用率と一致する制限を計算します
自動スケーリングでは、
システムのぶら下がりを考慮に入れると、論文では ECS のパフォーマンスが考慮されます。
負荷分散を考慮に入れるために、著者は ECS がどのように減少したかについての情報を含めています skew、「最も負荷の高いゾーンと最も負荷の低いゾーンの VM の変化の間の変動」の尺度。 ECS のロード バランシングは、中程度のグローバル スキュー (展開全体での VM の違い) を 45 から 5 に減らし、クラスター内のスキューをほぼ根絶しました。 スキューを制限することで、Snowflake の展開は、誰かのクラウドの住居での停止にさらされることが少なくなります。 さらに、バランスの取れた展開では、VM に制約のある 無料のスイミング プール が少ないため、スケーリングが簡素化されます。 .
スロットリングと自動スケーリングを考慮に入れるために、ペーパーにはいくつかの例が含まれています生産から。 自動スケーリングの 1 つのインスタンスの使用は、ノイジー ネイバーの合併症と一致しています。問題を検出した後、ECS は影響を受けるクラスターに VM を含めることで自動的に軽減します。 また、ECS は自動的にスラッシュ バック タグにスケール ダウンします。
動的スロットリングは同一の親切にデバイス。 クラスターが一度高負荷にさらされると、ECS は影響を受ける VM へのリクエストを抑制し、クエリを適切なサービスを提供できる VM に転送します。 これにより、ユーザーのクエリをおそらく非常に効果的に処理できるマシンに誘導することで、購入者の負担が軽減されます。
Snowflake の Elastic Cloud 製品とサービスに関する論文は、同社のデータベース製品の動作に責任を持つ防御監視プレーンのトップ レベルの概念を提供します。 いくつかの点でこの学習は最近のものであるため、著者が接触している多くの明るい問題が将来の出版物の範囲になることを願っています. 第 1 に、その関心のレベルは、分散データベースをカバーする多くの論文 (データベースの内部構造や基礎となるコンセンサス アルゴリズムに関する以前のアートワーク) とは異なります。 このペーパーは、at-sca について説明しているという点でユニークです。 いくつかのクラウド企業にまたがる方法で、「スカイ コンピューティング」。 Snowflake の有害なクラウド展開の実装はシステムに合わせてパーソナライズされていますが、Crossplane のような商品の増加により、おそらくこれも一般化される可能性があります。組み立てることで、将来の実装者にとって方向性がより簡単になります。