SAP on Azure

SREとは?システム運用に欠かせないSREの特徴や始め方を解説

ITインフラの複雑化とIT人材の不足というダブルパンチにより、システムの運用・保守に疲弊しているIT担当者も多いのではないでしょうか。本記事では、Googleが提唱するIT運用方法「SRE」の紹介を通して、安定的かつ効率的な運用業務を可能にするヒントを提供します。

SREとは?システム運用に欠かせないSREの特徴や始め方を解説

Microsoft Azure製品カタログ

SRE(サイト信頼性エンジニアリング)とは

そもそもSREとは何でしょうか。まずはこの概念を提唱したGoogleによる定義も参照しつつ、その意味を解説します。

SREはGoogleが提唱した方法論

SREとは“Site Reliability Engineering”の略称で、日本語では「サイト信頼性エンジニアリング」と訳されます。これは、ソフトウェアエンジニアリングを活用したIT運用の手法を意味しており、GoogleのエンジニアであるBen Treynor氏が最初に提唱しました。Googleは同氏がSREについて著述した本『Site Reliability Engineering』を以下のページで無料公開していますが、その中で氏は以下のように簡潔にSREを定義しています。

SRE is what happens when you ask a software engineer to design an operations team.
「SREとはソフトウェアエンジニアに運用チームの設計を依頼したときに起こるものです。」

our Site Reliability Engineering teams focus on hiring software engineers to run our products and to create systems to accomplish the work that would otherwise be performed, often manually, by sysadmins.

「SREチームは、ソフトウェアエンジニアを雇用して、製品を動かし、システム管理者がしばしば手作業で行っていた仕事を達成するシステムをつくることに集中します。」

要するに、SREとは、ソフトウェアエンジニアの技術を利用して、これまで手作業で行われていた運用管理作業を自動化ないしは効率化することを意味します。
従来のエンジニアは多くの場合、開発チームと運用チームとで分断されていました。その結果、開発チームはユーザーにとっての利便性を追求するばかりで、運用チームの負担を顧みない開発を行いがちになっていたのです。

しかし、運用チームの負担が増えるということは、それだけ障害の発生率や深刻度が増すということでもあり、システムの信頼性、ひいてはシステムの総合的な価値を損なう結果になります。Googleはまさにこの点に焦点を当て、開発段階においてSREチームによって予め保守管理しやすいシステムを構築することで、信頼性のあるシステムを持続的に開発できる体制を整えたのです。

もちろん、100%完璧に信頼できるシステムなど、現実に達成するのは困難です。過度の信頼性を求めることは非効率性を生み、結果としてシステムの総合的な価値を下げる恐れがあります。そのためGoogleは、SREについて次のように定義しています。

「サイト信頼性エンジニアリングとは、組織がシステム、サービス、および製品で "適切な" レベルの信頼性を持続的に達成するために役立つ専用のエンジニアリング手法です。」

SREとDevOpsの関係性とは?両者の違いは?

SREと関係の深い概念として「DevOps」が挙げられます。DevOpsとは“Development(開発)”と“Operations(運用)”の合成語で、これもSREと同様、手作業を自動化することを重んじ、高品質な製品を持続的に開発していくことを提唱する考えであることは共通しています。ただし、DevOpsはどちらかと言えば、抽象的な理念としての性質が強く、対してSREはその理念を実現するための具体的な取り組みとみなせます。Ben Treynorはこの両者の違いについて以下のように述べています。

One could view DevOps as a generalization of several core SRE principles to a wider range of organizations, management structures, and personnel. One could equivalently view SRE as a specific implementation of DevOps with some idiosyncratic extensions.

「DevOpsは、SREのいくつかの核心的な原則を、より広い範囲の組織、管理構造、人材に一般化したものとみなせます。同様にSREは、いくつかの独自の拡張を加えたDevOpsの具体的な実装とみなせます。」

[SMART_CONTENT]

SREの4つの特徴

SREには主に4つの特徴を備えています。以下では、それぞれの具体的内容を見ていきます。

「トイル」の削減

SREの核心的な目的として、「トイル」の削減が挙げられます。トイルとは、機械で自動化可能な手作業のことであり、労力とも言い換えられます。SREチームは自動化を通して、このトイルへの対応時間を全体の50%以下にすることを目指します。

「SLI」と「SLO」による計測管理

SREでは「SLI」と「SLO」によってシステムを計測管理します。SLIは“Service Level Indicator ”の略で、日本語では「サービスレベル指標」と訳されます。SLIはサービスがユーザーに与えたインパクトを測る指標で、製品の品質を評価するために利用されます。他方のSLOとは、“Service Level Objective”の略で、「サービスレベル目標」を意味します。SLOはSLIの目標値やその範囲を示すものです。

