※この投稿は米国時間 2019 年 1 月 26 日に Google Cloud blog に投稿されたものの抄訳です。

このたび、『The Site Reliability Workbook』がウェブサイトで閲覧できるようになりました。Google で生まれ、他の企業にも広まりつつある Site Reliability Engineering(SRE)は、運用上の問題をソフトウェア的に解決するためのエンジニアリングであり、Google におけるエンジニアリングの本質的な部分を占めています。

SRE は考え方であり、一連のプラクティスやメトリクスであり、システムの信頼性を保証するための処方箋でもあります。SRE モデルを構築すれば、サービスの信頼性が向上し、運用コストが下がり、人間が行う作業の価値が高くなって、サービスとチームの双方で大きなメリットが得られます。上述の新しいワークブックは、SRE の構築に向けてスタートを切り、SRE プラクティスを実行に移すための具体的なヒントを提供します(本稿では、ワークブック内の章に対応する本稿での記述箇所にリンクを付加しています)。

私たちはよく、SRE の実施とは実際にどういうことなのかと尋ねられます。これは、お客様がそれぞれの SRE プラクティス を築き上げていくうえで、達成度の定量化に苦労されているからでしょう。この問題に対する単純で標準的な答えはありませんが、本稿では、初歩的なものから順に達成度を測るためのチェック リストを示していきます(決して網羅的なものではありませんが)。このチェック リストは、高信頼性サービスの担当部門が SRE モデルに向かってチームを変えていこうとするときに役立ちます。どのチェック リストも項目は時系列順に並べてありますが、実際のニーズや優先順位がチームによって異なることは私たちも認識しています。

経験豊富な SRE チームに属する方にとっては、このチェック リストは業界ベンチマークの 1 つとして役に立つかもしれません。他の人たちも自身のチェック リストをぜひ公開してください。もちろん、SRE は厳密な科学ではなく、実現過程でさまざまな難問にぶつかるでしょう。各項目の 100 % 達成には至らないかもしれません。それでも、継続していくことが SRE にとって大切だということを、私たちは Google での経験から知っています。

SRE の基本

次の 3 つは SRE の基本原則ですが、本番システムに対して責任を負うチームであれば、名前がどうであれ、SRE チームを作る前から、あるいは SRE チームへの転換と並行して、広く採用しているプラクティスでもあります。


初級者チーム

Google の SRE チームは、全部ではなくてもそのほとんどが、次のプラクティスと特長を確立しています。チームが置かれた環境にこれらの実現を阻むもっともな理由がないかぎり、私たちはこれらを、優れた SRE チームの基礎だと考えています。


次の項目も、発足したばかりの SRE チームで一般的になっているものです。こういうものがなければ、チームが不健全で持続可能性に問題がある兆候かもしれません。


中級者チーム

以下の項目は経験豊富なチームで一般的に見られるもので、チームがサービスの効率的な管理に積極的に取り組んでいることを示しています。


上級者チーム

次の項目は特にスキルの高いチームに見られるものですが、複数または全社の SRE チームがより広範な憲章を共有することで実現できる場合もあります。


以下は、望ましい SRE の特長でありながら、実際にはほとんどの企業が実現できていないものです。

  • SRE のオンコールが年中無休の 24 時間体制ではないこと。米国と欧州というように SRE チームが 2 つの地域に分散されており、どちらも副次的な扱いになっていないこと
  • SRE と開発チームが目標を共有し、SVP 以上の幹部からの指揮命令系統が別々になっていること(利害衝突を防ぐことに役立ちます)

次に何をすべきか

以上のチェック リストに目を通したら、次のステップは、その内容が自社のニーズに合うかどうかを考えることです。

まだ SRE チームが存在せず、初級者チーム向けチェック リストの多くが未達なら、冒頭で紹介した SRE ワークブックを最初の章から順に読むことを強くお勧めします。自社が Google Cloud Platform(GCP)のユーザーで、CRE の関与を希望される場合は、アカウント マネージャーに連絡してこのプログラムに応募してください。ただし、SRE はさまざまなインフラストラクチャに適用できるメソドロジーであり、この一連のエンジニアリング手法を用いるうえで Google Cloud の使用は前提条件でないということを、はっきりさせておきたいと思います。

