数十万の QPS、Baidu のホット イベント検索の安定性保証の実践

著者 | ウェン・ヤン

導入 

インターネット業界ではビジネスの反復が速く、システム変更も頻繁に行われるため、特にエバーグリーンビジネスでは時間の経過とともに歴史的な荷物がどんどん蓄積されていきます。Baidu の垂直検索製品として、Aladdin のビジネスは長年の変化を経験しており、多くの歴史的な重荷を抱えていますが、このビジネス クラスターは、大学入学試験、東京オリンピック、そして北京冬季オリンピック。大学入学試験を例に挙げると、Baidu は 2013 年から大学入学試験を行っています。11 年間の継続と集中を経て、大学入学試験 Aladdin は現在、大学入学試験関連のコンテンツを検索するユーザーからの数十億 PV トラフィックを直接処理しています。長年にわたって蓄積されてきたシステムは、その複雑さによる課題に直面しており、安定性に大きなリスクを抱えています。大学入学試験などの一大イベントの膨大なアクセスに対応するため、複数の関係者が連携して保証の仕組みを早急に構築しようとしているが、この記事は実践を踏まえてまとめたものである。

全文は 3087 ワード、推定読了時間は 8 分です。

01 保証のアイデア

主要なイベントのトラフィックは大規模で時間に非常に敏感であるため、トラフィックを確保する際には、瞬間的な圧力に耐えるシステムの能力に特別な注意を払う必要があります。例えば、毎年大学入試の小論文問題は常に世間の話題となり、各州の大学入試の得点と足切りが発表される時期は瞬時に大人気となる。オリンピックなどのスポーツイベントの熱戦は予測がつきません。卓球の準決勝の場合もあれば、弱い競技が突然優勝する場合もあります。イベントに注目するユーザーは、数百万人のスポーツ愛好家だけではありません。通常はアクティブですが、ホット スポットが発生した後のアクティブなユーザーも含まれます。多数の新しく追加されたフォロー ユーザーは、予測できない瞬間的なトラフィックのピークにつながります。ユーザーは、イベント データの適時性に対しても高い要求を持っています。最良のエクスペリエンスは、イベント データが収集されることです。リアルタイムに更新されるこれらの要素が重なり、重大なイベントに対する保証率が高くなります。通常のセキュリティ作業は困難です。従来のアイデアには 3 つの側面が含まれます。

写真

02 障害発見

従来のアプローチでは、まずビジネス モデル、上流と下流の依存関係、依存関係の強さ、データ リンクを詳細に整理し、同時に隠れた危険のトラブルシューティングと修復、ログの標準化をうまく行います。メジャー イベントを保証する場合は、さまざまなホット イベントの一意の依存関係リンクを個別に分類する必要があります。

(1) 上流および下流の業務担当者は、ホットスポットおよび影響範囲を事前に通知し、緊急計画を作成する必要があります。

(2) 依存する機能ポイント:ホットイベントでユーザーが注目する機能ポイントがどのビジネスパーティやアーキテクチャが提供するどの機能を利用するかを明確にし、ホットスポットが発生する前にトラフィックの傾向に注意を払う。

(3) さまざまなホットイベントのピーク QPS を推定し、依存度や機能ポイントに基づいて上流と下流のピーク QPS を評価し、事前に拡張およびダウングレード計画を作成し、緊急拡張に備えてリソースを確保します。

(4) さまざまなホットイベントに対応するコア機能ポイントのコードが十分に堅牢であるかどうかを確認し、上流と下流のボトルネックポイントを整理し、リスク計画とダウングレード計画を作成します。

(5) ホットイベントによるビジネスおよびデータリンクの障害ポイントを迅速に特定するために、対象を絞ったビジネス監視とアラームの確立を容易にするログ管理を計画します。

写真

従来の保証の2番目の側面は、上図に示すように、機能、ビジネス、その他の監視など、多次元かつ多視点の監視システムを構築することです。大きなイベントでは、障害をタイムリーに検出するだけでなく、ユーザー エクスペリエンスの問題を迅速に認識し、公式データとの違いにリアルタイムで注意を払う能力も必要です。したがって、ホットイベントを中心に監視の内容と頻度、およびそのコア機能に含まれるデータの適時性を設定します。データソースからの更新時間を可能な限り最短に設定し、データ処理プロセスのあらゆる側面における異常に対するリアルタイムのアラームと対応計画を作成し、複数の地域にある複数のコンピューター室のエンドツーエンドの影響の違いを監視します。リアルタイムで、データチェーン全体の適時感知と道路の保護を実現します。

