開発から運用まで、IT部門のお役に立つ情報をお届けするサイトです

運用管理は変わらない変えるのは”やりかた”だ次世代型ITサービスマネジメント変革ソリューション『縁(ENISHI)』
  • サービス品質

SREとは?目的から実現方法までわかりやすく解説

  • #システム監視
  • #運用管理
  • #SRE

2023.08.28

SREとは?目的から実現方法までわかりやすく解説

昨今、システム運用の効率化やシステム障害の削減が企業に求められる中、とりわけ「SRE(Site Reliability Engineering)」という言葉が注目を集めています。しかし、SREとは具体的に何なのか、明確に理解されていない方も多いのではないでしょうか。

そこで今回、皆さんのシステム運用効率化を助けるため、SREについてわかりやすく解説したいと思います。


SREとは

Google社が2003年頃に提唱したSRE(Site Reliability Engineering)とは、システム管理とサービス運用の新しい考え方です。IT業界で急速に広がっているこの概念は、システムの安定稼働を保証しつつ、新機能の追加やシステムの改善を行うことを目指しています。


SREの目的

連携

SREの主な目的は、開発担当者と運用担当者が連携し、システムやサービスのダウンタイムを最小限に抑えつつ、新機能の追加やシステムの改善を継続的に実施することです。これにより、ビジネスの競争力向上が期待されています。

従来のシステム運用では、開発担当者と運用担当者が別々に稼働していました。開発担当者は新機能の追加やサービスの早期リリースを優先し、一方で運用担当者はサービスの安定稼働を優先するといった考え方の違いから、担当者間で衝突が起きていました。

この問題を解決するために考えられたのがSREです。SREは、「もしソフトウェアエンジニアがシステム運用を設計したらどうなるか」という観点を取り入れています。開発担当者と運用担当者が密接に連携し、開発と運用のバランスを取ることで、担当者間の衝突がなくなり、システム運用の改善が期待されます。

SREでは具体的に次のようなことを目指します。

・ システムの信頼性を高める
  システムのダウンタイムを最小限に抑え、ユーザーにとっての信頼性を高めます。

・ 開発と運用を効率化する
  開発と運用の間のギャップを埋めることで、両者の効率を向上させます。

・ システムのスケーラビリティを確保する
  システムが拡張し、ユーザー数が増えても対応できるようにします。

SREとDevOpsの違い

2つの違い

SREとは別にもう一つ、システムの開発と運用を効率化させる考え方として「DevOps」という言葉があります。SREとDevOpsは、深く関連する概念として広く認識されていますが、これらの違いや関係性を十分に理解していない方もいらっしゃるかもしれません。

DevOpsは、開発(Development)と運用(Operations)を組み合わせた言葉で、開発担当者と運用担当者が協力し、アプリケーションやサービスの開発を加速化させるソフトウェア開発手法のことをいいます。

SREとDevOpsの違いおよび関係性は、Google社が提唱している「class SRE implements DevOps」という言葉で明確化されており、SREはDevOpsを実践する具体的な手法であると言えます。


SREエンジニアの役割

SREの考え方が広まるにつれて、エンジニアの役割も変化してきています。

従来の運用エンジニアは、システムの安定稼働を主な目的としていました。しかし、SREエンジニアは、システムの安定稼働を保つだけでなく、新機能の開発や改善にも関与します。

これによって、新機能のリリースとシステムの安定稼働との間のギャップが縮まり、より効率的なシステム運用が可能になります。


エンタープライズSREとは

SREの普及に伴い、最近では「エンタープライズSRE」という言葉も浸透し始めています。エンタープライズSREとは、SREの考え方を既存のエンタープライズ環境に導入することを指します。

元々、SREは主にネットネイティブ企業で採用されてきました。しかし、近年では基幹システムのクラウド移行が進み、その過程でSREの考え方が基幹システムにも取り入れられるようになりました。これにより、従来のエンタープライズシステムでも、システムの安定稼働と新機能の追加・改善を同時に進めることが可能になり、システム運用の効率化が図られています。

