グーグル・クラウド・ジャパンは8月29日、オンラインでSRE(Site Reliability Engineering:サイト信頼性エンジニアリング)とJCBの採用事例に関する説明会を開催した。

SREとは

はじめに、グーグル シニア デベロッパーリレーションズ エンジニアの山口能迪氏はSREについて「信頼性の高い本番環境システムを実行するための職務、マインドセット、エンジニアリング手法のセットであり、Webサイトやサービスの信頼性をどのように確保し、運用していくのかという手法だ」と述べた。

  • グーグル シニア デベロッパーリレーションズ エンジニアの山口能迪氏

    グーグル シニア デベロッパーリレーションズ エンジニアの山口能迪氏

通常、ソフトウェアエンジニアリングは運用・保守よりも設計・構築を重視する傾向にあり、総コストの40~90%はローンチ後に発生することが見込まれている。

開発チームは、なるべく速く製品・サービスを開発する指向性だが、運用チームはリスクを減らすためにスピードを下げようとするため、協調的な働き方が難しく、脆い組織構造になってしまい、スケールも難しくしてしまっていると同氏は指摘する。

これは、開発と運用の各組織のサイロ化も促してしまうため、従来からプロダクトマネジメントと開発チームの間をアジャイル、開発チームと運用チームの間はDevOpsにより、それぞれの組織間における摩擦を低減するための取り組みが進められてきたという。

DevOpsは、Google社内においてSREが提唱された同時期に広まっており、開発と運用間の緊張を緩和するための手法として広く知られている。

SREとDevOpsの関連性

同氏は、DevOpsは「組織のサイロを削減」「失敗は当然と認識」「段階的な変化の導入」「ツールや自動化の活用」「すべてを測定」の5つの領域が重要だと示している。では、実際にSREとDevOpsはどのように関連しているのだろうか。

その点について、山口氏は「SREでは意思決定にデータを使い、運用をソフトウェアエンジニアリングと同じように扱う。そのため、ソフトウェア開発のスキルを持つ人たちが運用を自動化する必要があるほか、システムを事後に改修していくのではなく、はじめから信頼性が高くなるように設計しければならない」と話す。

  • SREを取り入れた運用の概要

    SREを取り入れた運用の概要

これらをふまえ、簡単にSREチームを説明すると大規模なシステムをスケーラブル、かつ信頼性高く、効率的に設計・構築・運用するためのソリューションを開拓し、ソフトウェア開発とシステムエンジニアリングの両方の視点からシステムアーキテクチャを導くことだという。

  • SREチームの役割

    SREチームの役割

同氏は「DevOpsはチーム間の壁を取り払うための文化的なプラクティスだが、SREはDevOpsのプラクティスを実践するための具体的な方法と、そのための職務を定義している」と述べた。

SREの主要原則「エラーバジェット」

SREの概要に続いて、同氏はSREの主要原則である「エラーバジェット」を解説した。エラーバジェット(非信頼性予算)とは、製品・サービスの信頼性がどの程度損なわれても許容できるかを示す指標だ。

ここでは信頼性の計測方法が前提となり、信頼性の定義とその計測方法が必要だという。例えば、信頼性の定義を可用性としてSLO(サービスレベル目標)を99.99%に設定した場合、残りの0.01%がエラーバジェットとなる。

1カ月(30日間)とした場合、00.1%は4.32分となることから、1カ月でダウンタイムが4.32分未満であれば開発を続け、超過する際は開発を中断してダウンタイムを減少させるなど信頼性向上の取り組む。これをエラーバジェットと定義している。

つまり、製品管理者とSREが可用性目標を定義し、100%から可用性目標を差し引いたものがエラーバジェットであり、モニタリングで実際の稼働時間を計測して、予算を活用するコントロールループだという。

  • エラーバジェットの概要

    エラーバジェットの概要

その利点は、開発チームとSREチームの共通インセンティブを定めることを可能とし、開発チーム自ら管理でき、インフラ障害は開発チームのエラーバジェットを消費するなど、システム稼働の責任を共有できるという点だ。

山口氏は「ユーザーが許容できる障害を見極めて、許容量まではエラーが起こり得るチャレンジを行い、許容量に近づいたらシステムを安定させるという判断を、開発、運用関係なく、1つの指標としてエラーバジェットに応じて行える」と説く。

ただ、エラーバジェットを定義するためにSLOの定義はシンプルなものに設定してスタートし、運用して定期的に振り返りながら設定していくことが望ましいという。

同氏は「SLOはユーザーのニーズにもとづいたた目標値であるからこそビジネスにも直結するため、ビジネス、開発、運用をはじめ、すべての組織との合意を得るための架け橋になる。また、SLOをプラクティスとするSREは全組織間で合意を得るためのプラクティスだ」と

そのほか、メトリクスと監視、キャパシティプランニング、チェンジマネジメント、緊急対応、文化醸成などもSREプラクティスに含まれる。