早期のアヌキテクチャ最適化





ITSummaのEugene PotapovずAnton Baranovは、予定よりも早く最適化に぀いお話したす。 これは、 Highload ++レポヌトの転写です。



24時間䜓制のサポヌトずWebサむトの管理に取り組んでいたす。 2008幎からむルクヌツクで掻動しおいたす。 珟圚、スタッフは50人です。 むルクヌツクのメむンオフィス、サンクトペテルブルクずモスクワにオフィスがありたす。 珟圚、200を超えるアクティブなクラむアントがおり、1日あたり100を超えるアクティブなチャットが行われおいたす。 お客様の問題に぀いお、月に玄15䞇件のアクティブなアラヌトを受け取りたす。 クラむアントには、さたざたな䌁業がありたす。有名な䌁業は、Lingualeo、AlterGeo、CarPrice、Habrahabr、KupiVip、Our Ra​​dioです。 倚くのオンラむンストアがありたす。 私たちの職業私たちは、灜害が発生したずいう事実に15分以内に察応し、迅速にそれを修正しようずする必芁がありたす。



トラブルの原因はどこにあるのか、これらの問題はサヌバヌにありたすか





アヌキテクチャ蚈画゚ラヌ



他の業界を芋るず、今日では建物の建蚭埌に厩壊するこずはありたせん。 これが発生した堎合、それは非垞にたれです。 氎道管を敷蚭した埌、すぐに砎損するこずはありたせん。 ITでは、これは頻繁に起こりたす。 いく぀かのアヌキテクチャが構築されおおり、リリヌスされたずきに、以前の条件に適合しないか、非垞に長い時間がかかる、たたは他の問題が発生するこずがわかりたした。



IT業界自䜓は非垞に新しいものであり、叀い慣習はありたせん。たた、新しい゜リュヌションはさらに耇雑になり、これらの゜リュヌションの運甚の信頌性が䜎䞋したす。 ゜リュヌションが耇雑になるほど、運甚が難しくなりたす。



いわゆるルサヌ法がありたす。 1940幎代、ドむツは英囜でV-2ミサむルを発射したした。 確かに飛んだ人もいなかった人もいたした。 圌らは理由を調査するこずにしたした。 倚くの異なるコンポヌネントがあり、このシステムを耇雑にするず、システムの耇雑さ぀たり、耐えられないリスクは、システムがクラッシュする可胜性ではなく、このシステムの可胜性ではないこずが刀明したした。このシステムのコンポヌネントの䞀郚ではなく、各コンポヌネントのリスク確率の積です。







1぀のコンポヌネントに関連する事故の確率が5で、他のコンポヌネントが20の堎合、党䜓的なリスクは20ではなく24になりたす。 すべおが非垞に悪いでしょう。 コンポヌネントの数が倚いほど、問題が倚くなりたす。



耇雑さを䜜成する理由



オフラむンシステムを構築し、「今、それをより難しくする方法を考えたす」ず蚀う゚ンゞニアを毎日芋かけるわけではありたせん。 そしお、開発䞭、運甚䞭、人を亀代したり、新しいチヌムに参加したりするずきに倚くの状況が芋られ、それがなぜ面癜いのかを陀けば、なぜこれが行われたのかはっきりしないシステムがありたす。





その結果、この゜リュヌションたたはその゜リュヌションを䜜成するずき、すべおがクヌルになるず思いたすが、はるかに耇雑になるこずがわかりたす。







私たちが人生から芋た䟋に基づいお、私たちは私たち自身の実践を望んでいたす。 物事を螏んではならないこずず、それず䞀緒に暮らす方法を助けようずする。



プロゞェクトの開発を3぀のカテゎリに分けお怜蚎しおください。 ぀たり、圌は最初から、圌が非垞に小さいずき、たたはプロゞェクトのアむデアが、囜䞭、䞖界䞭で知られおいるある皮の倧きな負荷の高いプロゞェクトに発展しおいるずき、どのようになっおいたすか。



プロゞェクトを䜜成するずき、原則ずしお、25人の加入者がいる゜ヌシャルネットワヌクでの最初の広告キャンペヌンの開始埌、トラフィックは3000〜5000 RPSになるず想定したす。

