はじめに
昨今のソフトウェア・サービスは、品質を保ちつつ、顧客ニーズの変化への迅速な対応が求められています。しかし、従来のウォーターフォール型の開発では変化に対する迅速な対応が難しく、サービスを提供する基盤も含めたアジャイル型への適応が急務となっています。それら迅速な対応を支える代表的な方法論がSite Reliability Engineering(以下SRE)やDevOpsです。SREとDevOpsは、開発スピードだけではなく、ソフトウェア・サービスの品質を向上するための手法です。また、ITILにおいてはサービスの変更、リリース、インシデントなどの運用に関するガイダンスを提供しています。これらは単独ではなくお互いに補完関係にありますが、今回は信頼性に重点を置いているSREについて紹介します。

SREとは
SREは、ソフトウェアエンジニアリングの側面を取り入れて、インフラや運用の問題に適用する学問分野です。2003年頃にGoogle社で作成され、SRE書籍として公開*されています。スケーラブルで信頼性の高い分散ソフトウェアシステムの実現を目指すため、SREは運用作業に50%の時間を費やし、残りの50%をイノベーションや新機能、自動化などの開発に費やします。これらの考え方は、大規模サービスを運営する多くの組織が導入しています。
SRE書籍では、推奨される原則が多く紹介されていますが、大きくは「技術的要素」と「文化的要素」の二つに分類することができます。今回は、その二つの分類の代表的な要素についてご紹介します。
SREの技術的要素
SREの技術的要素として、以下の4つが挙げられます。
トイルの削減
トイルとは、手作業や繰り返し行われるような無駄な作業を指します。SREではこのトイルを特定し、可能な限り作業を自動化することでヒューマンエラーを削減します。また、自動化により、イノベーションや新機能の開発、更なる自動化についての時間を確保することができます。
SLOとSLI
SLO(Service Level Objective)は製品やサービスがどれだけうまく機能するべきかという目標であり、SLI(Service Level Indicators)はSLOの元となる測定値(指標)を指します。SLOとSLIの設定では、可用性といった運用上の指標だけではなく、顧客満足度やユーザビリティ等の顧客目線の指標も考慮する必要があります。指標の可視化という観点では、可観測性(オブザーバビリティ)といった技術領域も重要になってきます。
自動化
継続的インテグレーションや継続的デリバリーといった自動化によって、サービスやアプリケーションの迅速な展開が可能になります。コンテナとIaC(Infrastructure as Code)を組み合わせて利用することで、イミュータブルな環境を素早く展開することができます。
アンチフラジリティ
アンチフラジリティとは、マイナスの出来事に対して損失を最小限にし、利益を生み出すことを指します。カオスエンジニアリングや災害対策などの実験を継続的に行い、脆弱な領域を特定・把握し、対応策を施すことでサービス全体の堅牢性を向上させます。
SREの文化的要素
SREの文化的要素として、以下の2つが挙げられます。
非難しない文化
今後、システムはより複雑性を増す傾向にあり、失敗を避けるのが困難な状況になってきます。 SREの原則では100%の信頼性目標は間違っているとされており、失敗からどれだけ早く回復できるが重要とされています。「失敗を非難せず、失敗が学びの場である」ということを自覚することで、改善につなげることができます。
ポストモーテム
ポストモーテムは、インシデントの再発を避けるために書かれる文書です。そこには、発生したインシデントとそのインパクト、緩和や解消のために行われたアクション、根本原因、再発防止のためのフォローアップのアクションを記録します。失敗の教訓を文書(ポストモーテム)として残し、その失敗を非難せず、積極的に対処することで、より信頼性のあるシステムを実現することができます。
最後に
今回は、SREの概要と代表的な要素の概略について説明しました。SREは信頼性が中心になるため、技術的要素にフォーカスしがちです。しかし、SREを実践する上では文化的要素への対応も大切であり、DevOpsと同様、技術と文化の両面を考慮したバランスのよいアプローチが必要になってきます。
MKIが取り組んでいるサービスインフラ研究開発では、SREの概念を取り入れた検証および実践を行っています。次回は、SREの代表的な要素の詳細についてご紹介したいと思います。
関連ページ
おすすめコラム:
スクラム手法を用いたアジャイル開発の実践
「ローコード開発」始めてみませんか?
クラウド複合開発 by アジャイル

高橋
イノベーション推進部 第二技術室
サービスインフラに関する研究開発やITSMの社内教育に従事。
コラム本文内に記載されている社名・商品名は、各社の商標または登録商標です。 本文および図表中では商標マークは明記していない場合があります。 当社の公式な発表・見解の発信は、当社ウェブサイト、プレスリリースなどで行っており、当社又は当社社員が本コラムで発信する情報は必ずしも当社の公式発表及び見解を表すものではありません。 また、本コラムのすべての内容は作成日時点でのものであり、予告なく変更される場合があります。