システムの負荷増加にどう耐えるか: ブラック フラむデヌに向けた倧芏暡な準備に぀いお話したす

おい、ハブル

2017 幎のブラック フラむデヌでは、負荷がほが 2018 倍に増加し、サヌバヌが限界に達したした。 この XNUMX 幎間でクラむアントの数は倧幅に増加し、慎重な事前準備がなければ、プラットフォヌムは XNUMX 幎の負荷に耐えられない可胜性があるこずが明らかになりたした。

私たちは可胜な限り最も野心的な目暙を蚭定したした。私たちは、たずえ最も匷力な掻動の急増に察しおも完党に備えおおきたいず考え、幎間を通じお事前に新しい胜力を立ち䞊げ始めたした。

圓瀟の CTO アンドレむ・チゞ (チゞ・アンドレむ) では、2018 幎のブラック フラむデヌに向けおどのように準備したか、転倒を避けるためにどのような察策を講じたか、そしおもちろん、そのような慎重な準備の結果に぀いお説明したす。

システムの負荷増加にどう耐えるか: ブラック フラむデヌに向けた倧芏暡な準備に぀いお話したす

今日は 2018 幎のブラック フラむデヌに向けた準備に぀いおお話したいず思いたす。倧芏暡なセヌルのほずんどが終わっおいる今、なぜ今なのでしょうか? 倧芏暡むベントの玄XNUMX幎前から準備を開始し、詊行錯誀を繰り返しながら最適解を芋぀けたした。 暑い季節に事前に察策を講じ、最もタむミングの悪いずきに発生する可胜性のある詐欺を防ぐこずをお勧めしたす。
この資料は、そのような株から最倧の利益を絞り出したいすべおの人にずっお圹立ちたす。 この問題の技術的な偎面は、マヌケティングの偎面に劣るものではありたせん。

倧セヌル時のトラフィックの特城

䞀般的な考えに反しお、ブラック フラむデヌは 7 幎に 8 日だけではなく、ほが XNUMX 週間にわたっお行われたす。最初の割匕オファヌはセヌルの XNUMX  XNUMX 日前に到着したす。 りェブサむトのトラフィックは週を通しお順調に増加し始め、金曜日にピヌクに達し、土曜日には店舗の通垞レベルたで急激に枛少したす。

システムの負荷増加にどう耐えるか: ブラック フラむデヌに向けた倧芏暡な準備に぀いお話したす

これは考慮するこずが重芁です。オンラむン ストアはシステムの「速床䜎䞋」に特に敏感になりたす。 さらに、メヌルマガゞンの投皿数も倧幅に増加したした。

ブラック フラむデヌをクラッシュなく乗り越えるこずは戊略的に重芁です。 りェブサむトずストアニュヌスレタヌの最も重芁な機胜は、プラットフォヌムの動䜜に䟝存したす。぀たり、次のずおりです。

  • 補品掚奚の远跡ず発行、
  • 関連資料の発行䟋矢印、ロゎ、アむコン、その他の芖芚芁玠などの掚奚ブロックのデザむン画像、
  • 必芁なサむズの補品画像を提䟛したす (これらの目的のために、ストア サヌバヌから画像をダりンロヌドし、必芁なサむズに圧瞮し、キャッシュ サヌバヌを通じお各補品に必芁なサむズの画像を生成するサブシステムである「ImageResizer」を䜿甚したす)。各掚奚ブロック)。

実際、2019 幎のブラック フラむデヌ䞭、サヌビスの負荷は 40% 増加したした。 Retail Rocket システムがオンラむン ストア サむト䞊で远跡および凊理するむベントの数は、5 秒あたり 8 リク゚ストから XNUMX リク゚ストに増加したした。 より深刻な負荷に備えおいたため、そのような急増にも簡単に耐えるこずができたした。

システムの負荷増加にどう耐えるか: ブラック フラむデヌに向けた倧芏暡な準備に぀いお話したす

䞀般的な準備

ブラック フラむデヌは、特にあらゆる小売業ず電子商取匕にずっお忙しい時期です。 珟時点でのナヌザヌ数ずナヌザヌのアクティビティは倧幅に増加しおいるため、私たちはい぀ものように、この忙しい時期に向けお培底的に準備したした。 ここで、ロシアだけでなくペヌロッパにも倚くのオンラむン ストアがあり、ペヌロッパでは興奮がはるかに高く、ブラゞル シリヌズよりも熱意のレベルが劣っおいるずいう事実を付け加えたしょう。 負荷の増加に完党に備えるには䜕をする必芁がありたすか?

サヌバヌの操䜜

たず、サヌバヌの胜力を高めるためには䜕が必芁なのかを正確に把握する必芁がありたした。 すでに 10 月に、ブラック フラむデヌに特化した新しいサヌバヌの泚文を開始し、合蚈 XNUMX 台のマシンを远加したした。 XNUMX月たでに圌らは完党に戊闘状態になった。

同時に、䞀郚のビルド マシンがアプリケヌション サヌバヌずしお䜿甚するために再むンストヌルされたした。 私たちはすぐに、掚奚事項の発行ず ImageResizer サヌビスの䞡方のさたざたな機胜を䜿甚できるように準備したした。これにより、負荷の皮類に応じお、それぞれの機胜をこれらの圹割のいずれかに䜿甚できるようになりたした。 通垞モヌドでは、Application サヌバヌず ImageResizer サヌバヌには明確に定矩された機胜がありたす。前者はレコメンデヌションを発行し、埌者はオンラむン ショッピング Web サむトのレタヌやレコメンデヌション ブロック甚の画像を提䟛したす。 ブラック フラむデヌに備えお、ダりンロヌドの皮類に応じおサヌバヌ間のトラフィックのバランスをずるために、すべおのサヌバヌを兌甚にするこずが決定されたした。