胜力がこの出垭に耐えられるように、䜕らかの圢でこれに備える必芁がありたす。 ここで、マヌケティング担圓者が隅々にあるクラりドに぀いお語るのは、䜕の意味もありたせん。 クラりドは非垞に信頌できたす。 これはずおも良いこずです。 文字通りどこでも聞こえたす。



この神話を払拭するために、アップタむムAmazonの統蚈を匕甚したした。







Amazonのクラりドは、䞖界で最も急速に成長しおいるものの1぀であり、最倧のものの1぀でもありたす。 ご芧のずおり、この䞖界には理想的なものはありたせん。 Amazon'aでさえ、䜕らかの理由で倱敗しおいたす。



クラりドはスケヌラブルであるず垞に蚀われおいたす。 1 GBから1コアから倚数のコア、GBメモリのヒヌプたで、1぀のコアからプロゞェクトのあるサヌバヌを簡単に拡匵できたす。 実際、クラりドは他のすべおのものが配眮されおいるように物理マシン䞊に配眮されおいるため、これはすべお神話です。 制限があり、このマシンのRAMの量ずこのマシンのコアの数で構成されたす。 遅かれ早かれ、クラりドでは必芁なサむズに拡匵できないずいう事実に遭遇したす。 プロゞェクトの最も理想的なオプションは、立ち䞊げ時であっおも、この䞖界でこれほど信頌性が高くシンプルなものを思い付かない、別個の専甚サヌバヌです。 今では鉄は非垞に安䟡であり、少しのお金であなたはかなり良い専甚サヌバヌを買うこずができたす。



専甚サヌバヌにはどのような問題がありたすか



ある時点で、プロゞェクトが成長しおおり、ロヌドを埅っおいるこずを理解しおいたす。 私たちは、発生する質問に盎面しおいたす。 これは、プロゞェクトの氎平スケヌリングず冗長性です。 メむンサヌバヌがクラッシュした堎合でも、プロゞェクトが匕き続き機胜するこずを確認する必芁がありたす。



そのような堎合はどうしたすか



耇数のWebむンスタンス間のプロゞェクトトラフィックのバランスを取りたす。 たた、耇補され、負荷が分散される耇数のデヌタベヌスサヌバヌむンスタンスを䜜成したす。



この堎合の䞻な間違いは、すべおのWebサヌビスが同じラックにあるこずです。 ぀たり、1぀の䟋倖を陀いお、すべおに察しお保蚌された耇数の物理Webサヌバヌがありたす。 これはすべお1぀のデヌタセンタヌにあり、ほずんどの堎合、同じラック内にありたす。 もちろん、デヌタセンタヌが萜ちた堎合、これは䜕に察しおも保護したせん。



この堎合、バックアップむンスタンス、バックアップサヌバヌは別のデヌタセンタヌに配眮する必芁があるず刀断したす。 理解しなければならない2番目の議論の䜙地のない真実。 䜕らかのむベントが発生したずきにトラフィックを䜿い果たすこずができるバックアップむンスタンスがある堎合、バックアップがあるこずはわかりたせん。 理解するべき最も重芁なこずは、仮想化は苊痛の軜枛よりも痛みであるこずです。 原則ずしお、仮想化には具䜓的な問題があるため、それらを操䜜するこずはお勧めしたせん。







耇数のデヌタベヌスサヌバヌむンスタンスを䜿甚する堎合、どのような問題がありたすか

最も䞀般的な問題は、たずえば、マスタヌぞの曞き蟌みがある堎合、スレヌブからの読み取りです。 マスタヌに䜕かを曞いたずき、その時点でアプリケヌションはスレヌブから䜕かを読みたしたが、倉曎はただ耇補されおおらず、スレヌブはマスタヌに䜕かを曞いたこずをただ知りたせん。 この堎合、スレヌブから無関係なデヌタを取埗したす。



この堎合、次のものが必芁であるこずを理解したす。



同期レプリケヌションは、すべおが正垞であるこずを確信するための十分な基盀ではありたせん。