また、人材採用の停滞などを解決するベスト プラクティスを共有するため、既存のカンファレンスに出席したり、他社とのサミットを組織したりすることもお勧めします。

変化の激しさゆえに、上級者チーム向けチェック リストの達成に苦労しているチームもよく見かけます。システム変更や人事異動が上達の遅延要因になるかもしれません。チームが初級者レベルの段階に逆戻りするなどの問題を避けるため、Google の SRE リーダーたちは、6 か月ごとにそれぞれのチームの主要指標をチェックしています。この場合、一部の項目はすでに標準になっているので、チェック範囲は上記のチェック リストよりも狭くなっています。

すでにお気づきかもしれませんが、本稿の中心的な問いに答えるということは、チームの影響力と健全性、そして何よりも大切なことですが、実際の仕事のしかたを評価するということです。結局のところ、最初の SRE 本で書いたように、自動化できないプロセスやソリューションを作っているなら、システムを維持するために人員を確保し続けなければなりません。人間がいなければ仕事がまわらないのであれば、人間の血と汗と涙をマシンに注ぎ込んでください。

だからこそ、あなたはもう SRE チームを設けているのでしょう。そのチームは効果的ですか? スケーラブルですか? 人々は満足していますか? SRE チームのスキルがどの程度であっても、チームの仕事と会社のサービスにはまだまだ発展、成長、強化の余地があるはずです。SRE チームの立ち上げ方をもっと詳しく学びたい方はこちらを参照してください。

本稿に力を貸してくれた多くの人々、特に Adrian Hilton、Alec Warner、David Ferguson、Eric Harvieux、Matt Brown、Myk Taylor、Stephen Thorne、Todd Underwood、Vivek Rau の各氏に感謝いたします。

- By Gustavo Franco, Customer Reliability Engineer


※この投稿は米国時間 2018 年 10 月 11 日に Google Cloud blog に投稿されたものの抄訳です。

アプリケーションをいつも安心して使えるようにすることは、ソフトウェアを提供するすべての組織が解決しなければならない課題です。私たち Google が、SRE(Site Reliability Engineering)と呼ばれる方法論を生み出して実践しているのも、それが理由です。数十億のユーザーが安心して使えるサービスを私たちが構築し運用できるのは、SRE のプラクティスに従っているからです。

Google には社内外のサービスをサポートする 2,500 人ほどの SRE 担当者がいます。SRE の原則は、組織のユーザーにとって適切なサービス レベルの指標を確立するための拠りどころとなり、発生した問題を検出し修復するにあたって規範的な手順を提供します。また SRE の原則は、非難を伴わない事後分析などを通じて、継続的な改善の文化も生み出します。こうした SRE については、担当者の雇用方法を知りたい、SRE の原則を実践に移すツールを使いたい、より良い結果を達成したいといった問い合わせが多くの企業から寄せられています。

モニタリング、APM(Application Performance Management)、ロギングの各サービスからなる Google Stackdriver で私たちが目指しているのは、長年築き上げてきた、システムの信頼性に関するベスト プラクティスに基づいて、完成された管理ツールセットを提供することです。これらの Stackdriver ツールは、SRE の原則と、信頼性および可用性のさらなる向上という目標をベースに生み出されたものです。

私たちはこのたび、Google Cloud Platform(GCP)のもとで Stackdriver IRM(Incident Response and Management)のアルファ提供を開始し、システムのオブザーバビリティ(observabiliity; 可観測性)を大きく引き上げました。Stackdriver IRM は、インシデントの精査、理解、緩和、および修復に必要なツールを提供します。Stackdriver IRM のアルファ プログラムに参加をご希望の方は、こちらからサインアップしてください。

また、モニタリングおよび信頼性ツールセットの構築に有用な新しい統合サービスを提供するべく、Blue Medora や Grafana Labs と協力して作業を進めています。

システムの信頼性に光を当てる Stackdriver IRM

