SREing:Site Reliability Engineering@DevOps¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. SREingの用語集¶
SREingとは¶
▼ 引用:サイトリライアビリティエンジニアリング¶
サイトの信頼性向上を目的としたエンジニアリング手法のこと。
DevOps というインターフェースを実装したエンジニアリング手法でもある。
Platform Engineering とは異なり、サイトの信頼性向上から DevOps を実現する (出典は俺)。
サイトの『信頼性』とは¶
▼ 引用:サイトリライアビリティエンジニアリング¶
信頼性とは『定められた条件下と期間にわたり、システムが求められる機能を障害を発生させることなく実行する確率』のこと。
▼ 引用:SRE実践の手引¶
SREer の具体的な行動を明確にするためには、サイトの信頼性を表す指標 (SLI) と、指標の具体的な目標値 (SLO) を定義する必要がある。
エラーバジェットの残量を考慮に入れ、リスクを取りながら、サイトの信頼性の維持に努める。
▼ 引用:SREの基本と組織への導入¶
ソフトウェアのもっとも重要な機能は信頼性であり、信頼性の程度はサイトのユーザーによって決められるべきである。
ユーザーは、SLI を信頼性の指標とし、SLO を達成した場合は信頼できるサイトと見なす。
▼ 引用:組織の信頼性のマインドセット¶
プロダクトの信頼性は、そのシステムのアーキテクチャ/プロセス/文化/開発組織のマインドセットによって決まる。
02. SREingが有用な業態¶
人命に関する安全性を担保しなくてもよい業態¶
SREing が信頼性を向上させるソフトウェアは、サイトやそれに類似するサービスである。
原子力発電所、航空機、医療機器、その他安全性がきわめて重要なソフトウェアなどの信頼性については考えない。
システム構築後に機能改善作業がある業態¶
SREing には、継続的な改善によって、システムの信頼性を向上させようとする思想がある。
そのため、アジャイル開発を採用できないシステム (例:人命にかかわるようなシステム) を扱っている業態や、サイトを扱っていても納品後に改善作業がないような業態 (例:受託会社) では、有効に動作しない。
03. SREingの組織モデルの種類¶
プロダクトチーム内フルスタックSREer型 (Embedded SRE)¶
特定のプロダクトの信頼性を高めるために、アプリチームと同じチームに SREer が参画し、フルスタック的に SREing する。
フルスタックSREerチーム型¶
さまざまなプロダクトの信頼性を高めるために、SREer 自体をチームとして定義し、SREer チーム全体としてフルスタック的に SREing する。
SREer チームは、T 字型のスキルを持ったさまざまなエンジニア (例:アプリエンジニア、インフラエンジニア、ネットワークエンジニアなど) から構成される。
各 SREer がフルスタックな人材である必要はなく、各 SREer が得意分野を 1 個持っている。
お互いが得意不得意を補い合うことにより、SREer チーム全体としてフルスタック的に SREing できるようになる。
ツール開発SREer型¶
さまざまなプロダクトの信頼性を高めるために、SREer がアプリチームを支援する自前ライブラリを開発する。
プラットフォームSREer型¶
さまざまなプロダクトの信頼性を高めるために、SREer がアプリチームやチーム内 SREer を支援するインフラを開発する。
Enabling SREer型 (CCoE)¶
前者に SRE のプラクティスを広める。
04. スキルセット¶
L4 ~ L7¶
SREer は、L4 ~ L7 を領域として業務する。
そのため、インフラだけでなくアプリでもスキルが必要である。
一方で、SREer チーム全体として L1 ~ L3 を補完するために、少数の専門的なインフラエンジニアが必要になる。
求人から見る¶
▼ Wantedly¶
SRE チームの Value から、SREer に必要な技術がわかる。
▼ 3-shake、Topotal¶
提供しているサービスから、SREer に必要な技術がわかる。