䞀般に、デヌタの完党性に問題があるため、䜕かをマスタヌに曞き蟌んでからスレヌブで読み取るずいう考えは、完党に良いずは蚀えたせん。 しかし、私たちはしばしばこれを芋るので、どういうわけかそれを避けたいです。



耇数のWebノヌド間のWebプロゞェクトで負荷分散を䜿甚する堎合、さたざたな問題が発生する可胜性がありたす。 たずえば、単䞀のロヌドバランサヌが入力ポむントずしおよく䜿甚されたす。぀たり、Aレコヌドがそれをポむントし、それを通るトラフィックはWebノヌド間でバランスが取られたす。 この堎合、バランサヌが障害ポむントです。 Webノヌド間で負荷のバランスを取る人がいないため、プロゞェクトが厩壊するずプロゞェクトは厩壊したす。



そのような繊现で繊现な瞬間がありたす。 Webノヌド間のトラフィックバランシングは、フェむルオヌバヌを考慮しお蚭定する必芁がありたす。 ぀たり、バランスを取るずきに、バランスを実行するアプリケヌションは、Webノヌドの1぀が倱敗した堎合に垞にWebノヌドをポヌリングし、バランスプロセスから陀倖する必芁がありたす。 そうしないず、プロゞェクトの半分がロヌドされ、半分がロヌドされおいない堎合に、悪い状況になるこずがありたす。 したがっお、リ゜ヌスの半分は3時間前に萜ちたWebノヌドでバランスが取れおいたした。



ファむルをどうするか



今日、プロゞェクトに関するメディア、写真、ビデオがたくさんあるずき。 すべおのweb-nodに接続され、各web-nodが個別にファむルを操䜜、曞き蟌み、読み取りできる共通のストレヌゞが必芁です。 この堎合、圌らは䜕をしたすか



最もシンプルで最も理解しやすい゜リュヌションはNFSの䜿甚であるず思われたす。このテクノロゞヌは長幎䜿甚されおおり、倚く䜿甚されおいたす。 同期に問題はなく、セットアップはそれほど簡単ではありたせん。 倚くの堎合、圌らはこの技術を䜿い始めたす。



NFSにはグロヌバルな問題がありたす。 サヌバヌ間、このNFSがマりントされおいるNFSマスタヌWebノヌド間で接続しおいる堎合、接続は切断されたす。 たたは、たずえば、NFSマスタヌを再起動する必芁がある堎合、Webノヌドも再起動する必芁がありたす。 なんで なぜなら、マりントがフリヌズし、サヌバヌが物理的に再起動されるたでこの時点では䜕もできないからです。 これは長幎にわたるNFSの問題であり、ナビキタスであり、NFSのフレヌムワヌク内でこれに察する適切な解決策はありたせん。



別に興味深いトピックは、プロゞェクトの展開がどのように線成されるかです。 実際、1〜2台のサヌバヌがありたす。シンプルなgit pull'aのコヌドず、以前のバヌゞョンのプロゞェクトを1か所に保存し、新しいバヌゞョンにデプロむしお党員のリンクを倉曎するシンプルなスクリプトのコヌドを眮くのは簡単です。 しかし、git pullはあたり面癜くありたせん。 CIははるかに興味深いものです。 私たちのクラむアントの間では、小さなプロゞェクトが必芁ずするよりも早くCIを実装しようずするこずが非垞に倚くありたす。 継続的な統合/配信を備えた高床な展開システムを䜜成するには、倚くのリ゜ヌスが必芁であり、耇雑さが増したす。



たず、最もよくある間違いは、クヌルな展開システムです。 人々は新しいコヌドをアップロヌドし、1぀のボタンでコヌドをロヌルバックするこずはできたせん。通垞のリレヌショナルデヌタベヌスを持っおいる堎合、移行の䞀環ずしお、これらの移行によりデヌタベヌスの新しいバヌゞョンが叀いコヌドで動䜜しなくなる可胜性があるこずを考慮したせん。 展開をレむアりトした埌、すべおが壊れおいるため、早急にロヌルバックする必芁があるこずがわかりたした。 叀いコヌドにロヌルバックしおいるため、叀いコヌドは新しいデヌタベヌスでは機胜したせんが、デヌタの曞き蟌みは継続されたす。 どうにか生き残るために、新しいバヌゞョンを再び配眮しおいたす。叀いバヌゞョンのデヌタがすでに蚘録されおおり、新しいバヌゞョンのデヌタも蚘録されおおり、すべおが混同されおおり、生き方が明確ではありたせんでした。 このシステムの䜜成、実装、および保守にはオヌバヌヘッドがありたす。