エンタープライズSREの導入により、企業はシステムの停止時間を最小限に抑えつつ、ビジネスの変化に迅速に対応できるようになります。エンタープライズSREは、ビジネスの競争力を維持し、さらに向上させるために不可欠な要素となっています。

大手ベンダー企業、例えば日立製作所も、エンタープライズSREに注目し、製品やサービスにその要素を取り入れています。こうした市場の動きによって、エンタープライズSREの考え方や手法は、より広範なシステムに適用され、その効果が広く認知されるようになってきています。


SREの実現方法

METHOD

SREの目的を達成するためには、具体的に何を実践すればよいのでしょうか。
いくつかポイントがある中で、ここでは3つに絞って解説します。

 ・サービスレベルの計測、目標設定
 ・自動化/省力化のためのコード活用
 ・インシデント対応と改善


それぞれについて詳しく説明します。


サービスレベルの計測、目標設定

SREでは、サービスレベル指標(SLI:Service Level Indicator)とサービスレベル目標(SLO:Service Level Objective)を設定します。SLIとは、システムのパフォーマンスや信頼性を計測する指標で、SLOはその指標に対する目標値のことをいいます。

従来のシステム運用と似ていますが、SREではサービスレベルに対するアプローチが少し異なります。例えば、SLOについて、年間の可用性(つまり、システムが正常に動作している時間の割合)を「99.99%」と設定した場合、許容されるダウンタイムは「52.6分」になります。SREでは、「52分間のダウンタイムが許容されるなら、その52分間でどのように改善できるかを考える」という攻めの運用をするのが特徴的です。

また、SREでは「オブザーバビリティ」という概念を導入して、サービスレベルの計測方法を発展させます。これまでのモニタリングでは、個々の監視項目を別々に管理していましたが、オブザーバビリティでは、観測に必要なあらゆるデータを取得しながら、どのような影響を与えるかに着目します。

例えば、以前のモニタリングでは、CPUの使用率が高いときに注意を払っていましたが、オブザーバビリティでは、CPUの使用率が高いことがサービスレベルにどのような影響を与えるかを評価します。そのため、サービスに影響を与えない場合は、CPU使用率の高騰を無視します。これによって、運用担当者は、CPU使用率の高騰に関する報告書を作成せずに済みます。


自動化/省力化のためのコード活用

SREでは、自動化と省力化のためにコードを活用します。現在、仮想化やクラウドの普及により、コンピュータはもはやソフトウェアの一部のように扱われています。クラウドのマネージド・サービスに至っては、これらをコンピュータとは呼ばず、むしろサービスとして捉えるのが一般的です。

そういった時代の変化の中で、従来の機械を扱う手順で運用を続けることは非効率です。重要なのは、手順そのものが不要というわけではなく、ソフトウェアに合った手順に変化していくことです。その手段がコード化です。

従来は運用担当者が手順を作成し、その手順に基づいて作業を行っていました。しかし、これは、実質的に同じ作業を2回行うことと同じです。作業手順を作成したら、システムに作業を任せる方が効率的です。

「コード」という言葉に抵抗感を持つ人もいますが、IaC(Infrastructure as Code)は、実際には作業手順の作り方を変えるだけです。方眼紙やExcelに手順を書き込む際にもルールがあるように、コードによるルールで作成すれば良いのです。これによって、運用はより効率的なものになります。


インシデント対応と改善

SREでは、インシデント対応は単なる問題解決だけではなく、システムの改善と学習の機会と捉えます。インシデントが発生した際には、インシデントが発生した原因を細かく分析し、その結果を元に再発防止策を立案します。このプロセスでは、単に技術的な問題だけでなく、組織や人の行動も対象として考慮します。

SREでは、原因を個人のミスに求めるのではなく、チーム全体の問題として捉えます。このアプローチにより、チーム全体が問題解決に取り組むことが可能となり、組織全体の学習と改善が進みます。

また、SREではインシデント対応の自動化も重視します。例えば、特定のエラーが発生した際に、自動的に対応策を実行するシステムを構築することで、人間の介入を最小限に抑え、迅速な対応を可能にします。この仕組みにより、運用担当者は他の重要なタスクに集中できます。

