近幎、゜フトりェア開発には、スピヌドず柔軟性が求められおいたす。このような状況においお、IT郚門にぱンドナヌザヌに提䟛する゜フトりェアやサヌビスの品質を確保するための実践的な手法が必芁になるため、Googleが提唱したSREサむト・リラむアビリティ・゚ンゞニアリングが泚目されおいたす。

これたでIT郚門では、システムアドミニストレヌタヌシスアドが行うこずず、アプリケヌション開発者が行うこずの間に明確な線匕きが存圚しおいたした。しかし、゜フトりェア開発手法の䞀぀であるDevOpsの採甚により、セキュリティや安定性を重芖するIT運甚ず、スピヌドやビゞネスの倉化ぞの適応を重芖する開発ずのギャップが狭たりたした。

SREの抂念ずその圹割は、IT郚門のシスアドず䌌おいたすが、開発スキルや経隓が倚少加わりたす。アプリケヌションやサヌビスがサヌビルレベル契玄SLAの基準を満たしおいるか、自動拡匵サヌビスのオヌトメヌションが構築されおいるかに加え、SREの担圓者は開発郚門が䞻に担圓する゜フトりェア゚ンゞニアリングを通じた運甚䞊の問題に察凊したす。

埓来の優れたシステム管理者は、システム䞊に存圚するできるだけ倚くの運甚タスクを自動化するため、共有や修正をするシェルスクリプトのツヌルキットを垞に所持しおいたした。しかし、Kubernetesのような自動化およびオヌケストレヌションツヌルを実装するためのフレヌムワヌクは、SRE の圹割に移行するに぀れ、さらに倚くの開発䜜業を必芁ずするようになりたした。

以䞋、SREの定矩を明らかにした䞊で、その圹割に぀いお説明しおいきたす。

SREの定矩に必芁な芁玠

SREは、埓来のシスアドず開発者の圹割を兌ね備えおいるため、SRE担圓者がアプリケヌション党䜓をれロから曞き䞊げるこずはないでしょう。SRE担圓者は、bash シェルスクリプトや Pythonなどの蚀語を䜿甚しおタスクを自動化したす。たた、アプリケヌションスタックに䞀元管理が可胜なオブザヌバビリティを組み蟌んで䞻芁なメトリクスを枬定し、環境党䜓の可芳枬性の向䞊に貢献したす。

SREの䞀般的なコンセプトの䞀郚ずしお、定矩したサヌビスレベル目暙 (SLO) ずの敎合性を確保するために、サヌビスレベル指暙 (SLIs) を基準にしたレむテンシヌなどのメトリックスを䜿甚し、システムの信頌性を枬定するこずが掚奚されたす。

SLOを定矩する際は、レむテンシヌ、゚ラヌ率、党䜓的なスルヌプットなど、䞻芁なSLIsを指定しお、到達可胜な目暙を蚭定する必芁がありたす。たた、ダりンタむムコストを定矩し、アプリケヌションのアヌキテクチャを決定するのに圹立おるこずができたす。

このダりンタむムコストは、SREの重芁な抂念です。すべおのサヌビスが100遅延なく皌働するこずは期埅されおいたせん。もし䜕かのサヌビスが利甚できない堎合は、他の提携サヌビスの持続が求められたす。これは、マむクロサヌビス・アヌキテクチャの重芁な芁玠です。

䟋えば、怜玢サヌビスが利甚できない堎合、Webサむトやアプリケヌションの残りの郚分は通垞通り機胜する必芁がありたす。このダりンタむムや゚ラヌにた぀わる予算は、SRE 担圓者ず開発チヌムの協同における新機胜にも関連しおいたす。

たた、ある時間垯にダりンタむムコストのほずんどが消費されおしたったずしたす。この堎合、開発チヌムは新機胜の導入を、安定した環境におけるリスクを回避するため、予算をオヌバヌする心配がなくなるたで埅぀かもしれたせん。

぀たり、ITシステムの恒久的なフル皌働を目指すのではなく、䞀定のサヌビスレベルを保蚌するダりンタむムを考慮したSREを採甚するこずで、システム管理者は開発ず保守のバランスを取りながら運甚するこずを目指すのです。

SREの圹割ず任務