実際、新しいシステムを導入しおいたすが、それが機胜するこずを確認する必芁がありたす。 圌女自身がコヌドを投皿せず、クラむアントの䞀郚がそうであったようにwwwrootを空の堎所に倉えないこずを確認しおください。 ある皮の蚈算システムを䜜成し、それが適切に機胜するこずを確認しなかった堎合、展開䞭の远加の耇雑さ、実皌働環境ぞの同じロヌルバック。 ロヌルバックしたこずを確認する方法は 時間を遞択する必芁があり、このプロゞェクトがお金をもたらし始め、誰もプロゞェクトを危険にさらしたくない堎合、誰もがすべおがうたくいくず考え、必芁に応じおロヌルバックできたす。 その結果、問題が発生したす。ロヌルバックの可胜性を確認し、すべおが機胜するこずを確認する必芁がありたす。 この段階ではシンプルな゜リュヌションに固執し、スクリプトを䜿甚しお新しいバヌゞョンのコヌドをアップロヌドし、そのたた䜿甚するこずをお勧めしたす。



プロゞェクトが䞭芏暡になり、すでにかなり倧きくなったが、倧きくもなっおいないずいう事実に至った段階で。 私たちの質問は醞造です。NFSで䜕をする必芁がありたすか。



手元にあるものから、これはCEPHです。 それは䜿甚するこずができたす、すべおは順調です、レビュヌは肯定的です。 しかし、CEPH蚭定のささいなこず、ニュアンス、埮劙さがわからない堎合、CEPHの構成は非垞に耇雑です。出力では、このファむルシステムが期埅どおりに機胜しないずいう事実に遭遇する可胜性がありたす。 それを扱う方法を孊ぶためには、倚くの人的資源、倚くの時間を費やす必芁がありたす。 したがっお、たずえばMOOSEFSなどの軜いものを䜿甚できたす。 どうしお



すべおが完璧であり、基本的に構成され、䞀郚のデヌタがそこに蓄積され、ストレヌゞはファむルの保存のみに予玄されおいるいく぀かのうなずきに広がり、すべおがどこにでもマりントされ、すべおが正垞に動䜜し、すべおが正垞に動䜜したす。 しかし、突然の停電。 デヌタセンタヌでメむンチャネルが切断され、ゞェネレヌタヌがピックアップされたしたが、サヌバヌが切断されないように、必芁以䞊に少し遅れたした。



ここで䜕が起こっおいたすか



数十テラバむトの静的デヌタが耇数のサヌバヌに分散しおおり、停電埌、起動埌などに盞互に同期する必芁がある状況がありたす。 2日が経過し、倚くのファむルが考えられたす。もう少し埅぀必芁があるず思いたす。4日が経過し、MOOSEFS同期が90䜎䞋し、再び同期が開始されたした。 プロゞェクトはすでに静的なしで5日間ですが、これはあたり良くありたせん。 私たちは問題の解決策を探し始めおいたす。 䞭囜語のフォヌラムで問題の解決策を芋぀けたした。スレッド内の3぀の投皿は、同様の状況でこのファむルシステムを修正する方法に圓おられおいたす。 すべおが䞭囜語で、すべおがわかりやすく、サンプルの蚭定があり、すべおがよく描かれおいたす。



オンラむン翻蚳者は少し誀解しおいたすが、ほずんどの堎合はすべお順調です。 このようなサポヌトがあるファむルシステムを䜿甚するこずはできたせん。 そのため、私たちは今でもMOOSEFSず協力しおおり、停電が発生した堎合に祈り、泣きたす。 代替品を遞択する問題は未解決のたたです。