このように、SREのインシデント対応と改善は、ただ問題を解決するだけでなく、システムの改善と学習のチャンスとして捉え、組織全体の進歩を推進させます。


SREの実現に役立つツール

ツール

アシストでは、エンタープライズSREの実践に役立つツールをご用意しております。


エンタープライズSRE対応:JP1

JP1は、国内トップシェアを誇る統合システム運用管理ソフトウェアです。システムの自動化や稼働性能監視、資産管理等を統合的に行うことができます。
2023年6月にリリースされた「JP1 Version13」 、9月にリリース予定の「JP1 Cloud Service 2.0」では、エンタープライズSREの実現をサポートする機能が追加されます。

JP1 Version13では、高精度なオブザーバビリティを提供します。複雑化したITシステムをさまざまなレイヤーで監視し、サーバリソースやクラウドサービスを一元的に管理できます。また、SaaS版の通報管理サービスも提供され、障害検知を契機とした自動通知も可能です。JP1 Version13は、ITサービスの健全性を評価し、問題解決とサービスの安定性向上を支援します。

また、JP1 Cloud Service 2.0では、コードの活用によって、運用の自動化と省力化を実現できます。「Ops I(オプス・アイ)」というプラットフォームを使用することで、運用オペレーションをコードで行い、分断された運用オペレーションを統合・統制できます。チケット管理や問題解決プロセスとの連携が強化されており、迅速かつ効率的な運用管理が可能です。

さらに、JP1の今後のロードマップでは、更なる進化が予定されています。
2024年度以降では、オブザーバビリティの強化や、運用 as CodeによるエンタープライズSRE対応の強化などが計画されています。これにより、企業は効率的で革新的な運用を実現し、競争力を向上させることができます。


その他ツール


オブザーバビリティの実現:Zabbix

Zabbix は、オープンソースの監視ツールで、システムの可用性やパフォーマンスを監視します。商用製品を含めた他の監視システムにはない高度な監視、アラート、Webインタフェースを提供し、システムの状態をリアルタイムに把握することが可能です。

Zabbixは、多様な監視項目のテンプレートを有しており、システムの異なる側面を監視できます。これにより、システム全体の観察が網羅的に行え、オブザーバビリティが向上します。また、通知やアラートの柔軟な設定が可能なため、重要なイベントが発生した際には、運用担当者は素早く対応できます。


システム運用の自動化と最適化:Ansible

Ansible(Red Hat Ansible Automation Platform) は、オープンソースの構成管理自動化ツールで、ITインフラストラクチャの管理と構成を効率化します。

Ansibleを使用すると、システム運用を自動化でき、手動での繰り返し作業やエラーを減らせます。また、環境の最適化を図ることも可能です。


インシデント対応と管理:SMAX

SMAX(Service Management Automation X) は、コンテナ型のITサービスマネジメントツールです。サービスデスク管理、インシデント管理、問題管理、変更管理、ナレッジ管理、構成管理といったITサービスマネジメントに必要な機能や、充実したレポート・ダッシュボードも全て標準機能で搭載しています。

さらに、 AIやビッグデータ活用、チャット などの機能を有しており、ナレッジの活用など、運用効率化を実現します。


まとめ

いかがでしたか?Googleが初めて提唱してから20年弱が経過し、SREという概念を取り入れる企業が増えてきました。SREは、運用手法をアップデートする取り組みであり、効率的なシステム運用の実現を目指しています。そして最近では、「エンタープライスSRE」がシステム運用者からの注目を集めるようになっています。

本記事ではエンタープライズSREを支援するツールとして、「JP1 Version13」をご紹介しました。ツールをうまく活用することで、システムやサービスの運用が効率化し、結果として企業全体の競争力アップにつながるでしょう。

「JP1」は、株式会社アシストが詳細説明やデモンストレーションなど、導入するためのサポートを行っております。ぜひこちらもご参照ください。



「Zabbix」、「Ansible」、「SMAX」のご紹介も可能です。