SREとは何ですか?サイト信頼性エンジニアの重要な役割

世界がオンラインに移行するにつれ、ウェブサイト、クラウドアプリケーション、クラウドインフラストラクチャの信頼性は、eコマースオペレーションからグローバルバンク、検索エンジンに至るまで、ビジネス上不可欠なものになっています。

システムとそのワークロードを管理する方法が変わりました。今日、私たちは貴重でハイタッチな高性能サーバーの観点から考えることはめったにありませんが、代わりに仮想化によってプールされたコモディティサーバーのラックを積み重ね、分散ソフトウェアアーキテクチャがサーバーの停止によるダウンタイムの発生を防ぎます。焦点は、ハードウェアからソフトウェア定義のインフラストラクチャに移り、一貫性がなくエラーが発生しやすい手動プロセスから、一貫性があり、信頼性が高く、繰り返し可能な自動化タスクに移りました。

サイト信頼性エンジニアリングは、そのプログラム可能なインフラストラクチャを維持し、その上で実行されるワークロードの可用性を最大化する方法です。サイト信頼性エンジニア(SRE)の役職は、Googleのホールに端を発し、ミレニアムの変わり目に、ソフトウェア開発者と運用スタッフの関係を再定義し、彼らが協力して堅牢で柔軟なシステムを構築できるように支援したいと考えていました。コア原則としての絶え間ない改善と自動化。

SREとは何ですか?

基本レベルでは、SREは、ソフトウェアエンジニアリングの原則をインフラストラクチャと運用の問題にもたらし、拡張性と信頼性の高いシステムを作成するという最重要目標を掲げています。

「基本的には、ソフトウェアエンジニアに運用機能の設計を依頼すると、それが起こります」と、Googleのエンジニアリング担当副社長でSREのゴッドファーザーであるBenTreynor氏はよく言います。

SREの責任の主なものは、サービスレベルのしきい値を確立することです。これは、多くの場合、サービスレベル目標(SLO)として表され、リリースが承認されるかどうかを通知するのに役立ちます。聖杯は常に神聖な「ファイブナイン」または99.999%の稼働時間です。稼働時間が長ければ長いほど、より多くのロープ開発者がクールな新しいものを起動し、より多くのスリープSREを取得し、機能間の相互に有益な関係につながります。これは、開発者と運用の対立の昔とはかけ離れています。

SRE機能は通常、一連の主要な信頼性メトリック、つまり、システムパフォーマンス、可用性、遅延、効率、監視、容量計画、および緊急対応で測定されます。

[また、アプリケーションの監視:devopsがより良くできること]

SREの主な職務責任

優れたSREは、特に自動化に夢中になります。

監視ソフトウェアベンダーのNewRelicのSREであるJasonQualmanは、ブログ投稿で次のように述べています。手作業で缶を蹴る代わりに、「今すぐこれを自動化して、他の人がこのつらいことをしなくて済むようにするつもりです」と言っています。

SREの役割のもう1つの重要な要素は、「リリースエンジニアリング」と呼ばれるものです。これには、ソフトウェアリリースの一貫性と再現性を確保するためのベストプラクティスの定義が含まれます。

「リリースエンジニアは、ソースコード管理、コンパイラ、ビルド構成言語、自動ビルドツール、パッケージマネージャー、インストーラーについてしっかりと理解しています(専門家ではないにしても)。彼らのスキルセットは、複数のドメインの深い知識が含まれています:開発、構成管理、テストの統合、システム管理、および顧客サポートを、」ダイナMcNutt、Googleのテクニカルプログラムマネージャは、精液の本を書いたサイト信頼性工学オライリー中で発表され( 2016年、Google社員のJennifer Petoff、Niall Richard Murphy、Chris Jones、Betsy Beyerによって作成されました)。

次に、緊急およびインシデント対応と事後対応に加えて、アラート、オンコール、トラブルシューティングを含む役割の対応部分があります。

基本的に、SREは、システムを監視し、問題が発生した場合に対応する最善の方法を知っていることが重要です。応答プレイブックを絶えず作成および書き換えて、発生する可能性のある障害を修正する時間を短縮します。Googleでは、これにはインシデントの文書化、すべての原因の根本原因の理解、および将来の予防措置の実施が含まれます。

「事後分析を書くことは罰ではありません。それは会社全体にとって学習の機会です」と、Google社員のJohnLunneyとSueLuederは、サイト信頼性エンジニアリングの本の寄稿された章に書いています。

[また、IT運用にアジャイル手法を適用するための3つのステップ]

SREとDevOpsエンジニア

私はあなたが何を考えているか知っています。それはすべてDevOpsによく似ていますが、用語に関して言えば、SREの役職は実際にはDevOpsエンジニアより約5年前のものです。

どちらも同様の原則に基づいていますが、違いは微妙で重要です。どちらの作業方法も、開発者と運用スタッフの間の障壁を打ち破ることを含み、どちらも、これらのサービスのコアの復元力を維持しながら、開発者チームの速度を上げることを目的としています。

主な違いは、DevOpsエンジニアは継続的デリバリーと開発者の速度のサポートに重点を置く傾向があるのに対し、SREはソフトウェアライフサイクル全体の信頼性と自動化に責任を負い、リリースのデプロイと監視の成功とソフトウェア定義のインフラストラクチャのハミングの維持に重点を置いていることです。SREは、幅広いエンジニアリングチーム内で不可欠な機能を備えています。つまり、安定したシステムの構築に焦点を当てた専門家の席を確保することです。