私たちがモニタリング ツールを進化させながら考えていることは、ユーザーができる限り簡単に SRE を導入して前に進めるようにしたいということです。組織に SRE を根づかせることは容易ではありませんが、Stackdriver IRM のようなツールは、SRE や、IT サービスを通じてユーザー エクスペリエンスを高める手法からインスピレーションを得ています。

Stackdriver IRM は、基準に違反している指標や、アラートの状態を可視化します。Stackdriver IRM には、アラート ポリシー ドキュメントと、典型的なケースを処理する方法を示したガイダンスが組み込まれています。またインシデントと環境の状況に基づき、精査プロセスを加速させる重要情報にスポットライトを当てます。

Stackdriver IRM で得られるのは次のとおりです。

  • 包括的なデータ収集とアナリティクスによるインシデントの徹底的なライフサイクル管理
  • SRE の経験から生まれた緊急応答プロトコルに基づく効率的な多応答者インシデント管理のための体系化されたプロセス
  • 知見を引き出し、重要情報にスポットライトを当てるとともに、精査プロセスを迅速化し、障害から復旧にかかる時間を短縮する最新 Stackdriver データの自動相関化
  • 状況を重視し、事後分析生成プロセスを向上させるために頻繁に使われる非公式な慣習的手順(問題点の追跡手順など)の構造化

次の画面は、Stackdriver IRM においてインシデントに関する認識を段階的に深めていく場合の具体的な例です。

可視性や柔軟性の向上を支援する新しいパートナー

オープン クラウドの一部になるということは、ベンダーを選ばないということです。Stackdriver は柔軟で拡張性の高いプラットフォームであり、私たちはパートナーと協力しながらモニタリング データの可視化を支援することに取り組んでいます。

分散インフラストラクチャにおいてサイトの信頼性と可用性を担当する IT チームは、問題の検出やトリアージの際の徹底した分析のために、広範なシグナルを収集する必要があります。しかし、インフラストラクチャにおけるパフォーマンス障害の原因はいつも自明だとは限らず、問題の徴候を知らせるシグナルはインフラストラクチャ、OS、ネットワーキング、サービス、アプリケーション レイヤなどさまざまな場所に散らばっています。

この難題を解決するべく、私たちは、クラウド環境やインフラストラクチャ、ネットワーク機器、データベース、ストレージ環境、基幹アプリケーションなどを含む広範なリソースの包括的な可観測機能を提供する Blue Medora と共同で作業を行っています。つまり、Stackdriver のモニタリング機能をより多くのリソースやワークロードに拡張し、状況を包括的に把握できるようにするわけです。Blue Medora のプラットフォームは、実行中のワークロードの下に隠れたスタックの幅広いオブザーバビリティを提供します。なお、この統合機能は現時点ではアルファ リリースです。関心のある方は、こちらのフォームに必要事項を入力してお送りください。

また、より強力な可視化オプションを Stackdriver ユーザーに提供するため、私たちは Grafana Labs ともパートナーシップを結びました。Grafana の時系列データ可視化ソリューションは市場で人気が高く、オブザーバビリティダッシュボードとモニタリング データ アナリティクス(潜在的な問題、根本原因、顕著な傾向について、その可視化、分析、特定を行う)のためのオープンフレームワークを基盤としています。このパートナーシップにより、Stackdriver Monitoring 用の可視化ツールとして Grafana を使用できるようになります。Stackdriver プラットフォームによって収集、ホスティングされているサービスのモニタリング データを可視化するための選択肢が広がるわけです。Grafana はこちらからダウンロードでき、そのユーザー インターフェースは次のとおりです。


今後に向けて

スピード、セキュリティ、安全性を確保するためには、このレベルの自動化がすべてのデベロッパーとオペレーターに対して与えられるべきです。私たちは、SRE / 運用チームによるアプリケーションの確実な運用をより効率化するエコシステムの拡張を計画しています。手間のかかる作業を自動化したいとお考えなら、今すぐ Stackdriver IRM のアルファ プログラムにサインアップしましょう。こちらでは Stackdriver について詳しく学ぶこともできます。今後の展開にご期待ください。

- Post by Melody Meckfessel, VP of Engineering