- ソフトウェアエンジニアリングがソフトウェアの設計と開発にフォーカスする傾向にあるならば、ソフトウェアのライフサイクル全般にフォーカスするもう1つの専門分野があるべきだ。GoogleでSite Reliability Engineeringと呼んでいる。
- SREとは一体なにか?
- Site Reliability Engineerの"Engineer"について。我々はコンピュータシステムの設計とデプロイメントに、コンピュータサイエンスとエンジニアリングの原理を適用する。我々のタスクは、ソフトウェアを書くことであったり、バックアップやロードバランシングのようなシステムが必要とするすべての追加部品を構築することであったり、既存の解決策を新しい問題にあてはめる方法を発見することである。
- 次に、Site Reliability Engineerの"Reliability"について。Reliabilityは、最も基本的な機能である。Reliabilityは非常にクリティカルなので、SREsはシステムの設計とオペレーションを改善するための方法を発見することにフォーカスする。しかし、システムが"Reliable enough"ならば、我々はかわりに、追加機能や新しいプロダクトの開発に投資する。
- 最後に、Site Reliability Engineerの"Site"について。SREsは我々の分散コンピューティングシステムの上に構築される"services"のオペレーティングにフォーカスする。
- DevOpsとは異なり、我々はインフラストラクチャをコードとしてみなしているが、Reliabilityを最重要視している。
- 我々はSREという専門分野はGoogle以外でも通用すると考える。我々は一般原理とより特殊なプラクティスができるかぎり分離されるように、この本を構成した。
- また我々は、Googleのプロダクション環境に関する記述と、我々の内部ソフトウェアとOSSソフトウェアのマッピングを提供する。
- より小さな組織は、どのようにここに書かれた経験を最大限利用できるかを疑問に思うかもしれないが、セキュリティと同じようにreliabilityについてケアするなら早いほうが良い。あとでゼロから導入するより、最初に導入して拡張するほうがコストがかからないため。
- 組織の規模にかかわらず、SREとは呼ばれていなくても、SREの仕事をしている人は既にいるはず。
- 歴史的観点からみて最初のSREは誰か?
- Apollo計画に従事していたMargaret Hamilton
- "part of the culture was to learn from everyone and everything, including from that which one would least expect"
- Margaretは言った。「システムをどのようにオペレートするかを完全に理解しても、ヒューマンエラーを防ぐには十分ではない」
- この本はGoogleのSREメンバーと元SREメンバーによって書かれた一連のエッセイである。
- 独立した本というよりはconference proceedingsに近い。
- 各章は全体として一貫した内容のうちの一部分として読まれることを意図しているが、興味のあるところから読み進めても良い。
- どの順番で読み進めても良い。ただし、少なくとも2章と3章から読み始めることを薦める。Googleのプロダクション環境とSREがリスクに対してどのようにアプローチするかのアウトラインが記述されている。
- 最初から読むことももちろん有用である。
- 各章はテーマごとにグルーピングされている。Principles (Part II), Practices (Part III), and Management (Part IV)
- 各パートには小さなイントロダクションがある。
- 加えて、 https://g.co/SREBook には多くの有用なコンテンツがある。