03 障害の管理と制御

障害をタイムリーに検出する一方で、障害の影響範囲を効果的に制御すること、つまり障害の管理と制御も必要です。従来の制御手段には、障害の分離、パフォーマンスの最適化、問題計画、および障害訓練が含まれます。大きなイベントの間は、すべての側面が注目のイベントを中心に展開します。

(1) 障害切り分け

重大なイベント中は、ビジネスの分離、依存サービスの分離、ストレージ層の分離など、ホット イベントに関連するコア モジュールを中心に障害分離が実行されます。従来のストレージとビジネスの分離に加え、コアモジュールもターゲットを絞った方法で強化されました。

写真

たとえば、オリンピックのコア モジュールは数十万 QPS に達すると推定されており、このトラフィックは最も人気のある NBA イベントのピーク値を超え、一部のサービスでは 2019 年の Baidu APP 赤封筒イベントのトラフィックを超えています。このような大量のトラフィックをサービス クラスタや関連構造で直接処理することは困難であり、コア サービスの下流ではトラフィックが増幅するという特徴もあります。この目的のために、フルリンクのマルチレベル キャッシュを構築し、コア サービスで Redis を使用してトラフィックを直接処理しました。ビジネス特性、トラフィック分散、既存の Redis クラスターのパフォーマンス上限に基づいて、シングル クラスター モードの Redis が負担するトラフィックが推定ピーク値に達しないことを考慮し、オリンピックに向けて複数の場所に複数の Redis クラスターを構築しました。オリンピックの交通全般を共同で引き受ける。

(2) パフォーマンスの最適化

現在のサービス クラスターは主要イベントのピーク トラフィックをサポートできますか? また、依存するアップストリーム サービスとダウンストリーム サービスはピーク トラフィックをサポートできますか? これらの点に問題がないことを確認したい場合は、以前にまとめた内容を適用し、主要なイベントのさまざまなホット イベントのピーク トラフィックを推定し、推定されたトラフィックを各サービスのステータスがどのようにサポートできるかを評価し、パフォーマンス評価を実行する必要があります。サービスリンクのボトルネックの最適化。

まず、履歴データ、運用活動の取り決め、ホットイベントの整理などに基づいて、検索リンクの各モジュールのピークトラフィックを評価します。例えば、東京オリンピックの交通量を推計したところ、2016年のオリンピックのデータは遠すぎてあまり参考にならないことがわかり、オリンピックなどの人気イベントの交通量を参考にして予測しました。同時に、オリンピックのビジネスフレームワークと製品特性に基づいて各イベントを分析し、さまざまな検索シナリオとフロントエンドページのトラフィックを詳細に推定しました。

推定ピーク値を決定したら、サービス リンク上の各モジュールを拡張する必要があるかどうか、またどの程度拡張する必要があるかを評価し、重大なイベントが発生する前に容量を拡張します。容量拡張の範囲は、現在のサービスリンクだけでなく、さまざまなビジネス協力者のサービスクラスターも対象となります。

写真

容量拡張が推定トラフィックをサポートできることを検証するために、推定 QPS に基づいて段階的に複数ラウンドの圧力テストを実施し、実際のトラフィックをシミュレートして、サービス内のリスク ポイントをさらに調査し、パフォーマンスのボトルネックを発見しました。ボトルネックを発見したら、コアビジネスアルゴリズムやビジネスロジックを最適化し、冗長コードを削除し、ビジネスロジック、データ分割、階層キャッシュなどをスリム化し、検索アーキテクチャの最適化と合わせてパフォーマンスを向上させます。

(3)問題計画

前回の作業を通じて、システム内のさまざまなリスクに対処するために、さまざまなホット イベントに関連するサービス リンク全体の問題計画がまとめられました。問題計画には、サービス、リスク、機能低下、介入の 4 つの側面が含まれており、データから機能とサービスへの的を絞った対応が行われます。

写真

(4) フォルトドリル

問題計画を整理した後、ホット イベントのコア機能を中心に障害挿入と障害修復の訓練を実施し、計画の有効性と速度を検証します。

04 トラブルシューティング