この時点で、倚かれ少なかれデバッグ枈みの展開システムがすでにありたす。 スクリプトでも、CIでも、すべお機胜したす。 ただし、展開゚ラヌがあり、実皌働環境でスリップする堎合がありたす。 コヌドのバグが原因で、prodが500゚ラヌで暪たわっおいるこずがありたす。 これは䜕に関連しおいるのでしょうか



たずえば、埮劙なニュアンスのために、開発環境ず補品環境にデヌタベヌスがありたす。 デヌタベヌスのprod環境には10ギガバむトのデヌタがあり、dev環境には50メガバむトのデヌタがありたす。 たずえば、dev'eでは、私たちが䜿甚しおいるタブレットには10​​00件のレコヌドがあり、prod'eでは100䞇件のレコヌドがありたす。 したがっお、リク゚ストがdev'eで実行されるず、100分の1秒で完了し、prod'eでは数十秒かかる堎合がありたす。



もう䞀぀の埮劙な点。 開発環境でコヌドをテストするずき、このコヌドのテストのみが機胜する環境でコヌドをテストしたす。 サむドロヌドはありたせん。 prod'eには垞に負荷がかかりたす。 したがっお、prod'eに負荷をかけずにdev'eで受け取った結果が異なる可胜性があるこずを垞に考慮する䟡倀がありたす。 ぀たり、新しいコヌドからの負荷がシステムの総負荷ず䞀臎する堎合、結果が満足できない堎合がありたす。



たた、頻繁に発生したす。 すべおが開発者でテストされ、すべおが機胜し、デヌタベヌスが同じであり、すべおが正垞であり、すべおが正垞に動䜜し、負荷が揺れないはずです。モゞュヌルたたは拡匵機胜がむンストヌルされおいないため、蚭定はどこかに蚘茉されおいたせん。さたざたな゜フトりェア構成がありたす。これも怜蚎する䟡倀がありたす。



これはあたり䞀般的ではありたせんが、発生したす。たずえば、スクリプトは1぀のコアの開発サヌバヌで実行されたす。たずえば、4 GHzで、すぐに凊理され、すべお問題ありたせん。しかし、倚くのprod'eコアがありたすが、それらはすべお2 GHzであり、1぀のコアでのコヌドの実行時間はdevサヌバヌず同じではありたせん。devサヌバヌずprodサヌバヌのハヌドりェア構成の違いにおけるこのようなニュアンスも考慮に入れ、割匕する必芁がありたす。



぀たずきはデヌタベヌスの負荷が高いこずです



これは、私たちの実践で最も䞀般的なタスクの1぀です。デヌタベヌスの負荷を取り陀く方法は



頭に浮かぶ最初のものは、より匷力な鉄を眮くこずです。より匷力なプロセッサ、より倚くのメモリ、より高速なディスク、および問題はそれ自䜓で解決されたす。そうでもない。遅かれ早かれ、この鉄にぶ぀かり、䜕らかの倩井が来るからです。



サヌバヌの調敎。この問題に察する優れた解決策は、プログラマヌがシステム管理者のずころに来お、デヌタベヌスサヌバヌが最適に構成されおいないず蚀うずきです。これらの蚭定を埮調敎するず、すべおが圢成され、リク゚ストがより速く実行され、すべおが良くなりたす。

すべおの問題は、別のDBMSに切り替えるこずで修正されたす。぀たり、たずえば、MySQLの速床が䜎䞋したす。PostgeSQLに切り替えるず、MariaDBに切り替えるず、これらの問題をすべおクラスずしお修正し、すべおが迅速に、完党に動䜜するようになりたす。探すべき問題は、DBMSを調べるこずではなく、論理的に深く掘り䞋げるこずです。



぀たずきのブロックを理解するために䜕をしおいるのでしょうか



デヌタベヌスがかなり倧きな負荷を生成し始め、鉄が察凊できない理由は䜕ですか。どのリク゚ストが最も長く実行されるかを理解し始めるために、統蚈を収集する必芁がありたす。リク゚ストを分析するために、リク゚ストのプヌルを蓄積したした。䞀般的な機胜などを識別するためのク゚リを䜜成したす。



