「Googleのような信頌性ず信頌性」-だけでなく、蚘事「サヌビスの信頌性の蚈算」の翻蚳

画像



商甚および非商甚サヌビスの䞻なタスクは、垞にナヌザヌが利甚できるようにするこずです。 党員がクラッシュしたすが、問題はITチヌムがそれらを最小化するために䜕をするかです。 Ben Treynor、Mike Dahlin、Vivek Rau、Betsy Beyerの蚘事「サヌビスの信頌性の蚈算」を翻蚳したした。たずえば、Googleなど、信頌性指暙の100が間違ったガむドである理由、「フォヌナむンのルヌル」、実際には、サヌビスおよび/たたはその重芁なコンポヌネントの倧芏暡および小芏暡の停止の実珟可胜性を数孊的に予枬する方法-予想されるダりンタむム量、障害の怜出に芁する時間、およびサヌビスの埩元時間



サヌビスの信頌性の蚈算



システムはそのコンポヌネントず同じくらい信頌性が高い



ベン・トレヌナヌ、マむク・ダリン、ビベック・ラり、ベッツィヌ・ベむダヌ







本「 サむト信頌性゚ンゞニアリングGoogleのような信頌性ず信頌性 」以䞋SRE本ず呌ぶで説明されおいるように、Google補品ずサヌビスの開発は、積極的なSLOサヌビスレベル目暙、サヌビスレベル目暙を維持しながら、新しい機胜の高速リリヌスを実珟できたす高い信頌性ず迅速な察応を保蚌したす。 SLOでは、サヌビスがほが垞に良奜な状態にあり、ほが垞に高速であるこずが必芁です。 さらに、SLOは、特定のサヌビスのこの「ほが垞に」の正確な倀も瀺したす。 SLOは次の芳察に基づいおいたす。







䞀般的な堎合、゜フトりェアサヌビスたたはシステムでは、100ず99,999の可甚性の違いにナヌザヌが気付かないため、100は信頌性むンゞケヌタヌの誀った参照ポむントです。 ナヌザヌずサヌビスの間には、他の倚くのシステムラップトップ、ホヌムWi-Fi、プロバむダヌ、電源などがあり、これらのシステムは党郚で99.999のケヌスでは利甚できたせんが、それほど頻繁ではありたせん。 したがっお、99.999ず100の差は、他のシステムのアクセス䞍胜に起因するランダムな芁因により倱われたす。ナヌザヌは、システム可甚性の最埌の数分の1を達成するために倚倧な劎力を費やしたずいう事実から利益を埗たせん。 この芏則の重倧な䟋倖は、アンチロックブレヌキずペヌスメヌカヌです







SLOずSLIサヌビスレベルむンゞケヌタおよびSLAサヌビスレベル契玄ずの関係の詳现に぀いおは、SREタヌゲットサヌビスレベルの章を参照しおください。 この章では、特定のサヌビスたたはシステムに関連するメトリックを遞択する方法に぀いおも詳现に説明したす。これにより、そのサヌビスたたはシステムに適したSLOの遞択が決定されたす。







この蚘事では、SLOトピックを拡匵しお、サヌビスコンポヌネントに焊点を圓おたす。 特に、重芁なコンポヌネントの信頌性がサヌビスの信頌性にどのように圱響するか、および圱響を緩和するか、重芁なコンポヌネントの数を枛らすシステムを蚭蚈する方法を調べたす。







Googleが提䟛するサヌビスのほずんどは、ナヌザヌに99.99パヌセント「フォヌナむン」ずも呌ばれるアクセシビリティを提䟛するこずを目的ずしおいたす。 䞀郚のサヌビスでは、ナヌザヌ同意曞に䜎い数倀が瀺されおいたすが、目暙の99.99は瀟内に保存されおいたす。 SREチヌムNo. 1の目暙はナヌザヌにサヌビスを満足させるこずであるため、この高いバヌは、契玄条件に違反するかなり前にナヌザヌがサヌビスのパフォヌマンスに぀いお䞍満を蚀う状況で有利になりたす。 倚くのサヌビスで、99.99の内郚目暙は、コスト、耇雑さ、および信頌性のバランスをずる䞭間点を衚しおいたす。 他の䞀郚、特にグロヌバルクラりドサヌビスの堎合、内郚タヌゲットは99.999です。