DevopsInstituteのJayneGrollは、次のように述べています。SREは、顧客が消費する時点での継続的な運用のエンジニアリングに重点を置いています。」

GoogleでのSREの歴史

SREの原則を2000年代初頭のGoogleでの起源にまでさかのぼると、この分野で極めて重要なオブジェクトのレッスンが提供されます。

「私がGoogleに来たとき、私は幸運にも、ソフトウェアエンジニアであり、歴史的に手作業で解決されてきた問題を解決する方法としてソフトウェアを使用する傾向のある人々で部分的に構成されたチームの一員でした。したがって、この運用作業を行うための正式なチームを作成するときは、「すべてをソフトウェアの問題として扱うことができる」アプローチを採用して実行するのが自然でした」と、BenTreynorはGoogleの内部ブログのインタビューで述べています。

「したがって、SREは基本的に運用チームによって行われてきた作業を行っていますが、ソフトウェアの専門知識を持つエンジニアを使用し、これらのエンジニアは本質的に人間の労働の代わりに自動化を行う傾向があり、その能力を持っているという事実に基づいています。 」とTreynorは付け加えます。

Googleは、SREチームを編成する方法についても非常に厳格に考えています。すべてのGoogleSREは、Googleソフトウェアエンジニアまたは「Googleソフトウェアエンジニアリングの資格に非常に近い候補者」である必要があります。また、インフラストラクチャ管理スキル、最も一般的には「Unixシステムの内部およびネットワーキング(レイヤー1からレイヤー3)の専門知識」も必要です。

SREの資格は依然として企業ごとに異なる傾向がありますが、基本原則に関する限り、Googleのアプローチは確かな出発点です。詳細は、ビジネスニーズ、確立されたプロセス、および組織ですでに採用されている技術スタックによって異なります。

SREの職務内容と給与

SREは通常、時間の約50%を、通話中や問題解決のためのジャンプなど、従来の運用機能の実行に費やしています。残りの50%は、基盤となるシステムをより回復力があり、自動化され、時間の経過とともに自己回復するソフトウェアの開発に重点を置いています。そのため、この役割には、ソフトウェアエンジニアリングのチョップと運用スキルをしっかりと組み合わせる必要があります。優れたSREが編成され、プレッシャーの下でクールになり、問題解決者になります。 SREマネージャーは、チームのパフォーマンス、戦略、および最適化を担当します。

しかし、SREの役割が存在しない組織はどうでしょうか。O'Reillyのレポート「SREとは」LinkedInのKurtAndersenとSplit(リリース管理ソフトウェアベンダー)のCraig Sebenikは、「草の根」アプローチを取ることを推奨しています。彼らは、「そこに小さなSREチーム(または個人)を変更して実装する意欲のある開発チームを見つけることを推奨しています。時間が経つにつれて、その成功を他のチームへの前向きな例として使用できます。」

求人サイトIndeedによると、SREの平均年収は米国で約130,000ドル、英国で76,000ポンドです。

SREリソース

DevOps Instituteの認定資格から、O'Reilly、Microsoft、Googleの書籍やオンラインリソースまで、SREスキルを構築するためのリソースが豊富にあります。 ジェニファーペトフ、ニールリチャードマーフィー、クリスジョーンズ、ベッツィーベイヤーによる前述の550ページの巨大な サイト信頼性エンジニアリングは、2016年に発行された、このトピックの頼りになる本です。この本は、Googleからオンラインで無料で入手することもできます。 

このトピックに関する他の最近の本には  、ジェニファーペトフ、JCヴァンウィンケル、プレストン吉岡によるトレーニングサイト信頼性エンジニアが含まれます。 SREとは何ですか? カート・アンダーセンとクレイグ・セベニクによる。 David N. Blank-EdelmanによるSRE、および  Betsy Beyer、Niall Richard Murphy、David K. Rensin、Kent Kawahara、StephenThorneによるサイト信頼性ワークブックを求めてい ます。

O'Reillyには、このトピックに関するオンラインアセット、ビデオ、および電子ブックの包括的なライブラリもあり、元Googleサイト信頼性エンジニアのLizFong-JonesによってこのSREEssentialsプレイリストで手軽にキュレーションされています。

オンライン学習のジャガーノートCourseraは、人気のあるサイト信頼性エンジニアリング:Google CloudTrainingからの信頼性の測定と管理を含むいくつかのコースを提供しています。このコースは、初心者コースのサイト信頼性エンジニアリング(SRE):EltonStonemanによる全体像と同様にPluralsightからも利用できます。Linux Foundationは、DevOpsとSREの基礎:継続的デリバリーの実装というタイトルのセルフガイドコースを提供しています。

英国を拠点とするクラゲトレーニングでは、SRE Foundation(SREF)向けにさまざまな2日間のプライベートトレーニングコースオプションを提供しています。

devopsについてもっと読む

  • DevOpsとは何ですか?ソフトウェア開発の変革
  • DevOpsプログラムを開始する3つの方法
  • Devopsのベストプラクティス:採用すべき5つの方法
  • DevOps変換を追跡するための15のKPI
  • アプリケーションの監視:DevOpsがより良くできること
  • サイト信頼性エンジニアリングがDevOpsと出会う場所
  • 協調的なアジャイル開発チームになるための5つの原則
  • IT運用にアジャイル手法を適用するための3つのステップ
  • アジャイルチームがインシデント管理をサポートする方法
  • dataopsがデータ、分析、機械学習をどのように改善するか
  • データサイエンスと機械学習にDevOpsを適用する
  • DevOpsバックログに優先順位を付けるための7つの質問