SREの担圓者は通垞、時間の50以䞊を運甚に費やしたせん。SREのメ゜ッドにおいお、この数字は、゚ンゞニアの劎苊や挫折を避けるためのポむントずなり埗たす。残りの50の時間は、新機胜の䜜成、システムのスケヌラビリティの向䞊、アプリケヌションのアラヌトなどの手動タスクの自動化など、プロゞェクト業務に充圓されるでしょう。

サヌビスが停止しおいる堎合、それは開発チヌムが察凊すべきです。特定のタスクのオヌナヌシップを明確にするこずで、SRE担圓者は、むンシデント発生埌のレビュヌ、オンコヌルロヌテヌションの蚈画ず最適化、他の゚ンゞニアリングチヌムず共有するためのランブックの知識文曞化など、他のタスクを実斜するこずができるようになりたす。

たた、この方法ぱンゞニアリングチヌム内のサむロ化を回避し、より䞀貫したむンシデント察応を促進するのに圹立ちたす。

SREずDevOpsの比范

SREは玔粋に開発のためのものではありたせんが、DevOps プロセスで重芁な圹割を担っおおり、組織がDevOpsのメリットを埗るこずをサポヌトしたす。SREの圹割自䜓は、DevOpsのプラクティスを実装したものず考えられたす。

DevOpsにおけるSREの圹割は、DevOpsチヌムが䜿甚するアプリずサヌビスが、必芁なずきに゚ンドナヌザヌずアプリケヌションから利甚できるようにするこずです。SREずDevOpsの間には重耇する郚分が倚く、この2぀はよく䞀緒に議論されたすが、明確な違いがありたす。

DevOpsは、゜フトりェアの開発ず実装のためのアゞャむル手法ずベストプラクティスに基づいた䞀連の原則ず定矩されおいたす。その名が瀺すように、DevOpsは゜フトりェアを䜜る偎ず、それらの゜フトりェアを皌働・維持する偎ずのギャップを埋めるものです。SREず同様に、DevOpsはチヌムの文化ず人間関係の䞊に築かれ、チヌムがより速い開発サむクルずバグ発生の防止を実珟するのを支揎したす。

SRE担圓者は、゜フトりェア開発およびむンフラストラクチャの管理に関する知識を共有しおベストプラクティスに関わる掚奚を行い、DevOpsを支揎したす。コヌド管理やモニタリングで DevOps゜フトの改善を盎接促すこずもできたす。たた、開発チヌムず運甚チヌム間のコミュニケヌションギャップをさらに瞮小し、むンフラ党䜓を改善したす。

SREを実践するメリット

゜フトりェアの信頌性を高め、皌働時間を維持するこずは、倚くの䌁業にずっお尜きるこずのない課題ずなっおいたす。クラりドプロバむダヌは、ハヌドりェアの信頌性を向䞊させるのに圹立ちたすが、流動する様々な障害に耐え、信頌性を維持できる゜フトりェアを蚭蚈するこずが䞍可欠です。

SREの原則を甚いるこずで、゜フトりェア実装の信頌性を向䞊し、゚ラヌが発生した際の平均修埩時間 (MTTR) を短瞮し、チヌム間のコラボレヌションを促進するこずができたす。たた、運甚䞊の問題を解決するこずで、チヌムは゜フトりェアにビゞネス䟡倀を生み出すための時間をより倚く費やすこずができたす。

SREの2぀の重芁な特城は、暙準化ず自動化です。この2぀は連動しおおり、もし環境が高床に暙準化されおいなければ、自動化のコヌドを構築するこずは難しいでしょう。環境が暙準化されおいるほど、タスクの自動化が容易になりたす。これらのタスクを自動化するこずで、2぀の点が倧きく改善されたす。゚ンゞニアが手䜜業に費やす時間が枛り、ヒュヌマン゚ラヌの可胜性が䜎枛したす。SREの実践は、珟圚および将来のシステムの信頌性を向䞊させるのに圹立぀のです。

著者プロフィヌル


サシャ・ギヌスSascha GieseHead Geek, SolarWinds

サシャ・ギヌスは、SolarWindsにおいおEMEAペヌロッパ、䞭東、アフリカ地域を束ねるアむルランド本瀟に勀める。シニア プリセヌルス ゚ンゞニアずしお、SolarWindsのチャネルパヌトナヌや顧客に察する補品トレヌニングを担圓し、幎次のSolarWinds Partner Summit EMEAぞは定期的に登壇。同瀟のプロフェッショナル認定プログラムであるSolarWinds認定プロフェッショナルにおいおも力を発揮しおいる。