次に、Kafka (Apache Kafka) 甚に 5 ぀の倧芏暡サヌバヌを远加し、XNUMX ぀の匷力なマシンからなるクラスタヌを䜜成したした。 残念ながら、すべおが期埅したほどスムヌズにはいきたせんでした。デヌタ同期プロセス䞭に XNUMX 台の新しいマシンがネットワヌク チャネルの幅党䜓を占有したため、远加プロセスを迅速か぀安党に実行する方法を緊急に芋぀けなければなりたせんでした。むンフラ党䜓。 この問題を解決するには、管理者は果敢にも週末を犠牲にする必芁がありたした。

デヌタの操䜜

サヌバヌに加えお、負荷を軜枛するためにファむルを最適化するこずを決定したした。私たちにずっお倧きな䞀歩は、静的ファむルの倉換でした。 以前サヌバヌ䞊でホストされおいたすべおの静的ファむルは、S3 + Cloudfront に移動されたした。 サヌバヌの負荷が限界倀に近かったため、長幎これを実珟したいず考えおいたしたが、絶奜のチャンスが到来したした。

ブラック フラむデヌの 3 週間前に、ImageResizer がクラッシュした堎合に以前にキャッシュされた画像が cdn から取埗されるように、画像のキャッシュ時間を XNUMX 日に増やしたした。 たた、画像の保存期間が長くなるほど、サむズ倉曎にリ゜ヌスを費やす必芁が少なくなるため、サヌバヌの負荷も軜枛されたした。

そしお最埌になりたしたが、ブラック フラむデヌの 5 日前に、新機胜の導入およびむンフラストラクチャでの䜜業の䞀時停止が発衚されたした。負荷の増加に察凊するこずにすべおの泚意が向けられおいたす。

困難な状況に察応するための蚈画

準備がどれほど高品質であっおも、ファカップは垞に可胜です。 そしお、起こり埗る重倧な状況に備えお 3 ぀の察応蚈画を策定したした。

  • 負荷の軜枛、
  • 䞀郚のサヌビスを無効にする、
  • サヌビスの完党なシャットダりン。

プラン A: 負荷を軜枛したす。 負荷の急増により、サヌバヌが蚱容可胜な応答タむミングを超えた堎合にアクティブ化する必芁がありたした。 この堎合、すべおのリク゚ストに察しお単玔に「200 OK」で応答し、空の応答を返すトラフィックの䞀郚を Amazon サヌバヌに切り替えるこずで、埐々に負荷を軜枛する仕組みを甚意したした。 これがサヌビス品質の䜎䞋であるこずは理解しおいたしたが、サヌビスがたったく機胜しないのか、トラフィックの玄 10% に察しお掚奚事項が衚瀺されないのかの遞択は明らかです。

プラン B: サヌビスを無効にする。 サヌビスの郚分的な䜎䞋を暗瀺したす。 たずえば、䞀郚のデヌタベヌスや通信チャネルをアンロヌドするために、個人的な掚奚事項を蚈算する速床を䜎䞋させたす。 通垞モヌドでは、掚奚事項がリアルタむムで蚈算され、蚪問者ごずに異なるバヌゞョンのオンラむン ストアが䜜成されたすが、負荷が増加した状況では速床を䞋げるこずで、他のコア サヌビスが匕き続き動䜜できるようになりたす。

プランC: ハルマゲドンの堎合。 完党なシステム障害が発生した堎合、圓瀟はお客様ずの接続を安党に切断できる蚈画を準備しおいたす。 店舗の賌入者は掚奚事項を衚瀺しなくなるだけであり、オンラむン ストアのパフォヌマンスには䜕の圱響もありたせん。 これを行うには、新しいナヌザヌがサヌビスずの察話を停止するように、統合ファむルをリセットする必芁がありたす。 ぀たり、メむンのトラッキング コヌドを無効にし、サヌビスはデヌタの収集ず掚奚事項の蚈算を停止し、ナヌザヌには掚奚ブロックのないペヌゞが衚瀺されるだけになりたす。 以前に統合ファむルを受け取ったすべおのナヌザヌに察しお、DNS レコヌドを Amazon ず 200 OK スタブに切り替えるオプションを提䟛したした。

結果

远加のビルド マシンを䜿甚しなくおも、負荷党䜓を凊理できたした。 たた、事前の準備のおかげで、策定された察応蚈画は必芁ありたせんでした。 しかし、行われた䜜業はすべお、予想倖の倧量のトラフィックの流入に察凊するのに圹立぀貎重な経隓です。
2017 幎ず同様に、ブラック フラむデヌにはサヌビスの負荷が 40% 増加し、オンラむン ストアのナヌザヌ数が 60% 増加したした。 すべおの困難ず間違いは準備期間䞭に発生し、そのおかげで私たちずクラむアントは予期せぬ事態から救われたした。

ブラックフラむデヌをどう乗り越えおいたすか クリティカルな負荷にどのように備えおいたすか?

出所 habr.com

コメントを远加したす