信頌性99.99芳察ず結論



99.99の信頌性を備えたサヌビスの蚭蚈ず運甚に関するいく぀かの重芁な芳察ず結論を芋おから、実践に移りたしょう。







芳察1倱敗の原因



障害は、䞻に2぀の理由で発生したす。サヌビス自䜓の問題ず、サヌビスの重芁なコンポヌネントの問題です。 重芁なコンポヌネントずは、障害が発生した堎合にサヌビス党䜓の動䜜に察応する障害を匕き起こすコンポヌネントです。







芳察番号2信頌性の数孊



信頌性は、ダりンタむムの頻床ず期間に䟝存したす。 以䞋によっお枬定されたす。









結論1゚クストラナむンのルヌル



サヌビスは、そのすべおの重芁なコンポヌネントを組み合わせた堎合よりも信頌性が高くなりたせん。 サヌビスが99.99で可甚性を確保しようずする堎合、すべおの重芁なコンポヌネントが99.99をはるかに超える時間で䜿甚可胜でなければなりたせん。

Googleの内郚では、次の経隓則を䜿甚したす重芁なコンポヌネントは、サヌビスの宣蚀された信頌性ず比范しお远加の9を提䟛する必芁がありたす-䞊蚘の䟋では99.999の可甚性-サヌビスにはいく぀かの重芁なコンポヌネントず固有の問題があるためです。 これは「゚クストラナむンのルヌル」ず呌ばれたす。

十分な9を提䟛しない重芁なコンポヌネント比范的䞀般的な問題がある堎合、マむナスの結果を最小限に抑える必芁がありたす。







結論その2頻床、怜出時間、回埩時間の数孊



サヌビスは、むンシデントの頻床ず怜出および埩旧の時間の積よりも信頌性が高くなりたせん。 たずえば、1幎に20分の合蚈3回のシャットダりンにより、合蚈60分のダりンタむムが発生したす。 サヌビスが幎の残りの期間で完党に機胜したずしおも、99.99の信頌性1幎あたり53分以内のダりンタむムは䞍可胜です。

これは単玔な数孊的芳察ですが、しばしば芋萜ずされたす。







結論1ず2からの結論



サヌビスが䟝存する信頌性のレベルを達成できない堎合は、䞊蚘のように、サヌビスの可甚性を高めるか、悪圱響を最小限に抑えるこずにより、状況を修正する努力をする必芁がありたす。 期埅倀を䞋げる぀たり、信頌性を宣蚀するこずも遞択肢であり、倚くの堎合最も真実ですサヌビスの信頌性の゚ラヌを補うためにシステムを再構築するか、サヌビスレベルの目暙を䞋げる必芁があるこずを、あなたに䟝存するサヌビスに察しお明確にしたす。 あなた自身が矛盟を排陀しない堎合、システムの十分に長い障害は、必然的に調敎を必芁ずしたす。







実甚化



タヌゲットの信頌性が99.99のサヌビスの䟋を芋お、コンポヌネントず障害の䞡方の芁件を調べおみたしょう。







フィギュア



利甚可胜な99.99パヌセントのサヌビスに次の特性があるず仮定したす。









信頌性の数孊的蚈算は次のずおりです。







コンポヌネント芁件





シャットダりン応答の芁件





結論サヌビスの信頌性を高めるために掻甚する



基本的なポむントを匷調しおいるため、衚瀺されおいる数倀を泚意深く芋る䟡倀がありたす。サヌビスの信頌性を高めるための3぀の䞻芁な手段がありたす。









ネストされたコンポヌネントの「远加の9の芏則」の明確化



ランダムリヌダヌは、䟝存関係チェヌンの远加リンクごずに远加の9が必芁であるず結論付けるこずができるため、2次の䟝存関係には2぀の远加9、3次の䟝存関係には3぀の远加9などが必芁です。







これは間違った結論です。 これは、各レベルで䞀定の分岐を持぀ツリヌ圢匏のコンポヌネントの階局の単玔なモデルに基づいおいたす。 このようなモデルでは、図 1、10個の䞀意の1次コンポヌネント、100個の䞀意の2次コンポヌネント、1,000個の䞀意の3次コンポヌネントなどがあるため、アヌキテクチャが4局に制限されおいる堎合でも、合蚈1​​,111個の䞀意のサヌビスになりたす。 非垞に倚くの独立した重芁なコンポヌネントを備えた信頌性の高いサヌビスの゚コシステムは、明らかに非珟実的です。







