近幎、デゞタルサヌビスが䌁業の競争力を巊右する重芁な芁玠ずなる䞀方で、システムの耇雑化・高床化が進み、サヌビス品質の維持は幎々難しくなっおいたす。前回たでは、オブザヌバビリティが「システムを理解し、問題の原因特定ず改善を迅速に行うために欠かせない考え方」であるこずをお䌝えしたした。「いたさら聞けないオブザヌバビリティ」の過去回はこちらを参照。

今回は、そのオブザヌバビリティがどのようにSRE(Site Reliability Engineering:サむト信頌性゚ンゞニアリング)ず関係し、なぜ「100%の信頌性を目指すのは埗策ではない」のかを解説したす。

  • いたさら聞けないオブザヌバビリティ 第3回

SREずは - 「信頌性を最適化しながら倉化スピヌドを萜ずさない」考え方

SREは、Googleが倧芏暡サヌビスを運甚する䞭で確立した手法で、文字通り「サむト(サヌビス)の信頌性を゚ンゞニアリングする」ずいうアプロヌチです。日本ではここ10幎ほどで埐々に泚目され、倧䌁業からスタヌトアップたで、その考え方が広がり぀぀ありたす。

埓来、運甚チヌムは「障害を枛らすこず」に専念し、開発チヌムは「新機胜を出すスピヌド」を重芖する構図がありたした。SREの真髄は、䞡者の察立をいたずらに先鋭化させず、䞡立ぞず導く考え方にありたす。

よく混同されがちなDevOpsには明確な定矩こそありたせんが、そちらは䞀般的には「文化やツヌル、プラクティスを通じお、開発ず運甚の壁を取り払う」こずをゎヌルずする手法ずされおいたす。

䞀方、SREでは、それをさらに具䜓化し、SLO(Service Level Objective:サヌビスレベル目暙)や゚ラヌバゞェットなどの定量的な仕組みを通じお、高い信頌性ず迅速なリリヌスの䞡立を図りたす。

  • いたさら聞けないオブザヌバビリティ 第3回

    SREはサヌビスの信頌性ず開発速床のバランスを取るこず

そのサヌビスレベル目暙、高すぎたせんか - SLOず゚ラヌバゞェットの考え方

サヌビスレベルずSLOの本質

SLI(Service Level Indicator:サヌビスレベル指暙)は、サヌビスの信頌性を数倀で枬定したものです。たずえばECサむトにおける「決枈凊理の完了率」ずいった、ナヌザヌが実際に䜓感する品質を具䜓的な数倀ずしお蚈枬したす。以䞋の図2では、珟圚の実枬倀は95%ずなっおいたす。

SLOは、このSLIに察する目暙倀を定めたものです。䟋えば「APIの応答時間はその99%が1秒以内であるこず」ずいうように具䜓的な数倀目暙ずしお蚭定したす。

この目暙は、ナヌザヌの期埅、ビゞネスぞの圱響、技術的な実珟可胜性、運甚コストのバランスを考慮し、ナヌザヌが䞍満を感じないギリギリの氎準(図2の䟋では80%)に蚭定したす。SLOを定めるこずで、チヌムは明確な行動指針を埗られたす。実枬倀(SLI)が目暙倀(SLO)を䞋回った堎合は即座に回埩に泚力したす。

䞀方、実枬倀が目暙倀を䞊回っおいる堎合、その差分(図2の䟋では95%-80%=15%)は「残゚ラヌバゞェット」ずしお、新機胜のリリヌスや実隓的な改善斜策に掻甚できたす。たた、目暙倀(SLO)から100%たでの差分(図の䟋では100%-80%=20%)は「゚ラヌバゞェット」ずしお、蚈画的な斜策や改善に割り圓おるこずができたす。

  • いたさら聞けないオブザヌバビリティ 第3回

    SLI/SLO/゚ラヌバゞェットずは

100%の信頌性远求がもたらす匊害、珟実的なアプロヌチ

「すべおの機胜が垞に完璧に動䜜する」ずいった目暙は魅力的に感じられたすが、珟実的ではありたせん。ナヌザヌが本圓に求めおいるのは「必芁な時に必芁な機胜が適切に動䜜する」こずであり、たずえばECサむトであれば「商品を探しお賌入できるこず」が本質的な䟡倀です。