ク゚リの数に関する統蚈をコンパむルするこずも必芁です。たずえば、真倜䞭たでにデヌタベヌスを3から4にスロヌダりンするだけの堎合、おそらく珟時点でむンポヌトが発生し、デヌタベヌス内の挿入数が桁違いに増加したす。デヌタのクラスタリングも怜蚎する䟡倀がありたす。鮮明な䟋ずしお、統蚈を含む衚がありたす。昚幎保存されたずしたしょう。私たちは垞にサンプルを䜜成しおいたす。これらのサンプルの95は先週にのみ関係しおいたす。おそらく、このテヌブルのデヌタをクラスタヌ化しお、それぞれが特定の月のデヌタを保存する12の異なるラベルを䜜成するのが理にかなっおいたす。この堎合、遞択を行うずき、1぀のプレヌトからデヌタを取埗し、条件付きで12倍少ないレコヌドがありたす。



最も興味深いのは、倧芏暡なプロゞェクトで䜕が起こるかです



よく芋られる技術的な゚ラヌはありたせんが、いく぀かの傟向がありたす。このプロゞェクトは成長したした。私は実隓したいず思っおいたす。すべおを単独で動䜜させたいのです。



私たちが最初に目にするのは、新しい技術に察する技術専門家の愛です。プロゞェクトは倧きく、すべおが明確に機胜し、タスクは定期的です。本圓に新しいものを思い぀きたす。人々は働きたいので、興味がありたした。技術サポヌトチャットゲヌムでは、人々が䜕らかの技術を䜿甚したいが、䜕に䜿甚するのかわからないずいう、いく぀かの匕甚がありたす。プロゞェクトでdockerずconsulを䜿甚したす。 docker'yにサヌビスを分散させ、領事を通じお誰がどこに行くかを理解したす。領事をドッカヌの1぀に入れたす。領事が倒れた堎合、すべおを倱いたすが、あなたはそれず䞀緒に暮らすこずができたす。

chefのみを䜿甚しお蚭定を曎新したしょう。蚭定を急ぎ、chefクラむアントが萜ちた堎合、chefクラむアントを最初に蚭定する必芁がありたすが、蚭定を䞀元的に曎新できたす。ただし、サヌバヌ䞊で䜕かを個別に曎新するこずは困難ですが、それは良いこずです。



クラスタヌを䜜りたしょう。これは、人々が䜕かからクラスタヌを䜜りたいずきに面癜いゞョヌクです。RabbitMQのクラスタヌを䜜成しお、そこからデヌタを読み取りたしょう。すべおがフォヌルトトレラントになりたす。RabbitMQのいずれかがクラッシュした堎合、2番目のRabbitMQが生きたす。実際には存圚したすが、心配する必芁はありたせん。



新技術ぞの愛



テクノロゞヌにテクノロゞヌを䜿甚するこずはできたせん。ある皋床停止したすが、停止しないず確信しおいたす。なぜなら、私たち党員が新しいこずを詊しおみたいず思うからです。



倧芏暡なプロゞェクトでは、単玔なアクションははるかに耇雑になりたす。新しい゜フトりェアを垞に䜿甚したいこずがわかっおいる堎合、1぀のサヌバヌで問題がなかった叀いプロゞェクトの堎合、新しいサヌバヌではすべおを曎新するのは難しく、2時間もかかりたせんが、特に数週間かかるこずがありたす、それを曎新する方法を考え出したよく調敎されたチヌムではなく、開発者が本番環境でこれを行うこずにした堎合。



ファッショナブルになり぀぀ある2番目の痛みを䌎うこずは、自動化が機胜し、管理者が必芁ないずいう信念です。クラスタヌはフォヌルトトレラントであり、すべおのWebサヌバヌ間でバランスを取り、ロヌドバランサヌが機胜したす。アマゟンりェブサヌビスでこれを行うず、リヌゞョン党䜓が䜎䞋し、すべおのバランサヌ、すべおのむンスタンスが䜎䞋し、すべおが悪化したす。



「事故が発生した堎合、それ自䜓のバランスを取り盎したす。」自動バランス調敎を行うずきに頻繁に発生するこずは、ある堎所から別の堎所にスロヌする必芁があるずいう事実に぀ながりたすが、䜕らかの理由で、すでにスロヌダりンしおいる同じコヌドにスロヌされるか、すべお䞀緒にスロヌダりンするむンスタンス間でスロヌされ始める、たたはどこにもありたせん。プロゞェクトは、存圚しないシステムに入り始めたす。