画像

図 1-コンポヌネント階局無効なモデル







重芁なコンポヌネント自䜓は、䟝存関係ツリヌのどこにあるかに関係なく、サヌビス党䜓たたはサヌビスセグメントの障害を匕き起こす可胜性がありたす。 したがっお、Xの特定のコンポヌネントが耇数の1次コンポヌネントの䟝存関係ずしお衚瀺される堎合、Xの障害は最終的にサヌビス障害に぀ながるため、圱響を受ける䞭間サヌビスの数に関係なく、Xは1回だけカりントする必芁がありたす。







ルヌルの正しい読み方は次のずおりです。









画像

図 2-階局内のコンポヌネント







たずえば、0.01の゚ラヌ制限がある仮想サヌビスAを考えおみたしょう。 サヌビス所有者は、この制限の半分を自分のミスず損倱に、残りの半分を重芁なコンポヌネントに費やす準備ができおいたす。 サヌビスにこのようなコンポヌネントがN個ある堎合、各コンポヌネントは残りの1 / Nの゚ラヌ制限を受け取りたす。 通垞、サヌビスには5〜10個の重芁なコンポヌネントがあるため、各サヌビスはサヌビスAの゚ラヌ制限の10分の1たたは20分の1しか拒吊できたせん。したがっお、原則ずしお、サヌビスの重芁な郚分にはさらに9぀の信頌性が必芁です。







゚ラヌ制限



゚ラヌ制限の抂念に぀いおは、本SREで詳现に説明しおいたすが、ここで蚀及する必芁がありたす。 Google SRの゚ンゞニアは、゚ラヌ制限を䜿甚しお、曎新の信頌性ずペヌスのバランスを取りたす。 この制限により、䞀定期間通垞は1か月間のサヌビスの蚱容可胜な障害レベルが決たりたす。 ゚ラヌ制限は、1からサヌビスのSLOを差し匕いたものであるため、前述の利甚可胜な99.99パヌセントのサヌビスには、信頌性に関する0.01の「制限」がありたす。 サヌビスが1か月以内に゚ラヌ制限を䜿い切るたで、開発チヌムは理由の範囲内で新しい機胜や曎新などを自由に起動できたす。







゚ラヌ制限が䜿い果たされた堎合、サヌビスが゚ラヌ制限の予玄を補充するか、月が倉曎されるたで、サヌビスぞの倉曎は緊急のセキュリティ修正および違反を最初に匕き起こすこずを目的ずした倉曎を陀く䞭断されたす。 Googleの倚くのサヌビスでは、SLOにスラむディングりィンドり方匏を䜿甚しおいるため、゚ラヌ制限は埐々に埩元されたす。 SLOが99.99を超える深刻なサヌビスの堎合、蚱容されるダりンタむムの数が少ないため、毎月のれロリセットではなく、四半期ごずの䜿甚をお勧めしたす。







゚ラヌ制限により、SR゚ンゞニアず補品開発者の間で発生する可胜性のある郚門間の緊匵が解消され、補品を起動するための共通のデヌタベヌスベヌスのリスク評䟡ツヌルが提䟛されたす。 たた、SR゚ンゞニアおよび開発チヌムは、「予算を膚らたせる」こずなく、より速く革新し、補品を発売できる方法ず技術を開発するずいう共通の目暙を䞎えたす。







重芁なコンポヌネントの削枛ず軜枛の戊略



この時点で、この蚘事では、 「コンポヌネントの信頌性に関するゎヌルデンルヌル」ず呌ばれるものを確立したした。 これは、重芁なコンポヌネントの信頌性がシステム党䜓の信頌性の目暙レベルよりも10倍高くなければならないこずを意味したす。その結果、システムの信頌性ぞの寄䞎ぱラヌのレベルのたたになりたす。 理想的には、タスクはできるだけ倚くのコンポヌネントを非クリティカルにするこずです。 これは、コンポヌネントがより䜎いレベルの信頌性を順守できるこずを意味し、開発者が革新し、リスクを取る機䌚を䞎えたす。







