怜玢クラりドの課題。 Yandexでの講矩

むンタヌネット䌁業は、補造業者から受け取った名目䞊の仕様だけでなく、この機噚で実行される実際の生産タスクも考慮しお、デヌタセンタヌ甚の機噚を遞択しおテストしたす。 次に、デヌタセンタヌの蚭蚈、構築、および起動が完了したら、挔習が行われたす。サヌビスの知識がなくおもノヌドがオフになり、そのような状況にどのように準備されおいるかがわかりたす。 実際、このような耇雑なむンフラストラクチャでは、完党なフォヌルトトレランスを実珟するこずは䞍可胜です。 ある意味では、理想的なデヌタセンタヌは、Yandex怜玢などのサヌビスを損なうこずなくオフにできるものです。





ランタむム怜玢詊隓チヌムの責任者であるOleg Fedorovは、8月䞊旬に開催されたYandexの倧芏暡怜玢䌚議の講挔者の䞀人でした。 圌は、膚倧な量のデヌタの凊理に関連するタスクのためにデヌタセンタヌを蚭蚈するすべおの基本的な偎面に぀いお話したした。 カットの䞋-Olegのデコヌドずスラむド。



私の名前はオレグです。私は6幎間Yandexで働いおいたす。 私は怜玢品質郚門のマネヌゞャヌずしおスタヌトしたしたが、今では倧芏暡なデヌタセンタヌの運甚に関連する問題に関心がありたす-怜玢が機胜するこずなどを確認しおいたす。



怜玢、その他のサヌビスなどで応答できる10䞇台の小さなデヌタセンタヌを投機的に蚭蚈しおみたしょう。これは非垞に単玔に、投機的に䞊郚で行いたす。



怜玢クラりドの課題。 私たちは䜕に盎面しおいたすか 倧芏暡システムを構築するずき、どのような原則に埓いたすか







すべおの劇堎がハンガヌから始たるように、サヌバヌを蚭蚈するプロセッサヌ、これが機胜する機噚、それがいくらになるかなど、デヌタセンタヌの構築を開始するこずができたす。このため、3぀の簡単な手順を詊しおみたす。 。 機噚をテストしたい。 そのような機噚を所有するのにどれくらいの費甚がかかるかを蚈算したいず思いたす。 どういうわけか最適な゜リュヌションを遞択したいず思いたす。 泚目を集める画像







近い将来、デヌタセンタヌを構築するために、私たちにずっお興味深いプロセッサを遞択し、1幎半の準備ができおいたす。事前に゚ンゞニアリングサンプルを入手する必芁がありたす。 倚くの人がこれを知っおいるのは、倧衆垂堎に出る前に機噚をテストしたからです。



どのようにテストしたすか サヌバヌで最も頻繁に動䜜するクラりドの兞型的なタスク、怜玢、むンデックスの䞀郚、出力が匕き出すもの、他のこずを芋おみたしょう。 これらすべおのサンプルを取り、異垞を探したしょう。



鮮明な䟋がありたした。あるメヌカヌのプロセッサモデルを䜿甚し、描画時間を倧幅に短瞮したした。 サプラむズ 実際、コンパむラに問題がありたしたが、それでも異垞が発生する可胜性がありたす。 別の䟋メヌカヌが新しいSSE呜什のセットを発衚し、コヌドを少し曞き盎したした-それはずっず速くなりたした。 これは私たちのモデルの特定の競争䞊の優䜍性です。すべおが順調です。



もう少し詳しく芋おいきたしょう。 特定のプロセッサセットを遞択したずしたす。 泚目を集める私のお気に入りの写真を以䞋に瀺したす。 これは最近過熱した私のiPhoneです。







地理的な堎所。 デヌタセンタヌは、ロシアのロシア䌁業向けに構築するこずも、ロシア以倖の囜に構築するこずもできたす-さたざたな囜、さたざたな気候および地理的ゟヌン。 たずえば、赀道では暑いですが、倪陜光を䜿甚できたす。 北郚では、電気ではたすたす困難になりたすが、冷华ではすべおが非垞に優れおいるなどです。どこにでも賛吊䞡論がありたす。



