サイト信頼性エンジニアリング (SRE)
青と黒の背景
サイト信頼性エンジニアリング (SRE)

SRE は、運用データおよびソフトウェア・エンジニアリングを活用して、IT 運用作業を自動化し、IT リスクを最小化しながらソフトウェア・デリバリーを加速します。

関連リンク

IBM AIOps と IT 自動化

IBM Cloud Pak for Watson AIOps


サイト信頼性エンジニアリングとは?

サイト信頼性エンジニアリング (SRE) は、ソフトウェア・エンジニアリングを使用して、他の方法ではシステム管理者 (sysadmins) が手動で行う IT 運用作業 (実動システム管理、変更管理、インシデント対応、緊急対応など) を自動化します。 

SRE の背後にある原則は、ソフトウェア・コードを使用して大規模なソフトウェア・ システムの監視を自動化することが、手操作による介入よりもスケーラブルかつサステナブルな戦略であるということです (特に、このようなシステムがクラウドに拡張または移行される場合)。

SRE はまた、新しい、または更新されたソフトウェアを継続的に実動にリリースしたい開発チームと、停止やその他の運用上の問題を引き起こさないという絶対的な確信なしにどのようなタイプの更新や新規ソフトウェアもリリースしたくない運用チームとの間に当然起こり得る軋轢の多くを軽減したり、なくしたりすることも可能です。 結果として、 DevOps に絶対に必要というわけではありませんが、SRE は DevOps 原則に密接に合致し、 DevOps の成功において重要な役割を担います。

SRE という概念は、Google の VPoE である Ben Treynor Sloss 氏によるものです。彼の「SREは、ソフトウェア・エンジニアに運用チームの設計を依頼した時にできあがるものです。(SRE is what happens when you ask a software engineer to design an operations team.)」という説明はよく知られています。


サイト信頼性エンジニアとは? 何を行う?

サイト信頼性エンジニアとは、IT 運用経験のあるソフトウェア開発者です。コーディング方法を知っていて、大規模 IT 環境で「明かりを点けておく (keep the lights on)」方法もわかっています。 

サイト信頼性エンジニアは、手動 IT 操作やシステム管理作業 (ログの分析、パフォーマンス・チューニング、パッチの適用、実動環境のテスト、インシデントへの対応、事後分析の実施) に自分の時間の半分も使いません。残りの時間は、それらの作業を自動化するコードの開発に費やします。 彼らの目標は、前者には時間を使わず、後者に時間をかけるようになっていくことです。

より高いレベルにおいては、SRE チームは開発チームと運用チームのブリッジとして働きます。これにより、開発チームは新しいソフトウェアや新機能を可能な限り迅速に実動化できます。一方、組織がその顧客と交わしたサービス・レベル・アグリーメント (SLA) に合致する、IT 運用のパフォーマンスおよびエラー・リスクの合意済み許容レベルも保証されます。 彼らの経験と豊富な運用データを基に、SRE チームは開発チームと運用チームの立ち上げを支援します

  • サービス・レベル指標 (Service level indicators: SLI): システムが提供するサービス・レベルの尺度。可用性 (アップタイム) やレイテンシーなどの測定基準
  • サービス・レベル目標 (Service level objectives: SLO): サービス・レベル指標を測定する合意済み手段
  • エラー・バジェット: SLA の契約条項に違反することなく、システムの障害やパフォーマンス低下が許容される最大時間。 エラー・バジェットは、企業のイノベーションの速度をサービス信頼性に対して自動的に調整するために、サイト信頼性エンジニアリング ・チームが測定基準以上に使用するツールです。 

エラー・バジェットはどのように働きますか?

エラー・バジェットは、企業のサービス信頼性をソフトウェア開発とイノベーションの速度に対して自動的に調整するために SRE チームが使用するツールです。 

企業の SLA が、年間に 99.99% のアップタイム (共通の可用性目標) を約束するものとします。 これは、月次エラー・バジェット (当月の契約結果なしに許容される合計ダウンタイム) が約 4 分 23 秒であることを意味します。

例えば、開発チームは、いくつかの新機能や改善点をシステムに展開することを望んでいます。 システムがエラー・バジェット下で稼働している場合、開発チームは新機能をデリバリーできます。 そうでない場合、チームは運用チームと連携してこれらのエラーや停止を許容レベル以下にするまで、新機能をデリバリーできません。

このように、エラー・バジェットは、開発チームと運用チームが以下を行うために役立ちます。

  • サービスの安定度およびパフォーマンスの向上
  • 新しい機能やアプリケーションのデプロイについてデータに基づいた意思決定を行う
  • 許容範囲内でリスクを負うことにより、イノベーションを最大化する

SRE と DevOps

DevOps は、高品質のアプリケーションを迅速にデリバリーするための現代的方法です。これは、ソフトウェア・デリバリーのライフサイクルを自動化すること、また開発チームと運用チームにより多くの責任を共有させ、より多くの入力を互いの作業に提供することによって実現します。 