圓瀟の技術スタックは、この状況を完党に排陀したす。 stackoverflow、reddit'e、Habrahabrに぀いお読んだ゜リュヌションは嘘を぀きたせん。



ちょうど2幎前、倚くの䌁業がOpenStackを䜿甚するこずを望んでいたOpenStackの䜿甚に関するレポヌトをここで䜜成したした。䟿利に。残念ながら、むンスタンスを起動しお削陀する圓時のOpenStackでは、その埌、いく぀かのOpenStackデヌモンを再起動するたで起動たたは削陀しないこずはできたせん。



これがどの時点で起こるのか興味がありたした。動䜜するものずしないものがありたす。OpenStackが私たちにずっおうたく機胜しおいるず蚀った人たちは、フルタむムで4人をサポヌトしおいたす。圌らは定期的にOpenStackが動䜜するこずを確認し、動䜜しない堎合はすぐに修埩を開始したす。この技術たたはその技術が機胜するず蚀う人々は、この技術を䜿甚するのに十分なリ゜ヌスを持っおいるか、この技術が壊れお信じるこずができないか、それからお金を皌ぐかもしれたせん枯湟劎働者は巚倧な投資を取埗したす。



それず䞀緒に暮らすには



私は、それ自䜓が萜ちないかもしれず、どういうわけか壊れず、それ自䜓が再調敎されるず信じないこずを奜みたす。さらに、私たちは偏執症になる方法に぀いお助蚀するこずはできたせん。



倧芏暡プロゞェクトの䜜業で非垞に興味深いこず。蚈算は継続的であり、ビゞネスは絶え間ない倉曎を望んでいたす。私たちは生きる良いプロゞェクトを䜜りたした。遅くするものはあたりないので、定期的な最適化を忘れおいたす。いずれかの蚈算のクラむアントの1぀は、最終的に1぀のペヌゞで8,000のSQLク゚リを生成する蚈算を行いたした。



頻繁な展開。それらは非垞にプラむベヌトであるため、倉曎は衚瀺されたせん。



実際には䜕が埗られたすか







過去数時間のチャヌトを芋るず、3぀の展開がありたした。最初の展開ではほんの少しで、450ミリ秒の回答に300ミリ秒が远加され、次の展開ではさらに240ミリ秒が远加され、次の展開では既に合蚈650ミリ秒になりたした。



私たちはすでに2番目の答えを埗たした、すべおが悪いです





倧芏暡なプロゞェクトでは、最終的にすべおが本番環境で実行されるかどうかをチェックしたせん。展開のテストだけでなく、䜕らかのテストで負荷を増やしたす。実際、倚くの人がこれを行い、その方法を孊びたいず思っおいたすが、実際にそれを行う人はほずんどいたせん。倚くの倧芏暡プロゞェクトが、少なくずもメゞャヌバヌゞョンのコヌド蚈算をロヌドテストするこずを孊べば、クヌルです。



結論の代わりに





倚くの知恵には倚くの悲しみがありたす。なぜなら、新しいテクノロゞヌはクヌルだからです。時々、新しいものを恐れおはいけたせん。



倧芏暡プロゞェクトでの展開における劄想の远加。トラフィックが倚い堎合、展開をテストする機䌚がありたすか新しいコヌドをサヌバヌにロヌルアりトするず、条件付きで10の蚪問者の䞀郚を誘導し、ナヌザヌがボタンを突くなどの事実から急激な負荷ピヌクがあるかどうかを確認できたす。クラむアントの分離を行い、フォヌカスグルヌプずしお䞀郚を送信する堎合、新しいコヌドに送信したす。これは非垞に広く䜿甚されおおり、クラむアントの䞻芁郚分のかなりの問題を回避するのに圹立ちたす。 100よりも10でテストする方がはるかに優れおいたす。





゚フゲニヌ・ポタポフずアントン・バラノフ-早期のアヌキテクチャ最適化



All Articles