デヌタセンタヌのサヌビスに぀いお考える必芁がありたす。 寒冷地や、予枬できない管理リ゜ヌスがある奇劙な囜にコンポヌネントを配送するこずは困難です。 䞀郚のコンポヌネントは非垞に困難な堎合などにのみ入手可胜になりたす。



各プロセッサのむンフラストラクチャの残りを蚈算しおください。 160ワットの熱を攟出するプロセッサを䜿甚する堎合、おそらく冷华に぀いお考える必芁がありたす。より匷力なヒヌトシンク、より匷力なサヌバヌが必芁です。



この堎所で業界はどこに向かっおいたすか 私たちは、他の皆ず同じように、倖気で冷やしおいきたいです。 通りの倖の気枩を取り、サヌバヌを吹き飛ばし、冷华したす。 したがっお、最終的な蚈算にはできるだけ倚くの゚ネルギヌを䜿甚し、サヌビスむンフラストラクチャにはできるだけ少ない゚ネルギヌを䜿甚するようにしたす。



倚くの人々が知っおいるPUE係数があり、誰もが統䞀のために努力しおいたす。 プロセッサが暙準操䜜を実行する準備ができおいる量を蚈算し、所有コストを抂算するず仮定したす。 プロセッサの名前を具䜓的に暗号化したした。これらはすべお掚枬的な数字です。 䞀般的なアプロヌチは䜕ですか 原則ずしお、すべおが最高のパフォヌマンスを備えたプロセッサが少し先に進み始め、コアパフォヌマンスを備えた゜リュヌションの条件付き所有コストが指数関数的に増加するように芋えたす。 Optimaは道路沿いのどこかに䜏んでいたす。







このルヌルには垞に䟋倖がありたす。 カヌネルで最倧のパフォヌマンスを埗るために埅ち時間が非垞に重芁である䞀郚の非質量アプリケヌションが必芁です。 たたは、オンラむンで䜕かを集めたり、絵を描いたりするこずもできたす。䟋倖的な機噚の数パヌセントを賌入する䜙裕がありたす。



他の偎面を芋おみたしょう。 プロセッサ、メモリ、SSD、ディスク、ネットワヌク、未発芋の枬定倀など、非垞に耇雑な倚次元空間がありたす。 私たちは垞に拡倧しおいたす。 このすべおに぀いお考える必芁がありたす。 モデルは耇雑で倚次元であり、むンタヌネットは埐々に倉化しおおり、怜玢に察する私たちのアプロヌチは倉化しおいたす。 これらすべおをモデルに入れお、必ず蚈算しおください。



泚目を集める2番目の写真







おそらく、倚くの人が残存攟射の分垃を認識したした。これが、宇宙がどのように芋えるかをコンピュヌタヌでシミュレヌトしようずする方法です。 デヌタはほが同じに芋えたす。 非垞にホットなパッチがありたす。 たずえば、VKontakteのWebサむトは䜕らかの理由で誰もが探しおいたす-理由はわかりたせん。 たたはいく぀かの子猫。 このデヌタは非垞にホットで、よく䜿甚されたす。プロセッサに近い堎所のメモリなどに保存したいのです。そしお、いく぀かのドラむバがありたす。 私は玄10幎前に以前のラップトップを所有しおおり、そのために、叀いUbuntuではドラむバヌが必芁でした。 なんらかの理由で、私以倖の誰もこのリク゚ストを長い間受けおいたせん。 私はログを怜玢しようずしたした-誰も興味がありたせん。 このデヌタは、おそらく誰にも必芁ではありたせん-遠く離れた堎所、小さな耇雑な耇補などを備えたコヌルドディスクに保存したす。



幞いなこずに、私たちはすべおを指数関数的に持っおいたす。 最もホットなデヌタは䞍足しおおり、メモリに到達しようずするこずができたす。 そしお、最も面癜くお䞍必芁な韓囜のスパムサむトはディスク䞊のどこかに眮いお、それらを忘れるこずができたす。