SRE と同様に、DevOps は、より多くのアプリケーションおよび変更を迅速にデリバリーする必要性と、実動環境を壊さないようにする必要性とのバランスをとることにより、業務をよりアジャイルなものにします。 また、SRE と同様に、DevOps は、エラーの許容可能リスクを設定することによってこのバランスを達成することを目標としています。 実際、SRE と DevOps は非常に似ているため、これらは同じものだというエキスパートもいますが、大半のエキスパートは SRE 実践を、DevOps 原則を実行に移す優れた方法と見なしています。 例えば、以下のようなものがあります。

DevOps 原則: 組織のサイロ化を防ぎ、ツールと自動化を活用する

SRE 実践: 開発者がソフトウェアの開発と改善に使用するものと同じツールを使用して運用を自動化し、改善する

DevOps 原則: 障害を通常のものとして受け入れ、段階的変更を行う

SRE 実践: エラー・バジェットを使用して、許容レベル内で継続的に新機能をデプロイする

DevOps 原則: あらゆるものを測定する

SRE 実践: SLA  測定基準に基づいて新規ソフトウェアのリリースを決定する

DevOps について詳しくは、次のビデオ (5:58) を見てください。


その他の SRE の利点

DevOps 成功のサポートに加えて、サイト信頼性エンジニアリングは以下のように企業に役立ちます。

  •  サービス正常性に対するより高い可視性を得る 。組織内のすべてのサービスにわたって測定基準、ログ、およびトレースを追跡し、インシデントのイベントで根本原因を特定するためのコンテキストを提供します。
  • ダウンタイムのコストを数値化する 。開発チームと運用チームが SLA 違反のコストを把握するのを支援し、またマネジメントが実動、セールス、マーケティング、カスタマー・サービス、およびその他のビジネス機能でのシステム信頼性の影響を数値化するのを支援します。
  • インシデント対応を最適化する 。効率的なオンコール・プロセスを構築し、アラート・ワークフローを合理化します。
  • 現代的なネットワーク運用センターを構築する 。IT 運用の深い理解と、マシン・ラーニングおよび自動化を組み合わせて、問題に対処する責任者にアラートを直接送信します。

SRE、クラウド、およびクラウド・ネイティブ開発

移行  (従来の IT およびオンプレミスのデータ・センターから ハイブリッド・クラウド 環境への) は、平均的な企業が毎年、 2 回から 3 回多く運用データを生成する主な理由の 1 つです。 SRE は次第に、このデータを活用して、システムの管理、運用、およびインシデント対応を自動化するために、また IT 環境がより複雑になっても企業の信頼性を向上させるために重要なものと見なされるようになってきています。

 クラウド・ネイティブ 開発手法 (特に マイクロサービス としてのアプリケーションの構築および コンテナー へのデプロイ) により、アプリケーションの開発、デプロイメント、およびスケーラビリティーを簡素化することができます。 ただし、クラウド・ネイティブ開発は、管理、運用、およびマネジメントを複雑にする、ますます分散されてゆく環境を作り上げることにもなります。 SRE チームは、クラウド・ネイティブ手法によって可能になる急速なイノベーションをサポートでき、またこれ以上の運用プレッシャーを DevOps チームに課すことなく、システム信頼性を保証したり向上させたりすることができます。


SRE と IBM Cloud

IBM Cloud Pak for Watson AIOps は、サイロ化した IT スタックおよびツールから運用データを収集し、 IT 環境全体の総合的ビューを SRE チームに提供します。 また、問題がインシデントになる前に予測してプロアクティブに解決するための強力な人工知能 (AI) も提供します。 IBM Cloud Pak for Watson AIOps を使用すれば、測定基準とイベントについてより深く把握し、リスクを予測および計算し、IT 運用を自動化してリスクとコストを下げることができます。 

 IBM Cloud Pak for Watson AIOps に関する詳細。

AI と自動化をどのように IT 運用に適用するかを調べることは、SRE が企業アプリケーションの回復力と堅固性を保証し、イノベーションをサポートするために貴重な時間と能力を確保するために役立ちます。 「An SRE Journey to AIOps」をお読みください

 IBM Cloud Professional Site Reliability Engineer (SRE)  ラーニング・パス・カリキュラムによって、スキルを身に付け、IBM Cloud SRE がどのように、システム信頼性を高めるか、現代的なクラウド設計パターンをコードに適用するか、また顧客要件とサービス問題に対する持続的な解決策を得るかを学びます。

IBMid を登録し自分の  IBM Cloud アカウントを作成してください。


関連ソリューション

IBM Cloud Pak for Watson AIOps

IBM Cloud Pak for Watson AIOps は、IT オペレーターが ITOps ツールチェーンの中心に AI を置くことを可能にする、IT 運用管理ソリューションです。