障害をタイムリーに検出し、障害を効果的に管理および制御した後は、重大なイベント中に障害が効果的かつ適切に処理されることを保証することも必要です。まず、重大なイベントに迅速に対応するための職務グループを確立し、ホット イベントの前後に障害対応計画についてサービス リンクの各当事者の責任者および調整当事者の責任者と事前に連絡を取る必要があります。 。その後、運用保守部門と連携してサービスクラスターの運用保守を行い、障害が発生したインスタンスを自動的にオフライン化し、ホットトラフィックが急増した場合には、各種監視条件に基づいてトラフィックの削減や制限、さらには一部の機能のダウングレードを随時行うことができます。大きなイベントの際には、ユーザーを含めたあらゆる方面からフィードバックが行われますが、フィードバック機能に問題があった場合でも、事前に手動による介入計画を作成しておけば、介入によって迅速に解決することができます。手動介入ではカバーできない問題や、重要な製品のイテレーションはまだ開発して発売する必要があるため、現時点では、協力してオンラインに移行するために協力チームが迅速に編成されています。

写真

上記の従来のトラブルシューティングに加えて、主要なイベントの中核となる機能特性も考慮し、対応する計画を策定する必要があります。大学入試、オリンピック、冬季オリンピックなどの主要なイベントにおいて、データの適時性はユーザーが最も懸念する側面であり、製品の競争力の中心的な表現でもあります。上記の監視および緊急時対応計画に加えて、2 つのメイン データ リソースとバックアップ データ リソース、最も時間に敏感なコンテンツの迅速な切り替えと混合使用を用意し、同時に、迅速な切り替えを行うための 3 つのオフライン処理プラットフォームを構築しました。失敗の場合。当社は、製品効果のモニタリング、ユーザーからのフィードバック、サービスモニタリングなどのさまざまな指標に基づいて手動介入が必要かどうかを判断するリアルタイム手動介入プラットフォームを確立し、製品効果とデータの正確性を最大限に確保しています。

05 まとめと考察

以上の取り組みにより、大学入試、東京オリンピック、北京冬季オリンピック期間中、検索アラジン関連サービスの安定性は99.99%以上を維持し、データ更新速度も公式データとほぼ同期するなど、主要なイベントの安定性を確保するだけでなく、当社の製品が優れたユーザー エクスペリエンスを提供できるようにすることも重要です。

アラジンを探すには多くのサービスが関与しており、大きなイベントに直面した場合に考慮し、準備する必要がある側面が数多くありますが、この記事では、障害の発見、障害の管理と制御、および障害の処理の 3 つの側面から安定性を確保する方法について説明します。主要なイベントにはそれぞれ独自の特徴があり、コア ビジネス サービス リンクにもさまざまな程度の技術的負債と変革の困難があります。通常のビジネスの繰り返し中に安定性の構築に焦点を当てれば、主要なイベントのピーク トラフィックに応じて変革の困難を軽減できます。イベント。

現在、主に検索の制作・研究、AIエコロジー・アーキテクチャのバックエンドで活躍する「検索プロダクト研究開発エンジニア」ポジションを大募集中です。

興味のある学生は、履歴書を[email protected]に提出してください。

- 終わり -

推奨読書

Baidu検索の兆規模特徴量計算システムの実践

Python スクリプトによる OC コード再構築の実践をサポート (3): データ パスにアクセスするためのデータ項目使用モジュールの適応

Baidu 検索インテリジェント コンピューティング能力の制御と割り当て方法

UBC SDK ログ レベルの繰り返し率の最適化の実践

Baidu検索ディープラーニングモデルビジネスと最適化実践

OpenAI が ChatGPT Voice Vite 5 をすべてのユーザーに無料で公開、正式にリリース オペレーターの魔法の操作: バックグラウンドでネットワークを切断、ブロードバンド アカウントを非アクティブ化、ユーザーに光モデムの変更を強制 Microsoft オープン ソースの ターミナル チャット プログラマーが ETC 残高を改ざんし、年間 260 万元以上を横領 Redis の父が使用する Pure C 言語コードは、Telegram Bot フレームワークを実装しています あなたがオープンソース プロジェクトのメンテナである場合、この種の返答にどこまで耐えることができますか? Microsoft Copilot Web AI は 12 月 1 日に正式にリリースされ、中国の OpenAI をサポートします 元 CEO 兼社長の Sam Altman 氏と Greg Brockman 氏が Microsoft に加わりました Broadcom は VMware の買収に成功したと発表しました
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4939618/blog/10150755