クラりド内のさたざたなアプリケヌションの耇雑な芁件に関する図。 少し持っおいるアプリケヌションを分類しおみたしょう。 アナロゞヌがありたす私は空の氎槜を買いたした、そこで魚を動かしたいのですが、その前にそこに矎しさをもたらす必芁がありたす-倧きな小石、城、それだけです。 さらに、氎槜には砂ず氎が必芁です。 氎を泚ぐだけですべおを配眮し始めるず、汚れおしたい、石などを動かすのが難しくなりたす。



アプロヌチは次のずおりです。GPUなどの特定のハヌドりェアを必芁ずするクラりド内のアプリケヌションを遞択したしょう。 各サヌバヌにGPUを搭茉するこずは倢ですが、かなり高䟡であるこずは明らかです。 特定のハヌドりェアを必芁ずするアプリケヌションを、そのようなハヌドりェアが利甚可胜なサヌバヌに配眮したす。 これはステップ番号1です。



ステップ2私たちは砂ず䞻なアプリケヌションを取り、しっかりずふるいにかけ、暙準化したす-圌らが消費するメモリの量、圌らが必芁ずするプロセッサの量、䞀日の時間、圌らが必芁ずするネットワヌクの量、圌らが自分自身にデヌタを配信する方法などを芋぀けたす。たずえば、これらのアプリケヌションは倧芏暡で、どこでも実行できる状態にあり、芁件を遵守するこずが重芁であるこずを明確に蚈画および理解しおください。



さらに、砂のある皮の配眮を行ったずきに、兞型的なバッチタスク機械孊習タスクをすべおの空き領域に埋めたす。 私たちが知っおいるように、倜ロシアの人々のほずんどは眠りたす。 したがっお、怜玢で受信される芁求が少なくなり、プロセッサが解攟されたす。䜿甚したいず思いたす。 倜はバッチの党盛期であり、ナヌザヌの応答にあたり関係のないさたざたなタスクのルネッサンスです。



次のステップ。 アプリケヌションをクラりドで蚈画したしたが、アプリケヌション間の干枉をどのように回避できたすか RAMずプロセッサの正しいボリュヌムを蚈画したオオカミが、このボリュヌムを正しく消費したこずを確認する方法は 貧しい無邪気な子矊に害を及がさないようにするにはどうすればよいでしょうか。誰も䜕も消費すべきではありたせんが、メモリリヌク、リク゚スト数の爆発を経隓し、近隣のタスクをプロセッサであふれさせたす。 囜境、隔壁が必芁です。







業界のアプロヌチは䜕ですか 誰もが聞きたしたが、Linuxにラップトップを持っおいる人は、アプリケヌションを保護するために䜕らかの方法でcgroupを蚭定し、アプリケヌションに制限を蚭定し、倚かれ少なかれすべおを改善しようずしたした。



2番目の䞀般的なアプロヌチは䜕ですか 各アプリケヌションを別々の仮想マシンで簡単に起動したしょう。 もちろん、オヌバヌヘッドが発生したす。無料では䜕も起こりたせん。 より倚くのプロセッサ、少しのメモリを消費したす-実際には、メモリのペヌゞを数回カりントするこずがありたす。 倚くの最新の゜リュヌションはすでにこの圱響を受けおいたせんが、特定のプロセッサが必芁ですなど。



みんなは䜕に来たすか 小さな薄い局-アプリケヌションを囲むコンテナ。



このストヌリヌをクラりドで開始したずき、Dockerはただそれほど開発されおいたせんでした。 そのモダンなバむンディングは印象的です-倚くの䜜業が行われたした。 ずおも䌌たようなこずをしたした。 圌らはポルトず呌ばれたした。 数癟-すでに数千-のアプリケヌションを簡単に管理したかったので、互いに干枉しないように、構成プロセスが非垞に単玔であり、ある意味でアプリケヌションのすべおの制限を説明し、その動䜜方法、必芁なもの、それがどこにあるかを理解したしたデヌタを保存する必芁がありたす。このアプリケヌションの専甚IPアドレスは䜕ですか。 ぀たり、私たちを倚次元空間ず結び付けるすべおのものを蚘述し、このコンテナを起動しお、それを忘れる必芁がありたした。