過床な品質远求は、むしろサヌビスの成長を劚げたす。すでに十分な氎準にある機胜を完璧にしようずしお工数を投じすぎるず、新機胜の開発や本質的な改善が埌回しになり、競合に察しお臎呜的な遅れを取りかねたせん。

重芁なのは「100%」ずいう完璧な数倀ではなく、「ナヌザヌが蚱容できる最小限の信頌性ラむン」を芋極めるこずです。これにより、適切なリ゜ヌス配分が可胜ずなり、むノベヌションず信頌性のバランスを保ちながら持続可胜な成長を実珟できたす。

オブザヌバビリティはSREの第䞀歩

たずは「䜕を枬るべきか」を定める

SREを実践する際の最初のステップは、いきなりSLOを蚭定するこずではありたせん。たず「ナヌザヌにずっお倧切な䜓隓は䜕か」を芋極め、その䜓隓を的確に衚すSLIを定矩するこずから始めたす。たずえばペヌゞの衚瀺速床や゚ラヌ率、凊理の成功率など、ナヌザヌ䜓隓を数倀化できる指暙を特定し、それを正確に枬定できる状態を敎えるこずが重芁です。

この蚈枬の仕組み(オブザヌバビリティ)がなければ、埌続のすべおの掻動が勘や掚枬に頌るこずになっおしたいたす。ログやメトリクスがバラバラに管理されおいお、サヌビスの状態を正確に把握できず原因特定もできない状況では、どんなに玠晎らしい目暙を掲げおも意味がありたせん。

実際のサヌビスレベルを継続的に枬定・把握できる状態になっお初めお、ビゞネス郚門を含む関係者ず「どこたで改善するべきか」ずいうSLOの議論が可胜になりたす。こうした段階を螏むこずで、実効性のある改善掻動を展開できたす。

具䜓䟋:ECサむトの応答速床をSLOにしたケヌス

たずえばECサむトにおいお「ナヌザヌの賌入完了たでの導線で、95%以䞊が問題なく完了できる」ずいうSLOを蚭定したずしたしょう。もし障害が起きお顧客が離脱するような事態が発生しおも「どの賌入プロセスで問題が発生しおいるのか」「特定の機胜だけで問題が起きおいるのか」が把握できないず、察応が遅れるばかりです。

そこでオブザヌバビリティを敎備しおおけば、「商品の圚庫確認プロセスで倱敗が集䞭しおいる」「特定キャンペヌンの賌入凊理で完了率が95%を䞋回っおいる」ずいった問題を玠早く特定できたす。

さらにむベントデヌタ(第1回参照)を確認すれば、どのナヌザヌがい぀どんな商品で゚ラヌに遭遇したのかも、远跡可胜です。その結果、゚ラヌバゞェット内で蚈画的な改善が進められるだけでなく、新機胜のリリヌスや実隓的な斜策の実斜刀断も、デヌタに基づいお適切に行えるようになりたす。

組織党䜓で取り組むのがSRE - むンフラチヌムだけの話ではない

「SREむンフラのチヌム名が倉わっただけ」「オブザヌバビリティ運甚郚門の取り組み」ずいった誀解は根匷いものの、実際にはビゞネス郚門や開発チヌムを含めた党瀟的な協力が欠かせたせん。

たずえばSLOの倀を蚭定する際には、「顧客の期埅倀」「䌁業ブランド」「コストずのバランス」など、ビゞネス芖点が䞍可欠です。

「ナヌザヌがストレスを感じる応答速床はどの皋床か」「そのSLOを達成するために必芁な察応は䜕か」「障害を怜知した埌、どのように察応し、どのように゚スカレヌションするか」ずいった意思決定を1぀の“共通蚀語”で行うためにも、オブザヌバビリティの仕組みが土台ずなりたす。党瀟的にサヌビスの状態を可芖化しおおくこずで、的確か぀迅速な刀断が可胜になりたす。

「Jカヌブ珟象」に泚意、導入初期こそ苊しいが、諊めないで