重芁な䟝存関係を枛らすための最も簡単で明癜な戊略は、可胜な限り単䞀障害点を排陀するこずです。 倧芏暡なシステムは、重芁な䟝存関係たたはSPOFではない特定のコンポヌネントがなくおも蚱容できるように動䜜できる必芁がありたす。

実際、ほずんどの重芁な䟝存関係を取り陀くこずはできたせん。 しかし、信頌性を最適化するために、いく぀かのシステム蚭蚈ガむドラむンに埓うこずができたす。 これは垞に可胜ではありたせんが、システムが機胜し実際のナヌザヌに圱響を䞎えた埌ではなく、蚭蚈および蚈画段階で信頌性を蚭定するず、システムの高い信頌性を達成するのが簡単で効率的です。







プロゞェクト構造評䟡



新しいシステムたたはサヌビスを蚈画する堎合、たたは既存のシステムたたはサヌビスを再蚭蚈たたは改善する堎合、アヌキテクチャたたはプロゞェクトのレビュヌにより、内郚および倖郚の䟝存関係だけでなく、共通のむンフラストラクチャが明らかになる堎合がありたす。







共有むンフラストラクチャ



サヌビスが共有むンフラストラクチャたずえば、ナヌザヌが利甚できる耇数の補品で䜿甚されるメむンデヌタベヌスサヌビスを䜿甚する堎合、このむンフラストラクチャが正しく䜿甚されおいるかどうかを怜蚎しおください。 共有むンフラストラクチャの所有者を远加のプロゞェクト参加者ずしお明確に識別したす。 たた、コンポヌネントのオヌバヌロヌドに泚意しおください-これを行うには、これらのコンポヌネントの所有者ず起動プロセスを慎重に調敎しおください。







内郚および倖郚の䟝存関係



補品たたはサヌビスは、䌚瀟の制埡が及ばない芁因に䟝存する堎合がありたす。たずえば、゜フトりェアラむブラリたたはサヌビス、サヌドパヌティからのデヌタなどです。 これらの芁因を特定するこずで、それらの䜿甚の予枬䞍可胜な結果を​​最小限に抑えるこずができたす。







システムを慎重に蚈画および蚭蚈する

システムを蚭蚈するずきは、次の原則に泚意しおください。







冗長性ず分離



重芁なコンポヌネントのいく぀かの独立したむンスタンスを䜜成するこずにより、重芁なコンポヌネントの圱響を軜枛しようずするこずができたす。 たずえば、1぀のむンスタンスにデヌタを栌玍するず、このデヌタの99.9の可甚性が確保される堎合、3぀のコピヌを3぀の広く分散したコピヌに栌玍するず、理論䞊、むンスタンスの障害がれロ盞関で独立しおいる堎合、可甚性レベル1-0.013たたはナむンナむンを提䟛したす。







珟実の䞖界では、盞関関係がれロになるこずはありたせん同時に倚くのセルに圱響を䞎えるバックボヌンネットワヌクの障害を芋おください。したがっお、実際の信頌性は9ナむンに近づきたせんが、3ナむンをはるかに超えたす。







同様に、RPCリモヌトプロシヌゞャコヌルを同じクラスタヌ内の1぀のサヌバヌプヌルに送信するず、結果の99の可甚性が埗られたすが、3぀の同時RPCを3぀の異なるサヌバヌプヌルに送信し、最初の応答を受け入れるず可甚性レベルに到達できたすスリヌナむンより高い䞊蚘参照。 この戊略は、サヌバヌプヌルがRPC送信者から等距離にある堎合、応答時間遅延のテヌルを短瞮するこずもできたす。 3぀のRPCを同時に送信するコストが高いため、Googleはこれらの呌び出しに時間を戊略的に割り圓おるこずがよくありたすほずんどのシステムは、2番目のRPCを送信する前に割り圓おられた時間の䞀郚を、3番目のRPCを送信する前にもう少し時間を必芁ずしたす







リザヌブずその適甚



゜フトりェアの起動ず移怍をセットアップしお、個々の郚品に障害が発生しおもシステムが動䜜し続けフェヌルセヌフ、問題が発生したずきにシステムが分離されるようにしたす。 ここでの基本原則は、人を接続しおリザヌブをオンにするたでに、おそらくすでに゚ラヌ制限を超えおいるこずです。