䞀方、アプリケヌション自䜓の芳点から芋るず、実際には仮想マシン内にありたす。 圌は自分の小さなchrootを持っおおり、すべおのプロセッサヌずすべおのRAMが芋えるわけではありたせん。 展開システムのシンプルさで利点を埗、リ゜ヌスアカりンティングを取埗したした。 アプリケヌション自䜓が内郚で行うこず、起動するサブルヌチン、デヌタを凊理するこずなどにはあたり関心がありたせん。このアプリケヌションの呚りで䜕が起こったか、぀たりコンテナからのカりンタヌに関心がありたす。 たた、別の玠晎らしいボヌナスずしお、ネストされたサブコンテナを実行する機䌚がありたした。 いく぀かのタスクたたは問題に䞀連のリ゜ヌスを割り圓お、このコンテナに名前を付けたした-それだけです。 さらに、アプリケヌションは内郚のスペヌスを䜕らかの方法で再配垃し、サブコンテナも分離しおサブプログラムを実行できたす。 その結果、各コンパヌトメントが隔離された矎しい朜氎艊ができたした。 誰かがどこかでリヌクを起こした堎合、䜕かが爆発し、そこではロヌカルでのみ爆発したした。



そこで、すべおを分離し、すべおをクラスタヌで蚈画したした。 そしお、アプリケヌションむンスタンスが機胜する堎所を芋぀ける方法は



発芋の問題をどのように解決したすか いく぀かのアプロヌチがありたす。 最も兞型的なものの1぀は、アプリケヌションが起動し、䞭心点のどこかでノックするこずです。 私たちのアプロヌチはこれに非垞に䌌おいたす。 監芖システムず統合しおいたす。 システムは、特定の皮類のアプリケヌションがマシン䞊で実行されおいるこずを認識するず、その䞭に特定のメタ蚘述を保存したす。 その埌、他のアプリケヌションが自身のバック゚ンドのリストを怜玢するずきに、この説明を䜿甚できたす。







すべお順調です。 私たちは朜氎艊に乗っおいお、すべおが絶瞁されおいる、などです。しかし、ここですべおが壊れ始めたす。 私たちがタクシヌ隊で働いおいるず想像しおください。 タクシヌは100台ありたす。 垞に次のようになりたす。1台の車が車茪を䞋げおいる、誰も別の車を運転できない、車茪がおかしい、などです。耇数の車は垞に壊れおいたす。 アプリケヌションの数パヌセント、぀たりシステムノヌドが垞に壊れるずいう事実に慣れる必芁がありたす。 これは、耇補の蚈算、各ノヌドの負荷などの段階で蚭定する必芁がありたす。



䜕が壊れるか あたり良くないバヌゞョンのアプリケヌションを曞いた堎合、もちろんクラッシュしたす。 特定の数のリク゚ストずクラッシュを凊理したす。 圌らはテストでそれを芋぀けられたせんでした-圌らはそれをクラりドで芋たした。 OSが壊れたす。 実行時に䜕も圱響を䞎えない、新しいスヌパヌセキュリティアップデヌトを芋おみたしょう。 それをリリヌスしたしょう-カヌネル内の䜕かにヒットしたため、アプリケヌションが萜ち始めたす。 サヌバヌが砎損したす。 圌は2幎間アップタむムで働き、すべおが玠晎らしかったが、RAMは倱われ始め、ディスクはドロップアりトし始めた。



デヌタセンタヌ内のサヌバヌはラック内にありたす。 電源はラックに䞀元的に䟛絊され、ネットワヌクはロヌカルに耇数のワむダで䟛絊されたす。 それはすべお倱敗する可胜性があり、故障したす。 ラック党䜓が砎損するずいう事実に備える必芁がありたす。 むンデックスたたはアプリケヌションの非垞に重芁な郚分は、クラりドであたり起動されず、1぀のラックに眮かれず、できるだけ汚れた状態で保存する必芁がありたす。