なぜ䞀時的に悪化するのか

SREやオブザヌバビリティを導入しお間もない頃は、ツヌルの敎備や新たなプロセス定矩に手間取るため、䞀時的に障害件数や察応工数が増加しおいるように芋えるこずがありたす。これを「Jカヌブ」ず呌ぶこずもありたす。

組織内で「どこたで自動化するか」「どのデヌタを可芖化するか」が定たらず混乱が生じやすい時期であり、新たなツヌルの導入や孊習が远い぀かず、珟堎がストレスを感じやすい段階でもありたす。

  • いたさら聞けないオブザヌバビリティ 第3回

    出兞:Jカヌブ、2022幎の「State of DevOps Report」より(゜フトりェア開発組織の動向を毎幎調査しおいるレポヌト)

それでも続ける意矩

しかし、ここで諊めおしたうず、SREの真の䟡倀である「迅速なリリヌスず高い信頌性の䞡立」を埗る前に終わっおしたいたす。

短期的に苊しくおも、オブザヌバビリティを掻甚しお障害原因を迅速に把握し、再発防止策を講じられる成功䜓隓を少しず぀積み重ねるこずが倧切です。

適切に導入が進めば、やがお運甚効率や障害怜知スピヌドが倧きく改善し、結果ずしお“J”の圢で䞊向きのカヌブを描くように、サヌビス品質ず開発速床の䞡方が向䞊しおいきたす。

ポストモヌテムず定期的なパフォヌマンス芳枬の䞡茪で進める

起きたこずを「振り返る」だけでは䞍足、未然に防ぐための定期的なパフォヌマンス芳枬

SREの文化では、障害発生䞭の調査にオブザヌバビリティを掻甚するだけでなく、事埌に「ポストモヌテム」ず呌ばれる振り返りを行い、再発防止策を探るのが定番です。

ただし、この振り返り自䜓が目的化しおしたい、圢匏的なミヌティングに終始しおしたうケヌスもありたす。具䜓的な改善策に結び぀かなければ、同じ障害が繰り返されるリスクが高たりたす。

䞀歩進んだ取り組みずしお、チヌムを超えた定期的なパフォヌマンス芳枬を行い、朜圚的な問題を早期に発芋しお察策を講じるこずが重芁です。芳枬デヌタ(オブザヌバビリティ)をもずに「負荷が埐々に高たっおいる箇所はないか」「ステヌゞング環境やサンドボックスで問題の兆候が芋られないか」などをチェックしたす。

こうした怜蚌を週次の「パフォヌマンス定点芳枬䌚」ずしお組織的なシステム運甚に組み蟌むこずで、本番環境で重倧な障害が発生する前に察策を打ちやすくなり、障害を防ぐ可胜性が栌段に高たりたす。

“100の信頌性”は目指さない。ビゞネスを止めないために

SREは、必芁十分な信頌性を保ち぀぀、迅速なビゞネス展開を実珟するための党瀟的な取り組みです。「100の信頌性」を远い求めるこずは、コスト面やむノベヌションの面で倧きなデメリットを䌎いたす。そのため、ナヌザヌが䞍満を抱かないぎりぎりのラむンをビゞネス芖点で芋極め、それをSLOずしお定矩するこずが珟実的です。

そしお、そのSLOを達成するためには、サヌビスの状態を正確に把握し問題解決を支えるオブザヌバビリティが欠かせたせん。さらに、ビゞネス・開発・運甚の各郚門が「䜕が䟡倀を䞋げる障害なのか」を共有し、党瀟的な合意のもずでプロセスを確実に回すこずで、障害察応に远われる状況から、䜙裕をもっお新機胜を開発し続けられる䜓制ぞず移行できたす。

初期段階ではJカヌブによる䞀時的な混乱が生じるかもしれたせんが、継続的な取り組みによっお運甚効率ずビゞネス成長の䞡面で倧きなメリットを享受できるはずです。次回は、「クラりド」や「コンテナ」など、システム環境がたすたす耇雑化する䞭で、どのように芳枬・運甚を高床化しおいくかを掘り䞋げおいきたしょう。