サービス品質は過剰に高くても低くても企業にとってパフォーマンスの悪いものになってしまいます。このため、SREでは適度なサービス品質を保てるようにSLIとSLOによってサービス品質を計測管理するのです。

「エラーバジェット」の設定

「エラーバジェット」の設定もSREの特色のひとつです。エラーバジェットとは、エラーに対して設定された予算を意味します。エラーパジェットの設定においても、SREは「適度であること」を重視します。完璧を目指して過剰に時間やコストを費やすことは、組織や業務全体のフォーマンスを下げる行いです。SREでは継続的な改善によって、適切なエラーバジェットを設定することを重視します。

「ポストモーテム(事後検証)」の徹底

最後の特徴は、「ポストモーテム」の徹底です。ポストモーテムとは「事後検証」を意味し、インシデントが起こった際に、「何が原因でそれが発生したのか」「どのように対応したのか」「再発防止策は何か」を事後検証することです。ポストモーテムの徹底的な文書化や全員でのレビューにより、ポストモーテム文化の定着を進めることで、チームは失敗から学び、業務品質や製品の信頼性を向上させられます。

SREのメリットは?従来のシステム運用との違いは?

従来のシステム運用と比べて、SREにはどのようなメリットがあるのでしょうか。続いてはSREのメリットを解説します。

運用業務の効率化ができる

SREの導入は。運用業務の効率化に寄与します。SREにおいては、従来なら手作業で行っていたシステム運用を積極的に自動化していくことを目指します。これにより業務の削減やヒューマンエラーの抑止が可能になり、業務全体の効率化を図れます。

パフォーマンスが向上する

SREの導入は、組織や業務全体のパフォーマンス向上をもたらします。SLIとSLOによる計測管理に示されるように、「適度なサービス」「適度な信頼性」を旨とするSREを推進することで、組織はコストパフォーマンスのバランスを適切に保ったベストプラクティスが可能になります。

安定的な運用管理が可能となる

SREの導入によって、安定的な運用管理を促進できます。先述のように、従来のIT部門は運用チームと開発チームが分断されていました。しかし、そこにSREが介入することで、開発段階から後の運用業務のしやすさを考えたシステム構築が促進されます。これにより、システムの継続的かつ安定的な運用管理が可能になり、同時に開発チームと運用チームの垣根がなくなり、軋轢が生じにくくなることも期待できます。

SREの始め方

最後にSREをどのように始めたらいいのかを解説します。SREの導入を検討する際はご参考にされてください。

組織でSREの認識を揃える

SREを始める際には、そもそもSREとは何なのか、何を目的に導入するのか、といった基本的な認識を組織内で揃えることが必要です。最初にこの共通認識をしっかりつくることで、後々までSREの実施が楽になります。

計測などのツールを導入する

次のステップは各種指標の計測用ツールなどを導入することです。ITによる自動化や問題解決を旨とするSREにおいては、それぞれのフェーズにおいて積極的にツールを活用します。SLIに示されるように、特に計測はSREの要となるので、一般的なものは計測できるようにしておくことが大切です。

SLIとSLOを決める

第三のステップはSLIとSLOを決めることです。先述したように、この2つはどのレベルのサービス品質を目指して開発や運用をしていくのかの指針となるものです。そのため、これらを設定する際には分かりやすいシンプルな指標や、無理がなく安定的に達成できる目標を設定することが大切です。

課題を見つけ、改善に取り組む

最後のポイントは、課題を見つけてその改善に取り組むことです。課題発見においては、先に設定したSLI、SLOが役立ちます。SLIがSLOの設定範囲から逸脱している場合は、そこに何らかの問題があるということです。課題が見つかったら、自動化などの取り組みによって、その改善に努めましょう。

Microsoft Azureとは何か?入門から応用まで徹底解説

クラウドとは何か?Azureとは何か?導入のメリットや構成、コストに至るまでの基礎的な知識から、どのように活用すべきかまでを徹底的に解説しています。

Microsoft Azureとは何か?入門から応用まで徹底解説

ブログ記事を見る

まとめ

SREとは、従来の手作業を積極的に自動化することを通して、運用業務の信頼性と継続性を向上させる方法論です。Microsoft Azureでは、「Azure Well-Architected Framework」というSREの導入にも資するフレームワークを提供しています。SREを始める際はぜひご活用ください。

New call-to-action
  • fb-button
  • line-button
  • linkedin-button
RELATED SITES

関連サイト

CONTACT

サイト掲載の
お問い合わせ

TOP