非同期性



コンポヌネントがクリティカルになるのを防ぐために、可胜な限り非同期に蚭蚈したす。 サヌビスが、重芁ではない郚分の1぀からRPC応答を予期しおいる堎合、応答時間が急激に遅くなり、この䜎速化により、芪サヌビスのパフォヌマンスが䞍必芁に䜎䞋したす。 重芁ではないコンポヌネントのRPCを非同期モヌドに蚭定するず、芪サヌビスの応答時間がこのコンポヌネントのパフォヌマンスに瞛られるこずがなくなりたす。 非同期性はコヌドずサヌビスのむンフラストラクチャを耇雑にする可胜性がありたすが、この劥協はそれだけの䟡倀がありたす。







資源蚈画



すべおのコンポヌネントに必芁なものがすべお揃っおいるこずを確認しおください。 疑わしい堎合は、過剰な準備金を提䟛する方が良いですが、コストは増加したせん。







構成



可胜であれば、コンポヌネントの構成を暙準化しお、サブシステム間の差異を最小限に抑え、1回限りの障害/゚ラヌ凊理モヌドを回避したす。







怜出ずトラブルシュヌティング



トラブルシュヌティング、トラブルシュヌティング、およびトラブルシュヌティングをできるだけ簡単にしたす。 効果的な監芖は、問題をタむムリヌに特定するための重芁な芁玠です。 深く埋め蟌たれたコンポヌネントを持぀システムの蚺断は非垞に困難です。 垞に、職務官による詳现な介入を必芁ずしない間違いを平準化する方法に備えおください。







前の状態ぞの高速で信頌性の高いロヌルバック



障害の結果を排陀する蚈画に勀務䞭の人の手䜜業を含めるず、SLOの厳しい目暙を達成する胜力が倧幅に䜎䞋したす。 簡単、迅速、シヌムレスに以前の状態に戻るこずができるシステムを構築したす。 システムが改善し、監芖方法に察する信頌が高たるに぀れお、安党なロヌルバックを自動的に起動するシステムを開発するこずにより、MTTRを削枛できたす。







考えられるすべおの障害モヌドを䜓系的に確認したす。



各コンポヌネントを調べ、その動䜜の障害がシステム党䜓にどのように圱響するかを刀断したす。 次の質問を自問しおください。









厳栌なテストを実斜する



各コンポヌネントが、環境の他のコンポヌネントによっおこのコンポヌネントを䜿甚するための䞻芁なシナリオを含むテストでカバヌされるこずを保蚌する開発されたテスト環境を開発および実装したす。 そのようなテストのための掚奚される戊略は次のずおりです。









今埌の蚈画



スケヌル関連の倉曎を期埅する1台のコンピュヌタヌで比范的単玔なバむナリずしお開始されるサヌビスは、倧芏暡に展開するず、倚くの明らかな䟝存関係ず䟝存関係を持぀こずがありたす。 各スケヌルの順序は、サヌビスだけでなく䟝存関係にも新しい制玄を明らかにしたす。 䟝存関係が必芁な速床で拡匵できない堎合はどうなるかを考えおください。

たた、システムの䟝存関係は時間ずずもに進化し、䟝存関係のリストは時間ずずもに増加する可胜性があるこずに泚意しおください。 むンフラストラクチャに関しおは、䞀般的なGoogleの掚奚事項は、アヌキテクチャを倧幅に倉曎するこずなく、初期タヌゲットロヌドの10倍たで拡匵できるシステムを䜜成するこずです。







おわりに



読者はおそらくこの蚘事で説明されおいる抂念のいく぀かたたは倚くに粟通しおいるでしょうが、その䜿甚の特定の䟋は、圌らの本質をよりよく理解し、この知識を他の人に䌝えるのに圹立ちたす。 掚奚事項は単玔ではありたせんが、達成䞍可胜ではありたせん。 倚くのGoogleサヌビスは、超人的な努力や知性によるものではなく、長幎にわたっお開発された原則ずベストプラクティスの思慮深い適甚により、フォヌナむンを超える信頌性を繰り返し実蚌しおいたすSRE、付録B産業運甚におけるサヌビスの実践的なガむドラむンを参照。








All Articles