数十たたは数癟のラックが組み合わされおモゞュヌルになりたす。 デヌタセンタヌの耐火郚分が圢成されおいるため、誀動䜜が発生した堎合、デヌタセンタヌ党䜓が砎損するこずはありたせんが、モゞュヌルを絶瞁できたす。



しかし、党䜓ずしおは、デヌタセンタヌが壊れたす。 幎に䜕回、デヌタセンタヌがネットワヌクを介しお脱萜し、通信チャネルが被害を受けるず思いたすか



-...



-なぜ春なの いいえ、最新の光孊系は非垞によく䌞瞮しおいたす。 春は正しいですが、なぜですか 皮たき。 蟲業産業は目芚め、存圚しない堎所で光孊を砎壊し始めたす。 ビルダヌは目を芚たし、冬にはできなかった仕事を始めたす。 春には、通信チャネルが被害を受けるなど。



事故の問題を分類しおみたしょう。 ここで、圌らは衛星を床に萜ずした、トラブル。







私たちのナニットの1぀か2パヌセント、機噚が故障したした。 これは日垞的なタスクです。私たちのタクシヌ隊では、1、2、3台の車が垞におかしくなりたす。これに備えなければなりたせん。



深刻な問題は、ノヌドの5〜7が故障しおいる堎合です。 おそらく、むンフラストラクチャコンポヌネントの䞀郚のリリヌスは、期埅どおりに動䜜したせんでした。 ネット䞊で䜕かを壊したのかもしれたせん。 この問題を理解する必芁がありたすが、それは重芁ではありたせん-私たちのサヌビスは匕き続き機胜し、すべおがうたくいくのはむンフラストラクチャのこの断片です。



灜害-ノヌドの15〜20が故障しおいる堎合。 ここで明らかに問題が発生したした。プログラムをリリヌスし、䜕かを展開し、再構成するこずは意味がありたせん。 負荷を取り陀き、よりアクティブなアクションを実行する必芁がありたす。 これは珟実的な状況ではありたせん。 おそらく倚くの人がこのアプロヌチに粟通しおいるでしょう。







そのような堎合に䜕ができたすか 簡単なものから始めたしょう。 私たちの車は故障しおいたす。 圌らはちょうどプログラムで壊れるこずができたす。 サヌバヌがハングしたす。 これを怜出し、IPMI経由でこのサヌバヌず通信しお、サヌバヌで䜕かを行うこずができる必芁がありたす。 モニタリングシステムの䜜業、トラブルシュヌティング、修正の詊み、デヌタセンタヌでのアプリケヌションの䜜成、WALL-Eロボットに関する挫画ずしお提瀺したす。 このようなロボットはクラスタヌ内を移動し、すべおを修正しお、私たちに起こっおいるこずを特定の䞭心点に報告しようずしたす。 したがっお、最初のアプロヌチは自動修埩です。



すべおが垞に壊れおいるずいう事実に他にどのように察凊できたすか バック゚ンドの悲芳化がありたす。 アプリケヌションAがあり、アプリケヌションBの10個のバック゚ンドに移動するずしたす。バック゚ンドの1぀は、100ミリ秒の間、倧幅に遅い応答を突然開始したす。 このバック゚ンドを冷静に悲芳し、倚くのリク゚ストを芁求し始めるこずができたす-その状態を監芖するために匕き続き芁求したすが、残りの9぀の正垞なバック゚ンドにリク゚ストを転送したす。 䜕も起こりたせん-すべお順調です。 私たちは、アプリケヌションがきちんずしおいるこず、私たちの䞋にバック゚ンドがあり、䜕かが圌に起こったこずを理解できるこずを教えたす。



別のアプロヌチがありたす。 付録Aは、予想よりもはるかに倚くの付録Bぞのトラフィックになりたした。 その機胜の䞀郚を無効にしお応答を開始できるず䟿利です。おそらくかなり正確ですが、CPUの芳点からははるかに䜎コストです。 たずえば、怜玢に぀いお説明しおいる堎合は、もう少し深く芋おください。 私たちは1000のドキュメントを䞊げるのではなく、900のドキュメントを䞊げ、ゆっくりず境界線を抌し進めたす。 これは䞀皮の目に芋えたせんが、本圓に必芁なずきにスルヌプットを倧幅に向䞊させたす。 これは劣化です。



深刻な灜害がすでに発生しおいる堎合、理解できるステップは、負荷を分散し、取り陀くこずです。 デヌタセンタヌ党䜓を含むすべおのノヌドは、分離できる必芁がありたす。 そこからトラフィックを取埗しおから、ノヌドを䜿甚しおサヌビスを提䟛する必芁がある堎合がありたす。



すべおのアプリケヌションがこのスキヌムに埓っお機胜し、動䜜し、蚭蚈されおいるこずをどのように理解したすか 定期的な挔習を実斜する必芁がありたす。ノヌドの電源オフ、倚数のサヌバヌの電源オフ、デヌタセンタヌの電源オフ。 これは、これらのアプリケヌションのチヌムで予期せずに発生するはずです。そのため、負荷などを操䜜しおいるようなストヌリヌはありたせん。 それは正盎な普通の事故であるはずですが、すべおを元の状態にすばやく戻すこずができたす。 春が来るのを埅たずに、掘削機で運河の1぀を移動したす。 自分で無効にし、䜕が起こるかを確認したす。 むンフラストラクチャをカットしたす。䜕が起こるかを確認したす。







ヒュヌストン、問題がありたす。 問題を、もはや日垞的ではないポむント、぀たり問題-5-7たたは灜害たで蚺断したした。 これに察凊する必芁がありたす。 兞型的な怜玢゚ンゞニアは䜕を芋おいたすか 珟圚、リリヌスたたはロヌンチはありたすか おそらく、アプリケヌションが数日から数週間機胜し、すべおが順調だったのに、突然午埌の1時に応答時間が短くなった堎合、䜕かが倉曎されたした。 おそらくリリヌス、打ち䞊げが行われたした。



私たちは䜕を芋ようずしおいたすか , . , , . 8:30 8:30 . 20% — , - .



. , , . . , , .



. , . , , , , , .



. . Netscape Navigator, , . . , . ? ? , ? . .



. , . , , , . , . .



. 15 , . . , . - . , , - — . — - .







. : 100 , 200 . . , . - . , . , . , , . , .



, . : , - , , , , , . — , .



, -, , , , , , , , .



:

— , ?



:

— , . , , - .



, :

— , . — , , . , . , - — .



:

— , Startup Makers. Google open source solution — Kubernetes. Porto. ?



:

— , , . . - - .



:

— , . , NIH — not invented here. , , . open source , .



Porto — , Docker. .



:

— Docker .



:

— , , , , . , , , — open source.



:

— , Kubernetes. , , , , Google. Service discovery — . , , , — ? , - etcd-, key value, - ?



:

— , , . . — -, , , . — push, call.



:

— , . . - ? ?



:

— . — . .



:

— Kubernetes Kube Dash, , - . そしおそれは動䜜したす。 CoreOS, , . - UI- , AWS , , ?



:

— , . , . : , , , . .



UI . , , , UI . 100 , , , , . .



— , .



:

— , . : « , , ?» , , -, , .



:

— , .



:

— . , , «».



:

— , . . , , , . . , — ?



:

— , . , . . , .



:

— .



:

— . . 
 , . .



:

— , ?



:

— , .



:

— , . Porto. overhead Porto , ?



:

— Porto , - cgroups . cgroups — Porto.



:

— , « ». . , , ? , — , - , ?



:

— . , , , . .



, , . . , , - .



:

— . , - — - , - 
 , - , , , . -. .



:

— , , . , 24/7/365, - . - . .



:

— . - ?



:

— . : , . , - , - . : - - 90% , , , 90% - , - . .



:

— — . , , , : - , , , , , — - , . — - . , «». , . - , , - .



:

— . , , , SSD . : , SSD — , , — , .



:

— , « ». , ?



:

— . - , — . — , . .



, , , . — , 50% , , , , 50% .



All Articles